From albert.th at alibaba-inc.com Fri Jun 5 09:24:37 2020 From: albert.th at alibaba-inc.com (Hao Tang) Date: Fri, 05 Jun 2020 17:24:37 +0800 Subject: =?UTF-8?B?RGlzY3Vzc2lvbiBvbiBaR0MncyBQYWdlIENhY2hlIEZsdXNo?= Message-ID: Hi ZGC Team, We encountered "Page Cache Flushed" when we enable ZGC feature. Much longer response time can be observed at the time when "Page Cache Flushed" happened. There is a case that is able to reproduce this scenario. In this case, medium-sized objects are periodically cleaned up. Right after the clean-up, small pages is not sufficient for allocating small-sized objects, which needs to flush medium pages into small pages. We found that simply enlarging the max heap size cannot solve this problem. We believe that "page cache flush" issue could be a general problem, because the ratio of small/medium/large objects are not always constant. Sample code: import java.util.Random; import java.util.concurrent.locks.LockSupport; public class TestPageCacheFlush { /* * Options: -XX:+UnlockExperimentalVMOptions -XX:+UseZGC -XX:+UnlockDiagnosticVMOptions -Xms10g -Xmx10g -XX:ParallelGCThreads=2 -XX:ConcGCThreads=4 -Xlog:gc,gc+heap * small object: fast allocation * medium object: slow allocation, periodic deletion */ public static void main(String[] args) throws Exception { long heapSizeKB = Runtime.getRuntime().totalMemory() >> 10; System.out.println(heapSizeKB); SmallContainer smallContainer = new SmallContainer((long)(heapSizeKB * 0.4)); // 40% heap for live small objects MediumContainer mediumContainer = new MediumContainer((long)(heapSizeKB * 0.4)); // 40% heap for live medium objects int totalSmall = smallContainer.getTotalObjects(); int totalMedium = mediumContainer.getTotalObjects(); int addedSmall = 0; int addedMedium = 1; // should not be divided by zero while (addedMedium < totalMedium * 10) { if (totalSmall / totalMedium > addedSmall / addedMedium) { // keep the ratio of allocated small/medium objects smallContainer.createAndSaveObject(); addedSmall ++; } else { mediumContainer.createAndAppendObject(); addedMedium ++; } if ((addedSmall + addedMedium) % 50 == 0) { LockSupport.parkNanos(500); // make allocation slower } } } static class SmallContainer { private final int KB_PER_OBJECT = 64; // 64KB per object private final Random RANDOM = new Random(); private byte[][] smallObjectArray; private long totalKB; private int totalObjects; SmallContainer(long totalKB) { this.totalKB = totalKB; totalObjects = (int)(totalKB / KB_PER_OBJECT); smallObjectArray = new byte[totalObjects][]; } int getTotalObjects() { return totalObjects; } // random insertion (with random deletion) void createAndSaveObject() { smallObjectArray[RANDOM.nextInt(totalObjects)] = new byte[KB_PER_OBJECT << 10]; } } static class MediumContainer { private final int KB_PER_OBJECT = 512; // 512KB per object private byte[][] mediumObjectArray; private int mediumObjectArrayCurrentIndex = 0; private long totalKB; private int totalObjects; MediumContainer(long totalKB) { this.totalKB = totalKB; totalObjects = (int)(totalKB / KB_PER_OBJECT); mediumObjectArray = new byte[totalObjects][]; } int getTotalObjects() { return totalObjects; } void createAndAppendObject() { if (mediumObjectArrayCurrentIndex == totalObjects) { // periodic deletion mediumObjectArray = new byte[totalObjects][]; // also delete all medium objects in the old array mediumObjectArrayCurrentIndex = 0; } else { mediumObjectArray[mediumObjectArrayCurrentIndex] = new byte[KB_PER_OBJECT << 10]; mediumObjectArrayCurrentIndex ++; } } } } To avoid "page cache flush", we made a patch for converting small/medium pages to medium/small pages ahead of time. This patch works well on an application with relatively-stable allocation rate, which has not encountered throughput problem. How do you think of this solution? We notice that you are improving the efficiency for map/unmap operations (https://mail.openjdk.java.net/pipermail/hotspot-gc-dev/2020-June/029936.html). It may be a step for improving the delay caused by "page cache flush". Do you have further plan for eliminating or improving "page cache flush"? Sincerely,Hao Tang From per.liden at oracle.com Fri Jun 5 10:52:03 2020 From: per.liden at oracle.com (Per Liden) Date: Fri, 5 Jun 2020 12:52:03 +0200 Subject: Discussion on ZGC's Page Cache Flush In-Reply-To: References: Message-ID: Hi, On 6/5/20 11:24 AM, Hao Tang wrote: > > Hi ZGC Team, > > We encountered "Page Cache Flushed" when we enable ZGC feature. Much longer response time can be observed at the time when "Page Cache Flushed" happened. There is a case that is able to reproduce this scenario. In this case, medium-sized objects are periodically cleaned up. Right after the clean-up, small pages is not sufficient for allocating small-sized objects, which needs to flush medium pages into small pages. We found that simply enlarging the max heap size cannot solve this problem. We believe that "page cache flush" issue could be a general problem, because the ratio of small/medium/large objects are not always constant. > > Sample code: > import java.util.Random; > import java.util.concurrent.locks.LockSupport; > public class TestPageCacheFlush { > /* > * Options: -XX:+UnlockExperimentalVMOptions -XX:+UseZGC -XX:+UnlockDiagnosticVMOptions -Xms10g -Xmx10g -XX:ParallelGCThreads=2 -XX:ConcGCThreads=4 -Xlog:gc,gc+heap > * small object: fast allocation > * medium object: slow allocation, periodic deletion > */ > public static void main(String[] args) throws Exception { > long heapSizeKB = Runtime.getRuntime().totalMemory() >> 10; > System.out.println(heapSizeKB); > SmallContainer smallContainer = new SmallContainer((long)(heapSizeKB * 0.4)); // 40% heap for live small objects > MediumContainer mediumContainer = new MediumContainer((long)(heapSizeKB * 0.4)); // 40% heap for live medium objects > int totalSmall = smallContainer.getTotalObjects(); > int totalMedium = mediumContainer.getTotalObjects(); > int addedSmall = 0; > int addedMedium = 1; // should not be divided by zero > while (addedMedium < totalMedium * 10) { > if (totalSmall / totalMedium > addedSmall / addedMedium) { // keep the ratio of allocated small/medium objects > smallContainer.createAndSaveObject(); > addedSmall ++; > } else { > mediumContainer.createAndAppendObject(); > addedMedium ++; > } > if ((addedSmall + addedMedium) % 50 == 0) { > LockSupport.parkNanos(500); // make allocation slower > } > } > } > static class SmallContainer { > private final int KB_PER_OBJECT = 64; // 64KB per object > private final Random RANDOM = new Random(); > private byte[][] smallObjectArray; > private long totalKB; > private int totalObjects; > SmallContainer(long totalKB) { > this.totalKB = totalKB; > totalObjects = (int)(totalKB / KB_PER_OBJECT); > smallObjectArray = new byte[totalObjects][]; > } > int getTotalObjects() { > return totalObjects; > } > // random insertion (with random deletion) > void createAndSaveObject() { > smallObjectArray[RANDOM.nextInt(totalObjects)] = new byte[KB_PER_OBJECT << 10]; > } > } > static class MediumContainer { > private final int KB_PER_OBJECT = 512; // 512KB per object > private byte[][] mediumObjectArray; > private int mediumObjectArrayCurrentIndex = 0; > private long totalKB; > private int totalObjects; > MediumContainer(long totalKB) { > this.totalKB = totalKB; > totalObjects = (int)(totalKB / KB_PER_OBJECT); > mediumObjectArray = new byte[totalObjects][]; > } > int getTotalObjects() { > return totalObjects; > } > void createAndAppendObject() { > if (mediumObjectArrayCurrentIndex == totalObjects) { // periodic deletion > mediumObjectArray = new byte[totalObjects][]; // also delete all medium objects in the old array > mediumObjectArrayCurrentIndex = 0; > } else { > mediumObjectArray[mediumObjectArrayCurrentIndex] = new byte[KB_PER_OBJECT << 10]; > mediumObjectArrayCurrentIndex ++; > } > } > } > } > > To avoid "page cache flush", we made a patch for converting small/medium pages to medium/small pages ahead of time. This patch works well on an application with relatively-stable allocation rate, which has not encountered throughput problem. How do you think of this solution? > > We notice that you are improving the efficiency for map/unmap operations (https://mail.openjdk.java.net/pipermail/hotspot-gc-dev/2020-June/029936.html). It may be a step for improving the delay caused by "page cache flush". Do you have further plan for eliminating or improving "page cache flush"? Yes, and as you might have seen, the latest incarnation of this patchset includes asynchronous unmapping, which helps reduce the time for page cache flushing. I ran your example program above, with these patches and can see ~30% reduction in average page allocation time, and ~60% reduction in worst case page allocation time. So, it will be an improvement. However, I'd be more than happy to take a look at your patch and see what you've done. Making page cache flushing even less expensive is something we're interested in going forward. cheers, Per > > Sincerely,Hao Tang > From eosterlund at openjdk.java.net Tue Jun 9 17:26:53 2020 From: eosterlund at openjdk.java.net (Erik =?UTF-8?B?w5ZzdGVybHVuZA==?=) Date: Tue, 9 Jun 2020 17:26:53 GMT Subject: git: openjdk/zgc: 3 new changesets Message-ID: <7d997936-a30b-48a0-8341-dac73eb49fde@openjdk.org> Changeset: b8b865bb Author: Erik ?sterlund Date: 2020-03-11 16:13:10 +0000 URL: https://git.openjdk.java.net/zgc/commit/b8b865bb ZGC: Mechanism to opt out from safepoint coalescing ! src/hotspot/share/runtime/vmOperations.hpp ! src/hotspot/share/runtime/vmThread.cpp Changeset: 8c2dc835 Author: Erik ?sterlund Date: 2020-03-11 16:13:18 +0000 URL: https://git.openjdk.java.net/zgc/commit/8c2dc835 ZGC: Remove hotness counter sampling from safepoint cleanup ! src/hotspot/share/runtime/safepoint.cpp ! src/hotspot/share/runtime/sweeper.cpp ! src/hotspot/share/runtime/sweeper.hpp Changeset: f059df74 Author: Erik ?sterlund Date: 2020-03-11 16:13:26 +0000 URL: https://git.openjdk.java.net/zgc/commit/f059df74 ZGC: Concurrent execution stack processing ! src/hotspot/cpu/aarch64/aarch64.ad ! src/hotspot/cpu/aarch64/c1_CodeStubs_aarch64.cpp ! src/hotspot/cpu/aarch64/c1_LIRAssembler_aarch64.cpp + src/hotspot/cpu/aarch64/c2_safepointPollStubTable_aarch64.cpp + src/hotspot/cpu/aarch64/c2_safepointPollStubTable_aarch64.hpp ! src/hotspot/cpu/aarch64/frame_aarch64.cpp ! src/hotspot/cpu/aarch64/interp_masm_aarch64.cpp ! src/hotspot/cpu/aarch64/macroAssembler_aarch64.cpp ! src/hotspot/cpu/aarch64/macroAssembler_aarch64.hpp ! src/hotspot/cpu/aarch64/sharedRuntime_aarch64.cpp ! src/hotspot/cpu/aarch64/templateInterpreterGenerator_aarch64.cpp ! src/hotspot/cpu/aarch64/vm_version_aarch64.hpp ! src/hotspot/cpu/arm/c1_CodeStubs_arm.cpp ! src/hotspot/cpu/arm/c1_LIRAssembler_arm.cpp + src/hotspot/cpu/arm/c2_safepointPollStubTable_arm.hpp ! src/hotspot/cpu/arm/interp_masm_arm.cpp ! src/hotspot/cpu/arm/macroAssembler_arm.cpp ! src/hotspot/cpu/ppc/c1_CodeStubs_ppc.cpp ! src/hotspot/cpu/ppc/c1_LIRAssembler_ppc.cpp + src/hotspot/cpu/ppc/c2_safepointPollStubTable_ppc.hpp ! src/hotspot/cpu/ppc/interp_masm_ppc_64.cpp ! src/hotspot/cpu/ppc/macroAssembler_ppc.cpp ! src/hotspot/cpu/ppc/templateTable_ppc_64.cpp ! src/hotspot/cpu/s390/c1_CodeStubs_s390.cpp ! src/hotspot/cpu/s390/c1_LIRAssembler_s390.cpp + src/hotspot/cpu/s390/c2_safepointPollStubTable_s390.hpp ! src/hotspot/cpu/s390/interp_masm_s390.cpp ! src/hotspot/cpu/s390/macroAssembler_s390.cpp ! src/hotspot/cpu/s390/templateTable_s390.cpp ! src/hotspot/cpu/x86/c1_CodeStubs_x86.cpp ! src/hotspot/cpu/x86/c1_LIRAssembler_x86.cpp + src/hotspot/cpu/x86/c2_safepointPollStubTable_x86.cpp + src/hotspot/cpu/x86/c2_safepointPollStubTable_x86.hpp ! src/hotspot/cpu/x86/frame_x86.cpp ! src/hotspot/cpu/x86/interp_masm_x86.cpp ! src/hotspot/cpu/x86/macroAssembler_x86.cpp ! src/hotspot/cpu/x86/macroAssembler_x86.hpp ! src/hotspot/cpu/x86/sharedRuntime_x86_32.cpp ! src/hotspot/cpu/x86/sharedRuntime_x86_64.cpp ! src/hotspot/cpu/x86/templateInterpreterGenerator_x86.cpp ! src/hotspot/cpu/x86/templateInterpreterGenerator_x86_32.cpp ! src/hotspot/cpu/x86/templateInterpreterGenerator_x86_64.cpp ! src/hotspot/cpu/x86/templateTable_x86.cpp ! src/hotspot/cpu/x86/vm_version_x86.hpp ! src/hotspot/cpu/x86/x86_64.ad ! src/hotspot/cpu/zero/cppInterpreter_zero.cpp ! src/hotspot/share/c1/c1_CodeStubs.hpp ! src/hotspot/share/c1/c1_LIR.cpp ! src/hotspot/share/c1/c1_LIR.hpp ! src/hotspot/share/c1/c1_LIRAssembler.cpp ! src/hotspot/share/c1/c1_LIRAssembler.hpp ! src/hotspot/share/c1/c1_LinearScan.cpp ! src/hotspot/share/c1/c1_Runtime1.cpp ! src/hotspot/share/compiler/oopMap.cpp ! src/hotspot/share/compiler/oopMap.hpp ! src/hotspot/share/gc/parallel/psParallelCompact.cpp ! src/hotspot/share/gc/parallel/psScavenge.cpp ! src/hotspot/share/gc/shared/gcUtil.cpp ! src/hotspot/share/gc/shared/gcUtil.hpp ! src/hotspot/share/gc/shared/threadLocalAllocBuffer.cpp ! src/hotspot/share/gc/shenandoah/shenandoahRootProcessor.inline.hpp ! src/hotspot/share/gc/z/zBarrier.cpp ! src/hotspot/share/gc/z/zBarrier.hpp ! src/hotspot/share/gc/z/zBarrier.inline.hpp ! src/hotspot/share/gc/z/zBarrierSet.cpp ! src/hotspot/share/gc/z/zDriver.cpp ! src/hotspot/share/gc/z/zHeapIterator.cpp ! src/hotspot/share/gc/z/zHeapIterator.hpp ! src/hotspot/share/gc/z/zMark.cpp ! src/hotspot/share/gc/z/zNMethod.cpp ! src/hotspot/share/gc/z/zNMethod.hpp ! src/hotspot/share/gc/z/zObjectAllocator.cpp ! src/hotspot/share/gc/z/zRelocate.cpp ! src/hotspot/share/gc/z/zRootsIterator.cpp ! src/hotspot/share/gc/z/zRootsIterator.hpp + src/hotspot/share/gc/z/zStackWatermark.cpp + src/hotspot/share/gc/z/zStackWatermark.hpp ! src/hotspot/share/gc/z/zThreadLocalAllocBuffer.cpp ! src/hotspot/share/gc/z/zThreadLocalAllocBuffer.hpp ! src/hotspot/share/gc/z/zVerify.cpp ! src/hotspot/share/gc/z/zVerify.hpp ! src/hotspot/share/interpreter/bytecodeInterpreter.cpp ! src/hotspot/share/interpreter/interpreterRuntime.cpp ! src/hotspot/share/interpreter/interpreterRuntime.hpp ! src/hotspot/share/jfr/leakprofiler/checkpoint/rootResolver.cpp ! src/hotspot/share/jfr/periodic/sampling/jfrCallTrace.cpp ! src/hotspot/share/jfr/periodic/sampling/jfrThreadSampler.cpp ! src/hotspot/share/jfr/recorder/stacktrace/jfrStackTrace.cpp ! src/hotspot/share/jvmci/jvmciCodeInstaller.cpp ! src/hotspot/share/jvmci/jvmciCompilerToVM.cpp ! src/hotspot/share/jvmci/vmStructs_jvmci.cpp ! src/hotspot/share/logging/logTag.hpp ! src/hotspot/share/opto/output.cpp ! src/hotspot/share/opto/output.hpp ! src/hotspot/share/opto/runtime.cpp + src/hotspot/share/opto/safepointPollStubTable.hpp ! src/hotspot/share/prims/forte.cpp ! src/hotspot/share/prims/jvmtiEventController.cpp ! src/hotspot/share/prims/jvmtiTrace.cpp ! src/hotspot/share/prims/whitebox.cpp ! src/hotspot/share/runtime/abstract_vm_version.hpp ! src/hotspot/share/runtime/deoptimization.cpp ! src/hotspot/share/runtime/frame.cpp ! src/hotspot/share/runtime/frame.hpp ! src/hotspot/share/runtime/handshake.cpp ! src/hotspot/share/runtime/interfaceSupport.cpp ! src/hotspot/share/runtime/interfaceSupport.inline.hpp ! src/hotspot/share/runtime/mutexLocker.cpp ! src/hotspot/share/runtime/objectMonitor.cpp ! src/hotspot/share/runtime/objectMonitor.inline.hpp ! src/hotspot/share/runtime/registerMap.hpp ! src/hotspot/share/runtime/safepoint.cpp ! src/hotspot/share/runtime/safepointMechanism.cpp ! src/hotspot/share/runtime/safepointMechanism.hpp ! src/hotspot/share/runtime/safepointMechanism.inline.hpp ! src/hotspot/share/runtime/serviceThread.cpp ! src/hotspot/share/runtime/serviceThread.hpp ! src/hotspot/share/runtime/sharedRuntime.cpp + src/hotspot/share/runtime/stackWatermark.cpp + src/hotspot/share/runtime/stackWatermark.hpp + src/hotspot/share/runtime/stackWatermark.inline.hpp + src/hotspot/share/runtime/stackWatermarkSet.cpp + src/hotspot/share/runtime/stackWatermarkSet.hpp + src/hotspot/share/runtime/stackWatermarkSet.inline.hpp ! src/hotspot/share/runtime/sweeper.cpp ! src/hotspot/share/runtime/synchronizer.cpp ! src/hotspot/share/runtime/thread.cpp ! src/hotspot/share/runtime/thread.hpp ! src/hotspot/share/runtime/thread.inline.hpp ! src/hotspot/share/runtime/vframe.cpp ! src/hotspot/share/runtime/vframe.hpp ! src/hotspot/share/runtime/vframe.inline.hpp ! src/hotspot/share/runtime/vmOperations.cpp ! src/hotspot/share/runtime/vmOperations.hpp ! src/hotspot/share/runtime/vmThread.cpp ! src/hotspot/share/utilities/vmError.cpp ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot/src/org/graalvm/compiler/hotspot/GraalHotSpotVMConfig.java From pliden at openjdk.java.net Wed Jun 17 09:53:37 2020 From: pliden at openjdk.java.net (Per Liden) Date: Wed, 17 Jun 2020 09:53:37 GMT Subject: git: openjdk/zgc: 156 new changesets Message-ID: Changeset: e97c5f41 Author: Pankaj Bansal Date: 2020-06-01 23:06:02 +0000 URL: https://git.openjdk.java.net/zgc/commit/e97c5f41 8196094: javax/swing/JFileChooser/8002077/bug8002077.java fails Reviewed-by: psadhukhan ! test/jdk/ProblemList.txt ! test/jdk/javax/swing/JFileChooser/8002077/bug8002077.java Changeset: b4943a3f Author: Alexander Zuev Date: 2020-06-02 19:32:44 +0000 URL: https://git.openjdk.java.net/zgc/commit/b4943a3f 8237243: [macOS] java/awt/event/KeyEvent/DisabledTargetF10/DisabledTargetF10.html fails Reviewed-by: psadhukhan + test/jdk/java/awt/event/KeyEvent/DisabledTargetF10/DisabledTargetF10.java Changeset: 5aea3f02 Author: Prasanta Sadhukhan Date: 2020-06-03 21:51:50 +0000 URL: https://git.openjdk.java.net/zgc/commit/5aea3f02 8245668: closed test javax/swing/JComboBox/4765319/bug4765319.java fails on windows Reviewed-by: kizune ! src/java.desktop/share/classes/javax/swing/plaf/basic/BasicComboBoxUI.java Changeset: 2048bcb6 Author: Phil Race Date: 2020-06-05 16:40:56 +0000 URL: https://git.openjdk.java.net/zgc/commit/2048bcb6 8244621: [macos10.15] Garbled FX printing plus CoreText warnings on Catalina when building with Xcode 11 Reviewed-by: kcr, psadhukhan ! src/java.desktop/macosx/native/libawt_lwawt/font/AWTFont.m Changeset: 2845c3d0 Author: Alexander Scherbatiy Date: 2020-06-08 16:38:23 +0000 URL: https://git.openjdk.java.net/zgc/commit/2845c3d0 8245938: Remove unused print_stack(void) method from XToolkit.c Reviewed-by: serb ! src/java.desktop/unix/native/libawt_xawt/xawt/XToolkit.c Changeset: 41c5a07f Author: Prasanta Sadhukhan Date: 2020-06-09 17:03:35 +0000 URL: https://git.openjdk.java.net/zgc/commit/41c5a07f Merge ! test/jdk/ProblemList.txt ! test/jdk/ProblemList.txt Changeset: 022d7a19 Author: Adam Sotona Date: 2020-06-09 09:37:53 +0000 URL: https://git.openjdk.java.net/zgc/commit/022d7a19 8236108: tools/javac/lambda/LambdaParserTest.java timed out The patch filters redundant or non-sense combinations of lambdas and it reduces the number of performed sub-tests. Reviewed-by: vromero ! test/langtools/tools/javac/lambda/LambdaParserTest.java Changeset: c47f27e1 Author: Erik Joelsson Date: 2020-06-09 14:09:22 +0000 URL: https://git.openjdk.java.net/zgc/commit/c47f27e1 8236469: macOS devkit needs 64-bit SetFile for Catalina Reviewed-by: ihse ! make/conf/jib-profiles.js Changeset: ac906168 Author: Patrick Concannon Date: 2020-06-09 15:26:53 +0000 URL: https://git.openjdk.java.net/zgc/commit/ac906168 8243999: DatagramSocket and MulticastSocket constructors don't specify how a null InetAddress is handled This fix clarifies the behaviours of constructors from DatagramSocket and MulticastSocket when no address or a null address is supplied. Reviewed-by: dfuchs ! src/java.base/share/classes/java/net/DatagramSocket.java ! src/java.base/share/classes/java/net/MulticastSocket.java ! test/jdk/java/net/DatagramSocket/Constructor.java + test/jdk/java/net/MulticastSocket/Constructor.java Changeset: 59428f4a Author: Vicente Romero Date: 2020-06-09 10:31:05 +0000 URL: https://git.openjdk.java.net/zgc/commit/59428f4a 8245958: j.l.Record need to mention that canonical constructor may not be public Reviewed-by: mchung ! src/java.base/share/classes/java/lang/Record.java Changeset: 5b6f050f Author: Patrick Concannon Date: 2020-06-09 15:39:22 +0000 URL: https://git.openjdk.java.net/zgc/commit/5b6f050f 8245828: Remove unnecessary NetworkPermission checks from jdk/net/ExtendedSocketOptions.java This fix removes NetworkPermission checks that were made redundant in jdk/net/ExtendedSocketOptions after the socket option SO_FLOW_SLA was removed. Reviewed-by: alanb ! src/jdk.net/share/classes/jdk/net/ExtendedSocketOptions.java ! test/jdk/java/net/SocketOption/OptionsTest.java + test/jdk/java/net/SocketOption/options.policy Changeset: 3df95aa3 Author: Pavel Rappo Date: 2020-06-09 16:17:09 +0000 URL: https://git.openjdk.java.net/zgc/commit/3df95aa3 8247212: Use assistant markup in java.lang.module.ModuleDescriptor Reviewed-by: alanb ! src/java.base/share/classes/java/lang/module/ModuleDescriptor.java ! src/java.base/share/classes/java/lang/module/ModuleReader.java ! src/java.base/share/classes/jdk/internal/module/ServicesCatalog.java Changeset: 6e43cdda Author: Pavel Rappo Date: 2020-06-09 16:28:10 +0000 URL: https://git.openjdk.java.net/zgc/commit/6e43cdda 8247115: Fix typos in java.lang.invoke and java.lang Reviewed-by: lancea ! src/java.base/share/classes/java/lang/Math.java ! src/java.base/share/classes/java/lang/Runtime.java ! src/java.base/share/classes/java/lang/StackStreamFactory.java ! src/java.base/share/classes/java/lang/invoke/ClassSpecializer.java ! src/java.base/share/classes/java/lang/invoke/IndirectVarHandle.java ! src/java.base/share/classes/java/lang/invoke/LambdaForm.java ! src/java.base/share/classes/java/lang/invoke/MethodHandle.java ! src/java.base/share/classes/java/lang/invoke/MethodHandleInfo.java ! src/java.base/share/classes/java/lang/invoke/MethodHandleNatives.java ! src/java.base/share/classes/java/lang/invoke/MethodType.java ! src/java.base/share/classes/java/lang/invoke/VarHandle.java Changeset: 9a8ace2c Author: Erik ?sterlund Date: 2020-06-09 16:09:55 +0000 URL: https://git.openjdk.java.net/zgc/commit/9a8ace2c 8246837: Rename WeakHandle to better reflect its OopStorage association Reviewed-by: coleenp ! src/hotspot/share/classfile/classLoaderData.cpp ! src/hotspot/share/classfile/classLoaderData.hpp ! src/hotspot/share/classfile/protectionDomainCache.cpp ! src/hotspot/share/classfile/protectionDomainCache.hpp ! src/hotspot/share/oops/weakHandle.cpp ! src/hotspot/share/oops/weakHandle.hpp ! src/hotspot/share/utilities/hashtable.cpp Changeset: ac2828dd Author: Hannes Walln?fer Date: 2020-06-09 18:18:22 +0000 URL: https://git.openjdk.java.net/zgc/commit/ac2828dd 8164408: Add module support for @see, @link and @linkplain javadoc tags Reviewed-by: jjg ! src/jdk.compiler/share/classes/com/sun/tools/javac/api/JavacTrees.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/parser/DocCommentParser.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/parser/ReferenceParser.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/tree/DCTree.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/tree/DocTreeMaker.java ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/HtmlDocletWriter.java ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/util/CommentHelper.java + test/langtools/jdk/javadoc/doclet/testLinkTaglet/TestLinkTagletWithModule.java + test/langtools/jdk/javadoc/doclet/testSeeTag/TestSeeTagWithModule.java Changeset: f160c80e Author: Erik ?sterlund Date: 2020-06-09 16:22:54 +0000 URL: https://git.openjdk.java.net/zgc/commit/f160c80e 8244920: Access violation in frames::interpreter_frame_method Reviewed-by: mgronlun, coleenp ! src/hotspot/share/runtime/deoptimization.cpp Changeset: 6cbd66b1 Author: Erik ?sterlund Date: 2020-06-09 16:22:54 +0000 URL: https://git.openjdk.java.net/zgc/commit/6cbd66b1 8242240: JfrStacktrace_lock rank not special enough Reviewed-by: mgronlun, pliden ! src/hotspot/share/runtime/mutexLocker.cpp Changeset: 201d0a48 Author: Patric Hedlin Date: 2020-06-08 13:57:55 +0000 URL: https://git.openjdk.java.net/zgc/commit/201d0a48 8246689: Enable independent compressed oops/class ptrs on Aarch64 Reviewed-by: eosterlund ! src/hotspot/cpu/aarch64/globalDefinitions_aarch64.hpp ! test/hotspot/jtreg/runtime/CompressedOops/CompressedClassPointers.java Changeset: 140a7976 Author: Joe Wang Date: 2020-06-09 21:23:33 +0000 URL: https://git.openjdk.java.net/zgc/commit/140a7976 8237456: Transform filtered through SAX filter mishandles character entities Reviewed-by: aefimov, lancea ! src/java.xml/share/classes/com/sun/org/apache/xml/internal/serializer/ToStream.java + test/jaxp/javax/xml/jaxp/unittest/transform/SAXFilterTest.java Changeset: 27e16867 Author: Naoto Sato Date: 2020-06-09 14:46:08 +0000 URL: https://git.openjdk.java.net/zgc/commit/27e16867 8246662: Test java/time/test/java/time/format/TestUnicodeExtension.java failed on japanese locale Reviewed-by: rriggs, joehw ! src/java.base/share/classes/java/time/format/DateTimeFormatter.java ! test/jdk/java/time/test/java/time/format/TestUnicodeExtension.java Changeset: 0bf3ba40 Author: Kim Barrett Date: 2020-06-09 18:42:00 +0000 URL: https://git.openjdk.java.net/zgc/commit/0bf3ba40 8246718: ParallelGC should not check for forward objects for copy task queue Prefetch task's oop markword and unconditionally push task. Reviewed-by: tschatzl, eosterlund ! src/hotspot/share/gc/parallel/psPromotionManager.hpp ! src/hotspot/share/gc/parallel/psPromotionManager.inline.hpp Changeset: b6a9f301 Author: Anthony Scarpino Date: 2020-06-09 16:01:25 +0000 URL: https://git.openjdk.java.net/zgc/commit/b6a9f301 8241680: crypto microbenchmarks need updating for disabled EC curves Reviewed-by: ecaspole, redestad, skuksenko, jnimeh ! test/micro/org/openjdk/bench/javax/crypto/full/KeyAgreementBench.java ! test/micro/org/openjdk/bench/javax/crypto/full/KeyPairGeneratorBench.java ! test/micro/org/openjdk/bench/javax/crypto/full/SignatureBench.java Changeset: ee452946 Author: Anthony Scarpino Date: 2020-06-09 18:27:59 +0000 URL: https://git.openjdk.java.net/zgc/commit/ee452946 8245686: Ed25519 and Ed448 present in handshake messages Reviewed-by: jnimeh, xuelei, wetmore ! src/java.base/share/classes/sun/security/ssl/SignatureScheme.java Changeset: 80ae89b1 Author: Jie Fu Date: 2020-06-10 09:32:27 +0000 URL: https://git.openjdk.java.net/zgc/commit/80ae89b1 8247284: Zero VM is broken after JDK-8244920 ('class JavaFrameAnchor' has no member named 'set_last_Java_sp') Reviewed-by: iklam, dholmes ! src/hotspot/cpu/zero/javaFrameAnchor_zero.hpp Changeset: 56abdc17 Author: Jonathan Gibbons Date: 2020-06-09 19:34:18 +0000 URL: https://git.openjdk.java.net/zgc/commit/56abdc17 8246712: doclint incorrectly reports some HTML elements as empty Reviewed-by: prappo ! src/jdk.compiler/share/classes/com/sun/tools/doclint/Checker.java + test/langtools/tools/doclint/EmptyHtmlTest.java Changeset: 0652a788 Author: Jonathan Gibbons Date: 2020-06-09 19:50:30 +0000 URL: https://git.openjdk.java.net/zgc/commit/0652a788 8246705: javadoc gives "misleading" and incomplete warning message Reviewed-by: hannesw ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/tool/ElementsTable.java ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/tool/resources/javadoc.properties ! test/langtools/jdk/javadoc/tool/modules/MissingSourceModules.java ! test/langtools/jdk/javadoc/tool/modules/Modules.java Changeset: 07e6b75f Author: Jonathan Gibbons Date: 2020-06-09 20:05:04 +0000 URL: https://git.openjdk.java.net/zgc/commit/07e6b75f 8242607: -Xdoclint doesn't report missing/unexpected comments Reviewed-by: ksrini ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/CommentUtils.java ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/util/Utils.java + test/langtools/jdk/javadoc/doclet/testMissingComment/TestMissingComment.java ! test/langtools/jdk/javadoc/tool/QuietOption.java ! test/langtools/jdk/javadoc/tool/doclint/DocLintTest.java Changeset: a6df9ae2 Author: Prasanta Sadhukhan Date: 2020-06-10 12:43:22 +0000 URL: https://git.openjdk.java.net/zgc/commit/a6df9ae2 Merge Changeset: 90a774b9 Author: Stefan Karlsson Date: 2020-06-10 08:57:50 +0000 URL: https://git.openjdk.java.net/zgc/commit/90a774b9 8246272: Make use of GCLogPrecious for G1, Parallel and Serial Reviewed-by: pliden, eosterlund, sjohanss ! src/hotspot/share/gc/g1/g1InitLogger.cpp ! src/hotspot/share/gc/shared/gcInitLogger.cpp Changeset: 8e865fc5 Author: Stefan Karlsson Date: 2020-06-10 08:58:43 +0000 URL: https://git.openjdk.java.net/zgc/commit/8e865fc5 8246926: Clean up newlines and whitespaces in hs_err files Reviewed-by: dholmes, eosterlund, iklam ! src/hotspot/os/aix/os_aix.cpp ! src/hotspot/os/linux/os_linux.cpp ! src/hotspot/os/linux/os_linux.hpp ! src/hotspot/os/posix/os_posix.cpp ! src/hotspot/os/windows/os_windows.cpp ! src/hotspot/share/gc/g1/g1CollectedHeap.cpp ! src/hotspot/share/runtime/os.cpp ! src/hotspot/share/utilities/vmError.cpp ! test/hotspot/jtreg/runtime/logging/OsCpuLoggingTest.java Changeset: c58aaca7 Author: Stefan Karlsson Date: 2020-06-10 08:59:34 +0000 URL: https://git.openjdk.java.net/zgc/commit/c58aaca7 8247201: Print potential pointer value of readable stack memory in hs_err file Reviewed-by: eosterlund, dholmes, tschatzl ! src/hotspot/share/runtime/os.cpp Changeset: 81685b2a Author: Stefan Karlsson Date: 2020-06-10 09:00:12 +0000 URL: https://git.openjdk.java.net/zgc/commit/81685b2a 8247214: ZGC: ZUncommit initialization should use precious logging Reviewed-by: pliden, eosterlund, tschatzl ! src/hotspot/share/gc/z/zPhysicalMemory.cpp Changeset: b4d09cc9 Author: Stefan Karlsson Date: 2020-06-10 09:00:59 +0000 URL: https://git.openjdk.java.net/zgc/commit/b4d09cc9 8247236: fieldDescriptor::print_on_for prints extra newline after NULL Reviewed-by: iklam, coleenp, tschatzl ! src/hotspot/share/runtime/fieldDescriptor.cpp Changeset: 0e770d1e Author: Conor Cleary Committer: Julia Boes Date: 2020-06-10 09:56:33 +0000 URL: https://git.openjdk.java.net/zgc/commit/0e770d1e 8243655: Map.replace javadoc code snippet typo Replace 'value' with 'oldValue' in Map.replace(K, V, V) javadoc Reviewed-by: jlaskey, martin, prappo, jboes ! src/java.base/share/classes/java/util/Map.java Changeset: a5e03e23 Author: Jan Lahoda Date: 2020-06-10 11:01:29 +0000 URL: https://git.openjdk.java.net/zgc/commit/a5e03e23 8235564: javac crashes while compiling incorrect method invocation with member reference Reviewed-by: vromero ! src/jdk.compiler/share/classes/com/sun/tools/javac/api/JavacTaskPool.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/comp/DeferredAttr.java ! test/langtools/tools/javac/api/TestGetScopeResult.java + test/langtools/tools/javac/lambda/T8235564.java Changeset: c4985fb8 Author: Jan Lahoda Date: 2020-06-10 11:01:34 +0000 URL: https://git.openjdk.java.net/zgc/commit/c4985fb8 8237210: Modify the header to include Oracle copyright line Reviewed-by: jjg ! src/jdk.compiler/share/classes/com/sun/tools/javac/comp/TreeDiffer.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/comp/TreeHasher.java Changeset: 2e8356ea Author: Patrick Concannon Date: 2020-06-10 11:08:19 +0000 URL: https://git.openjdk.java.net/zgc/commit/2e8356ea 8244933: DatagramSocket.connect does not specify that it may cause datagrams in the socket receive buffer to be discarded This fix updates the javadoc for `DatagramSocket.connect` to inform the user that it may cause datagrams in the socket receive buffer to be discarded if not previously received via a call to `DatagramSocket.receive`. Reviewed-by: alanb, dfuchs ! src/java.base/share/classes/java/net/DatagramSocket.java Changeset: 19be4971 Author: Ralf Schmelter Date: 2020-06-10 12:29:01 +0000 URL: https://git.openjdk.java.net/zgc/commit/19be4971 8237354: Add option to jcmd to write a gzipped heap dump Reviewed-by: rrich, clanger, goetz ! src/hotspot/share/gc/shared/workgroup.cpp ! src/hotspot/share/gc/shared/workgroup.hpp ! src/hotspot/share/services/diagnosticCommand.cpp ! src/hotspot/share/services/diagnosticCommand.hpp ! src/hotspot/share/services/heapDumper.cpp ! src/hotspot/share/services/heapDumper.hpp + src/hotspot/share/services/heapDumperCompression.cpp + src/hotspot/share/services/heapDumperCompression.hpp ! src/java.base/share/native/libzip/zip_util.c + test/hotspot/jtreg/serviceability/dcmd/gc/HeapDumpCompressedTest.java + test/lib/jdk/test/lib/hprof/parser/GzipRandomAccess.java ! test/lib/jdk/test/lib/hprof/parser/HprofReader.java ! test/lib/jdk/test/lib/hprof/parser/Reader.java Changeset: 1dc79293 Author: Erik Gahlin Date: 2020-06-10 12:42:02 +0000 URL: https://git.openjdk.java.net/zgc/commit/1dc79293 8247269: JFR: Reduce allocation when using AnnotationElement Reviewed-by: mgronlun ! src/jdk.jfr/share/classes/jdk/jfr/AnnotationElement.java ! src/jdk.jfr/share/classes/jdk/jfr/internal/Type.java Changeset: 7e3d4f8c Author: Erik Gahlin Date: 2020-06-10 13:01:49 +0000 URL: https://git.openjdk.java.net/zgc/commit/7e3d4f8c 8247266: Speed up test\jdk\jdk\jfr\event\gc\detailed\TestZUncommitEvent.java Reviewed-by: mgronlun ! test/jdk/jdk/jfr/event/gc/detailed/TestZUncommitEvent.java Changeset: 65c461ed Author: Erik Gahlin Date: 2020-06-10 13:58:15 +0000 URL: https://git.openjdk.java.net/zgc/commit/65c461ed 8247320: JFR: Reduce logging overhead Reviewed-by: mgronlun ! src/jdk.jfr/share/classes/jdk/jfr/FlightRecorder.java ! src/jdk.jfr/share/classes/jdk/jfr/internal/ASMToolkit.java ! src/jdk.jfr/share/classes/jdk/jfr/internal/Logger.java ! src/jdk.jfr/share/classes/jdk/jfr/internal/MetadataHandler.java ! src/jdk.jfr/share/classes/jdk/jfr/internal/PlatformRecording.java ! src/jdk.jfr/share/classes/jdk/jfr/internal/RepositoryChunk.java ! src/jdk.jfr/share/classes/jdk/jfr/internal/RequestEngine.java ! src/jdk.jfr/share/classes/jdk/jfr/internal/ShutdownHook.java ! src/jdk.jfr/share/classes/jdk/jfr/internal/consumer/ChunkParser.java ! src/jdk.jfr/share/classes/jdk/jfr/internal/instrument/JDKEvents.java ! src/jdk.jfr/share/classes/jdk/jfr/internal/instrument/JIMethodCallInliner.java ! src/jdk.jfr/share/classes/jdk/jfr/internal/instrument/JIMethodMergeAdapter.java Changeset: f3c2a17a Author: Coleen Phillimore Date: 2020-06-10 08:29:39 +0000 URL: https://git.openjdk.java.net/zgc/commit/f3c2a17a 8247220: Make OopHandle constructor explicit Fix null initializations to explicitly call the OopHandle constructor Reviewed-by: lfoltan, kbarrett ! src/hotspot/share/classfile/classLoaderData.cpp ! src/hotspot/share/classfile/classLoaderData.hpp ! src/hotspot/share/classfile/javaClasses.cpp ! src/hotspot/share/classfile/moduleEntry.hpp ! src/hotspot/share/classfile/systemDictionaryShared.cpp ! src/hotspot/share/oops/constantPool.cpp ! src/hotspot/share/oops/cpCache.cpp ! src/hotspot/share/oops/klass.cpp ! src/hotspot/share/oops/oopHandle.hpp Changeset: d36a55d2 Author: Zhengyu Gu Date: 2020-06-10 08:34:10 +0000 URL: https://git.openjdk.java.net/zgc/commit/d36a55d2 8246591: Shenandoah: move string dedup roots scanning to concurrent phase Reviewed-by: shade ! src/hotspot/share/gc/shenandoah/shenandoahRootProcessor.cpp ! src/hotspot/share/gc/shenandoah/shenandoahRootProcessor.hpp ! src/hotspot/share/gc/shenandoah/shenandoahRootProcessor.inline.hpp Changeset: 191fe75c Author: Alexander Matveev Date: 2020-06-10 09:44:56 +0000 URL: https://git.openjdk.java.net/zgc/commit/191fe75c 8233215: jpackage doesn't allow enough flexibility for file type binding Reviewed-by: herrick, asemenyuk ! src/jdk.incubator.jpackage/macosx/classes/jdk/incubator/jpackage/internal/MacAppImageBuilder.java ! src/jdk.incubator.jpackage/share/classes/jdk/incubator/jpackage/internal/AddLauncherArguments.java ! src/jdk.incubator.jpackage/share/classes/jdk/incubator/jpackage/internal/Arguments.java ! test/jdk/tools/jpackage/helpers/jdk/jpackage/test/MacHelper.java + test/jdk/tools/jpackage/macosx/MacFileAssociationsTest.java Changeset: 714b345b Author: Aleksey Shipilev Date: 2020-06-10 16:05:36 +0000 URL: https://git.openjdk.java.net/zgc/commit/714b345b 8247310: Shenandoah: pacer should not affect interrupt status Reviewed-by: zgu ! src/hotspot/share/gc/shenandoah/shenandoahPacer.cpp ! src/hotspot/share/gc/shenandoah/shenandoahPacer.hpp Changeset: 268d8701 Author: Alexey Semenyuk Date: 2020-06-10 11:12:33 +0000 URL: https://git.openjdk.java.net/zgc/commit/268d8701 8231283: Add support to jpackage to create install Linux packages in /usr hierarchy Reviewed-by: herrick, almatvee ! src/jdk.incubator.jpackage/linux/classes/jdk/incubator/jpackage/internal/LinuxDebBundler.java ! src/jdk.incubator.jpackage/linux/classes/jdk/incubator/jpackage/internal/LinuxPackageBundler.java ! src/jdk.incubator.jpackage/linux/classes/jdk/incubator/jpackage/internal/LinuxRpmBundler.java ! src/jdk.incubator.jpackage/linux/classes/jdk/incubator/jpackage/internal/resources/LinuxResources.properties ! src/jdk.incubator.jpackage/linux/classes/jdk/incubator/jpackage/internal/resources/LinuxResources_ja.properties ! src/jdk.incubator.jpackage/linux/classes/jdk/incubator/jpackage/internal/resources/LinuxResources_zh_CN.properties ! src/jdk.incubator.jpackage/linux/classes/jdk/incubator/jpackage/internal/resources/template.spec + src/jdk.incubator.jpackage/linux/native/applauncher/Executor.cpp + src/jdk.incubator.jpackage/linux/native/applauncher/Executor.h ! src/jdk.incubator.jpackage/linux/native/applauncher/LinuxLauncher.cpp + src/jdk.incubator.jpackage/linux/native/applauncher/Package.cpp + src/jdk.incubator.jpackage/linux/native/applauncher/Package.h ! src/jdk.incubator.jpackage/share/classes/jdk/incubator/jpackage/internal/ApplicationLayout.java ! src/jdk.incubator.jpackage/share/classes/jdk/incubator/jpackage/internal/CfgFile.java ! test/jdk/tools/jpackage/helpers/jdk/jpackage/test/AdditionalLauncher.java ! test/jdk/tools/jpackage/helpers/jdk/jpackage/test/HelloApp.java ! test/jdk/tools/jpackage/helpers/jdk/jpackage/test/JPackageCommand.java ! test/jdk/tools/jpackage/helpers/jdk/jpackage/test/LinuxHelper.java ! test/jdk/tools/jpackage/helpers/jdk/jpackage/test/MacHelper.java ! test/jdk/tools/jpackage/helpers/jdk/jpackage/test/PackageTest.java ! test/jdk/tools/jpackage/helpers/jdk/jpackage/test/TKit.java ! test/jdk/tools/jpackage/helpers/jdk/jpackage/test/WindowsHelper.java + test/jdk/tools/jpackage/linux/jdk/jpackage/tests/UsrTreeTest.java ! test/jdk/tools/jpackage/share/InstallDirTest.java ! test/jdk/tools/jpackage/share/LicenseTest.java ! test/jdk/tools/jpackage/share/RuntimePackageTest.java Changeset: 847a3bac Author: Calvin Cheung Date: 2020-06-10 15:50:26 +0000 URL: https://git.openjdk.java.net/zgc/commit/847a3bac 8198698: Support Lambda proxy classes in dynamic CDS archive Added archving of hidden classes of type lambda proxy classes. Co-authored-by: Ioi Lam Reviewed-by: mchung, iklam, dholmes ! make/hotspot/symbols/symbols-unix ! src/hotspot/share/classfile/systemDictionary.cpp ! src/hotspot/share/classfile/systemDictionary.hpp ! src/hotspot/share/classfile/systemDictionaryShared.cpp ! src/hotspot/share/classfile/systemDictionaryShared.hpp ! src/hotspot/share/include/jvm.h ! src/hotspot/share/memory/dynamicArchive.cpp ! src/hotspot/share/oops/constantPool.cpp ! src/hotspot/share/oops/instanceKlass.cpp ! src/hotspot/share/oops/instanceKlass.hpp ! src/hotspot/share/oops/klass.hpp ! src/hotspot/share/prims/jvm.cpp ! src/hotspot/share/runtime/mutexLocker.cpp ! src/hotspot/share/runtime/mutexLocker.hpp ! src/java.base/share/classes/java/lang/invoke/InnerClassLambdaMetafactory.java + src/java.base/share/classes/java/lang/invoke/LambdaProxyClassArchive.java ! src/java.base/share/classes/jdk/internal/misc/VM.java + src/java.base/share/native/libjava/LambdaProxyClassArchive.c ! src/java.base/share/native/libjava/VM.c + test/hotspot/jtreg/runtime/cds/appcds/dynamicArchive/BasicLambdaTest.java + test/hotspot/jtreg/runtime/cds/appcds/dynamicArchive/CDSStreamTestDriver.java + test/hotspot/jtreg/runtime/cds/appcds/dynamicArchive/DoubleSumAverageTest.java + test/hotspot/jtreg/runtime/cds/appcds/dynamicArchive/LambdaCustomLoader.java + test/hotspot/jtreg/runtime/cds/appcds/dynamicArchive/LambdaForClassInBaseArchive.java + test/hotspot/jtreg/runtime/cds/appcds/dynamicArchive/LambdaProxyCallerIsHidden.java + test/hotspot/jtreg/runtime/cds/appcds/dynamicArchive/NestTest.java + test/hotspot/jtreg/runtime/cds/appcds/dynamicArchive/ParallelLambdaLoadTest.java + test/hotspot/jtreg/runtime/cds/appcds/dynamicArchive/PredicateTest.java + test/hotspot/jtreg/runtime/cds/appcds/dynamicArchive/RegularHiddenClass.java + test/hotspot/jtreg/runtime/cds/appcds/dynamicArchive/StaticInnerTest.java + test/hotspot/jtreg/runtime/cds/appcds/dynamicArchive/UnsafeAndLambda.java + test/hotspot/jtreg/runtime/cds/appcds/dynamicArchive/UnsafeAnonymous.java + test/hotspot/jtreg/runtime/cds/appcds/dynamicArchive/UsedAllArchivedLambdas.java + test/hotspot/jtreg/runtime/cds/appcds/dynamicArchive/methodHandles/CDSMHTest_generate.sh + test/hotspot/jtreg/runtime/cds/appcds/dynamicArchive/methodHandles/MethodHandlesAsCollectorTest.java + test/hotspot/jtreg/runtime/cds/appcds/dynamicArchive/methodHandles/MethodHandlesCastFailureTest.java + test/hotspot/jtreg/runtime/cds/appcds/dynamicArchive/methodHandles/MethodHandlesGeneralTest.java + test/hotspot/jtreg/runtime/cds/appcds/dynamicArchive/methodHandles/MethodHandlesInvokersTest.java + test/hotspot/jtreg/runtime/cds/appcds/dynamicArchive/methodHandles/MethodHandlesPermuteArgumentsTest.java + test/hotspot/jtreg/runtime/cds/appcds/dynamicArchive/methodHandles/MethodHandlesSpreadArgumentsTest.java + test/hotspot/jtreg/runtime/cds/appcds/dynamicArchive/test-classes/BasicLambdaApp.java + test/hotspot/jtreg/runtime/cds/appcds/dynamicArchive/test-classes/CustomLoaderApp.java + test/hotspot/jtreg/runtime/cds/appcds/dynamicArchive/test-classes/LambHello.java + test/hotspot/jtreg/runtime/cds/appcds/dynamicArchive/test-classes/LambdaProxyCallerIsHiddenApp.java + test/hotspot/jtreg/runtime/cds/appcds/dynamicArchive/test-classes/LambdaVerification.java + test/hotspot/jtreg/runtime/cds/appcds/dynamicArchive/test-classes/NestApp.java + test/hotspot/jtreg/runtime/cds/appcds/dynamicArchive/test-classes/ParallelLambdaLoad.java + test/hotspot/jtreg/runtime/cds/appcds/dynamicArchive/test-classes/PredicateApp.java + test/hotspot/jtreg/runtime/cds/appcds/dynamicArchive/test-classes/SimpleApp.java + test/hotspot/jtreg/runtime/cds/appcds/dynamicArchive/test-classes/StaticInnerApp.java + test/hotspot/jtreg/runtime/cds/appcds/dynamicArchive/test-classes/TestMHApp.java + test/hotspot/jtreg/runtime/cds/appcds/dynamicArchive/test-classes/TestStreamApp.java + test/hotspot/jtreg/runtime/cds/appcds/dynamicArchive/test-classes/UnsafeAndLambdaApp.java + test/hotspot/jtreg/runtime/cds/appcds/dynamicArchive/test-classes/UnsafeAnonymousApp.java + test/hotspot/jtreg/runtime/cds/appcds/dynamicArchive/test-classes/UsedAllArchivedLambdasApp.java ! test/hotspot/jtreg/runtime/cds/appcds/javaldr/AnonVmClassesDuringDump.java ! test/lib/jdk/test/lib/Utils.java Changeset: bf22f822 Author: Christian Hagedorn Date: 2020-06-10 17:56:23 +0000 URL: https://git.openjdk.java.net/zgc/commit/bf22f822 8244719: CTW: C2 compilation fails with "assert(!VerifyHashTableKeys || _hash_lock == 0) failed: remove node from hash table before modifying it" Fix Parse::Block::init_graph() to also count predecessors for exception blocks because they can have a direct bytecode jump to them resulting in this assertion failure. Reviewed-by: kvn, thartmann ! src/hotspot/share/opto/parse1.cpp + test/hotspot/jtreg/compiler/parsing/TestExceptionBlockWithPredecessors.jasm + test/hotspot/jtreg/compiler/parsing/TestExceptionBlockWithPredecessorsMain.java Changeset: e47b2bc8 Author: Igor Ignatyev Date: 2020-06-10 10:47:40 +0000 URL: https://git.openjdk.java.net/zgc/commit/e47b2bc8 8246387: switch to jtreg 5.1 Reviewed-by: dholmes, erikj ! make/conf/jib-profiles.js ! test/failure_handler/src/share/classes/jdk/test/failurehandler/jtreg/GatherDiagnosticInfoObserver.java ! test/hotspot/jtreg/TEST.ROOT ! test/hotspot/jtreg/runtime/condy/staticInit/TestInitException.java ! test/jaxp/TEST.ROOT ! test/jdk/TEST.ROOT ! test/langtools/TEST.ROOT ! test/lib-test/TEST.ROOT ! test/lib/jdk/test/lib/Utils.java ! test/lib/jdk/test/lib/cds/CDSTestUtils.java Changeset: 99136026 Author: Claes Redestad Date: 2020-06-10 20:53:04 +0000 URL: https://git.openjdk.java.net/zgc/commit/99136026 8246129: ZIP entries created for DOS epoch include local timezone metadata Reviewed-by: lancea ! src/java.base/share/classes/java/util/zip/ZipEntry.java ! src/java.base/share/classes/java/util/zip/ZipUtils.java + test/jdk/java/util/zip/ZipFile/ZipEntryTimeBounds.java Changeset: 120a0d11 Author: Roger Riggs Date: 2020-06-10 14:51:28 +0000 URL: https://git.openjdk.java.net/zgc/commit/120a0d11 8247274: (test) HexPrinter cleanup Reviewed-by: lancea ! test/lib-test/jdk/test/lib/hexdump/HexPrinterTest.java ! test/lib/jdk/test/lib/hexdump/HexPrinter.java Changeset: b03766fb Author: Igor Ignatyev Date: 2020-06-10 13:15:27 +0000 URL: https://git.openjdk.java.net/zgc/commit/b03766fb 8183040: update jdk/test/lib/Platform.java to use NIO file Reviewed-by: amenkov, bpb ! test/lib/jdk/test/lib/Platform.java ! test/lib/jdk/test/lib/SA/SATestUtils.java Changeset: 54f7732c Author: Naoto Sato Date: 2020-06-10 13:29:44 +0000 URL: https://git.openjdk.java.net/zgc/commit/54f7732c 8246721: java/util/Locale/LocaleProvidersRun.java failed on Windows platforms Reviewed-by: rriggs ! test/jdk/java/util/Locale/LocaleProvidersRun.java Changeset: 74500984 Author: Ralf Schmelter Date: 2020-06-10 23:40:44 +0000 URL: https://git.openjdk.java.net/zgc/commit/74500984 8247362: HeapDumpComressedTest fails Reviewed-by: dcubed, stefank ! test/hotspot/jtreg/serviceability/dcmd/gc/HeapDumpCompressedTest.java Changeset: 52be8949 Author: Alexander Matveev Date: 2020-06-10 18:18:30 +0000 URL: https://git.openjdk.java.net/zgc/commit/52be8949 8245788: EmptyFolderPackageTest fails on Windows 10 Reviewed-by: herrick, asemenyuk ! test/jdk/tools/jpackage/share/EmptyFolderPackageTest.java Changeset: e3cb4df4 Author: Jonathan Gibbons Date: 2020-06-10 17:23:05 +0000 URL: https://git.openjdk.java.net/zgc/commit/e3cb4df4 8247235: doclint should permit "self-closing" tags for void elements in HTML5 Reviewed-by: hannesw ! src/jdk.compiler/share/classes/com/sun/tools/doclint/Checker.java ! test/langtools/jdk/javadoc/doclet/testWarnings/TestWarnings.java ! test/langtools/jdk/javadoc/doclet/testWarnings/pkg/X.java Changeset: 60981917 Author: Alexey Semenyuk Date: 2020-06-10 20:45:28 +0000 URL: https://git.openjdk.java.net/zgc/commit/60981917 8233244: Add tests for icons configuration in rpm/deb packages Reviewed-by: herrick, almatvee ! test/jdk/tools/jpackage/helpers/jdk/jpackage/test/FileAssociations.java ! test/jdk/tools/jpackage/helpers/jdk/jpackage/test/LinuxHelper.java ! test/jdk/tools/jpackage/helpers/jdk/jpackage/test/PackageTest.java Changeset: a2401333 Author: Alexey Semenyuk Date: 2020-06-10 20:45:28 +0000 URL: https://git.openjdk.java.net/zgc/commit/a2401333 8246042: Non-ASCII characters are not handled correctly in the native launcher Reviewed-by: herrick, almatvee ! src/jdk.incubator.jpackage/share/native/applauncher/JvmLauncher.cpp ! src/jdk.incubator.jpackage/share/native/applauncher/JvmLauncher.h ! src/jdk.incubator.jpackage/share/native/common/tstrings.cpp ! src/jdk.incubator.jpackage/share/native/common/tstrings.h ! test/jdk/tools/jpackage/apps/image/Hello.java + test/jdk/tools/jpackage/share/jdk/jpackage/tests/UnicodeArgsTest.java Changeset: 259662fe Author: Alexey Semenyuk Date: 2020-06-10 20:45:28 +0000 URL: https://git.openjdk.java.net/zgc/commit/259662fe 8247353: jtreg tests minor issues clean up Reviewed-by: herrick, almatvee ! test/jdk/tools/jpackage/share/AddLauncherTest.java ! test/jdk/tools/jpackage/share/jdk/jpackage/tests/BasicTest.java Changeset: 462f8068 Author: Jie Fu Date: 2020-06-11 10:08:33 +0000 URL: https://git.openjdk.java.net/zgc/commit/462f8068 8247377: Zero and Minimal VMs are broken after JDK-8198698 ('SystemDictionaryShared' has not been declared) Reviewed-by: dholmes ! src/hotspot/share/prims/jvm.cpp Changeset: bb5e5b38 Author: Jesper Wilhelmsson Date: 2020-06-11 04:07:58 +0000 URL: https://git.openjdk.java.net/zgc/commit/bb5e5b38 Added tag jdk-15+27 for changeset 506abc554cae ! .hgtags Changeset: 2ff9f53a Author: Serguei Spitsyn Date: 2020-06-11 05:53:33 +0000 URL: https://git.openjdk.java.net/zgc/commit/2ff9f53a 8222005: ClassRedefinition crashes with: guarantee(false) failed: OLD and/or OBSOLETE method(s) found Remove optimizations from class redefinition that cause the guarantee hit Reviewed-by: coleenp, dcubed ! src/hotspot/share/oops/cpCache.cpp ! src/hotspot/share/oops/klassVtable.cpp ! src/hotspot/share/prims/jvmtiRedefineClasses.cpp Changeset: 6d8c81f6 Author: Serguei Spitsyn Date: 2020-06-11 06:04:05 +0000 URL: https://git.openjdk.java.net/zgc/commit/6d8c81f6 8245126: Kitchensink fails with: assert(!method->is_old()) failed: Should not be installing old methods Fix the method->is_old() assert Reviewed-by: dlong, chagedorn ! src/hotspot/share/ci/ciEnv.cpp ! src/hotspot/share/ci/ciEnv.hpp ! src/hotspot/share/compiler/compileBroker.cpp ! src/hotspot/share/jvmci/jvmciEnv.cpp ! src/hotspot/share/jvmci/jvmciEnv.hpp Changeset: 96fadefa Author: Yumin Qi Date: 2020-06-10 23:16:27 +0000 URL: https://git.openjdk.java.net/zgc/commit/96fadefa 8240245: Avoid calling is_shared_class_visible() in SystemDictionary::load_shared_class() SystemDitionary::load_shared_class can avoid calling is_shared_class_visible if dumptime and runtime do not use modulepath and boot classpath appending. Reviewed-by: iklam, ccheung ! src/hotspot/share/classfile/classLoader.cpp ! src/hotspot/share/classfile/classLoader.hpp ! src/hotspot/share/classfile/systemDictionary.cpp ! src/hotspot/share/classfile/systemDictionary.hpp ! src/hotspot/share/memory/filemap.cpp ! src/hotspot/share/memory/filemap.hpp ! src/hotspot/share/memory/metaspaceShared.cpp ! src/hotspot/share/memory/metaspaceShared.hpp ! src/hotspot/share/runtime/arguments.cpp + test/hotspot/jtreg/runtime/cds/appcds/jigsaw/modulepath/OptimizeModuleHandlingTest.java + test/hotspot/jtreg/runtime/cds/appcds/jigsaw/modulepath/src/com.bars/com/bars/Main.java + test/hotspot/jtreg/runtime/cds/appcds/jigsaw/modulepath/src/com.bars/module-info.java + test/hotspot/jtreg/runtime/cds/appcds/jigsaw/modulepath/src/com.foos/com/foos/Test.java + test/hotspot/jtreg/runtime/cds/appcds/jigsaw/modulepath/src/com.foos/module-info.java Changeset: c563c3d1 Author: Alan Bateman Date: 2020-06-11 07:27:22 +0000 URL: https://git.openjdk.java.net/zgc/commit/c563c3d1 8241770: Module xxxAnnotation() methods throw NCDFE if module-info.class found as resource in unnamed module Reviewed-by: mchung ! src/java.base/share/classes/java/lang/Module.java ! src/java.base/share/classes/jdk/internal/module/ModuleInfoWriter.java ! test/jdk/java/lang/ModuleTests/AnnotationsTest.java Changeset: 6a2e3ca2 Author: Robbin Ehn Date: 2020-06-11 10:00:23 +0000 URL: https://git.openjdk.java.net/zgc/commit/6a2e3ca2 8247248: JVM TI Monitor queries might create JNI locals in another thread when using handshakes Reviewed-by: dholmes, dcubed, sspitsyn, ysuenaga ! src/hotspot/share/prims/jvmtiEnv.cpp ! src/hotspot/share/prims/jvmtiEnvBase.cpp ! src/hotspot/share/prims/jvmtiEnvBase.hpp Changeset: b9ce3b43 Author: Fairoz Matte Date: 2020-06-11 08:23:09 +0000 URL: https://git.openjdk.java.net/zgc/commit/b9ce3b43 8243451: nsk.share.jdi.Debugee.isJFR_active() is incorrect and corresponsing logic seems to be broken Fix check isJFR_active() Reviewed-by: sspitsyn, lmesnik ! test/hotspot/jtreg/vmTestbase/nsk/share/jdi/Debugee.java ! test/hotspot/jtreg/vmTestbase/nsk/share/jdi/HeapwalkingDebuggee.java ! test/hotspot/jtreg/vmTestbase/nsk/share/jdi/HeapwalkingDebugger.java ! test/hotspot/jtreg/vmTestbase/nsk/share/jdi/TestDebuggerType2.java Changeset: 0228a5c7 Author: Markus Gr?nlund Date: 2020-06-11 10:48:35 +0000 URL: https://git.openjdk.java.net/zgc/commit/0228a5c7 8245113: JFR Recorder Thread to run in thread state "_thread_in_native" Reviewed-by: egahlin ! src/hotspot/share/jfr/jni/jfrJavaSupport.cpp ! src/hotspot/share/jfr/jni/jfrJniMethod.cpp ! src/hotspot/share/jfr/leakprofiler/checkpoint/objectSampleCheckpoint.cpp ! src/hotspot/share/jfr/recorder/checkpoint/jfrCheckpointManager.cpp ! src/hotspot/share/jfr/recorder/checkpoint/jfrMetadataEvent.cpp ! src/hotspot/share/jfr/recorder/checkpoint/jfrMetadataEvent.hpp ! src/hotspot/share/jfr/recorder/checkpoint/types/jfrTypeSet.cpp ! src/hotspot/share/jfr/recorder/repository/jfrChunkRotation.cpp ! src/hotspot/share/jfr/recorder/repository/jfrEmergencyDump.cpp ! src/hotspot/share/jfr/recorder/service/jfrRecorderService.cpp ! src/hotspot/share/jfr/recorder/service/jfrRecorderThreadLoop.cpp ! src/hotspot/share/jfr/utilities/jfrConcurrentLinkedListHost.hpp ! src/hotspot/share/jfr/utilities/jfrConcurrentLinkedListHost.inline.hpp ! src/hotspot/share/jfr/utilities/jfrVersionSystem.inline.hpp Changeset: 83d0318e Author: Markus Gr?nlund Date: 2020-06-11 10:56:59 +0000 URL: https://git.openjdk.java.net/zgc/commit/83d0318e 8239024: Kitchensink24HStress.java failed due to timeout Reviewed-by: egahlin ! src/hotspot/share/jfr/leakprofiler/checkpoint/eventEmitter.cpp ! src/hotspot/share/jfr/leakprofiler/checkpoint/eventEmitter.hpp ! src/hotspot/share/jfr/leakprofiler/checkpoint/objectSampleCheckpoint.cpp ! src/hotspot/share/jfr/recorder/repository/jfrEmergencyDump.cpp ! src/hotspot/share/jfr/recorder/service/jfrRecorderService.cpp Changeset: 2085fd32 Author: Thomas Stuefe Date: 2020-06-11 12:51:09 +0000 URL: https://git.openjdk.java.net/zgc/commit/2085fd32 8247252: TestCombinedCompressedFlags.java failed src/hotspot/share/services/virtualMemoryTracker.cpp:388 Error: ShouldNotReachHere() Reviewed-by: minqi, dholmes ! src/hotspot/share/memory/metaspaceShared.cpp ! src/hotspot/share/services/virtualMemoryTracker.cpp ! test/hotspot/jtreg/runtime/cds/SharedBaseAddress.java ! test/hotspot/jtreg/runtime/cds/appcds/ArchiveRelocationTest.java ! test/hotspot/jtreg/runtime/cds/appcds/TestCombinedCompressedFlags.java Changeset: 03642a01 Author: Jim Laskey Date: 2020-06-11 10:08:23 +0000 URL: https://git.openjdk.java.net/zgc/commit/03642a01 8230744: Several classes throw OutOfMemoryError without message Reviewed-by: psandoz, martin, bchristi, rriggs, smarks ! src/java.base/share/classes/java/lang/AbstractStringBuilder.java ! src/java.base/share/classes/java/lang/String.java ! src/java.base/share/classes/java/lang/StringLatin1.java ! src/java.base/share/classes/java/lang/StringUTF16.java ! src/java.base/share/classes/java/util/concurrent/PriorityBlockingQueue.java ! src/java.base/share/classes/java/util/regex/Pattern.java ! src/java.base/share/classes/jdk/internal/misc/Unsafe.java ! src/java.xml.crypto/share/classes/com/sun/org/apache/xml/internal/security/utils/UnsyncByteArrayOutputStream.java ! src/jdk.zipfs/share/classes/jdk/nio/zipfs/ByteArrayChannel.java Changeset: 95730995 Author: Alexey Semenyuk Date: 2020-06-11 09:51:33 +0000 URL: https://git.openjdk.java.net/zgc/commit/95730995 8246792: Mac signing tests failed (unsealed contents present in the bundle root) Reviewed-by: herrick, almatvee ! src/jdk.incubator.jpackage/macosx/classes/jdk/incubator/jpackage/internal/MacAppImageBuilder.java ! src/jdk.incubator.jpackage/macosx/classes/jdk/incubator/jpackage/internal/MacDmgBundler.java ! src/jdk.incubator.jpackage/macosx/classes/jdk/incubator/jpackage/internal/MacPkgBundler.java ! src/jdk.incubator.jpackage/share/classes/jdk/incubator/jpackage/internal/AppImageFile.java ! src/jdk.incubator.jpackage/share/classes/jdk/incubator/jpackage/internal/IOUtils.java ! test/jdk/tools/jpackage/helpers/jdk/jpackage/test/JPackageCommand.java ! test/jdk/tools/jpackage/helpers/jdk/jpackage/test/PackageTest.java ! test/jdk/tools/jpackage/share/jdk/jpackage/tests/BasicTest.java Changeset: 7e052132 Author: Evgeny Nikitin Date: 2020-05-11 17:00:16 +0000 URL: https://git.openjdk.java.net/zgc/commit/7e052132 8244282: test/hotspot/jtreg/compiler/intrinsics/Test8237524.java fails with --illegal-access=deny Add modules to test/hotspot/jtreg/compiler/intrinsics/Test8237524 Reviewed-by: iignatyev ! test/hotspot/jtreg/compiler/intrinsics/Test8237524.java Changeset: 212ab176 Author: Evgeny Nikitin Date: 2020-06-10 13:17:03 +0000 URL: https://git.openjdk.java.net/zgc/commit/212ab176 8242923: Trigger interface MethodHandle resolve in test without Nashorn Reviewed-by: iignatyev ! test/hotspot/jtreg/ProblemList.txt ! test/hotspot/jtreg/compiler/jsr292/CreatesInterfaceDotEqualsCallInfo.java - test/hotspot/jtreg/compiler/jsr292/createsInterfaceDotEqualsCallInfo.js Changeset: 30ff2ad5 Author: Calvin Cheung Date: 2020-06-11 15:47:36 +0000 URL: https://git.openjdk.java.net/zgc/commit/30ff2ad5 8246382: assert in MetaspaceShared::map_archives Perform base archive header CRC check earlier. Reviewed-by: iklam, coleenp ! src/hotspot/share/memory/dynamicArchive.cpp ! src/hotspot/share/memory/filemap.cpp ! src/hotspot/share/memory/metaspaceShared.cpp + test/hotspot/jtreg/runtime/cds/appcds/dynamicArchive/MismatchedBaseArchive.java Changeset: 7da56dfb Author: Jesper Wilhelmsson Date: 2020-06-11 18:08:29 +0000 URL: https://git.openjdk.java.net/zgc/commit/7da56dfb Added tag jdk-16+0 for changeset 93813843680b ! .hgtags Changeset: 9ac1ab37 Author: Aleksey Shipilev Date: 2020-06-11 18:16:26 +0000 URL: https://git.openjdk.java.net/zgc/commit/9ac1ab37 8247358: Shenandoah: reconsider free budget slice for marking Reviewed-by: zgu ! src/hotspot/share/gc/shenandoah/shenandoahPacer.cpp Changeset: 4862a00f Author: Aleksey Shipilev Date: 2020-06-11 18:16:32 +0000 URL: https://git.openjdk.java.net/zgc/commit/4862a00f 8247367: Shenandoah: pacer should wait on lock instead of exponential backoff Reviewed-by: zgu ! src/hotspot/share/gc/shenandoah/shenandoahPacer.cpp ! src/hotspot/share/gc/shenandoah/shenandoahPacer.inline.hpp Changeset: bb867793 Author: Prasadrao Koppula Date: 2020-06-11 21:54:51 +0000 URL: https://git.openjdk.java.net/zgc/commit/bb867793 8246031: SSLSocket.getSession() doesn't close connection for timeout/ interrupts Reviewed-by: xuelei, coffeys ! src/java.base/share/classes/sun/security/ssl/SSLSocketImpl.java + test/jdk/sun/security/ssl/SSLSocketImpl/SetSoTimeout.java Changeset: 65455ff6 Author: Lance Andersen Date: 2020-06-11 12:58:13 +0000 URL: https://git.openjdk.java.net/zgc/commit/65455ff6 8207936: TestZipFile.java can fail with an OOM error Reviewed-by: joehw, redestad ! test/jdk/java/util/zip/ZipFile/TestZipFile.java Changeset: 6dec50a7 Author: Mandy Chung Date: 2020-06-11 11:07:09 +0000 URL: https://git.openjdk.java.net/zgc/commit/6dec50a7 8247247: JFR tests fail due to JDK-8235521 missing doPrivileged block Reviewed-by: egahlin ! src/jdk.jfr/share/classes/jdk/jfr/internal/MetadataRepository.java ! src/jdk.jfr/share/classes/jdk/jfr/internal/SecuritySupport.java Changeset: 15999a9f Author: Sean Coffey Date: 2020-06-11 20:06:46 +0000 URL: https://git.openjdk.java.net/zgc/commit/15999a9f Merge Changeset: a5b57127 Author: Joe Darcy Date: 2020-06-07 20:02:03 +0000 URL: https://git.openjdk.java.net/zgc/commit/a5b57127 8235496: Start of release updates for JDK 16 8245585: Add SourceVersion.RELEASE_16 8245586: Add source 16 and target 16 to javac 8245544: com/sun/tools/javac/platform/JDKPlatformProvider.java does not support ct.sym with platform versions 16+ Co-authored-by: David Holmes Co-authored-by: Jan Lahoda Reviewed-by: erikj, dholmes, ihse, neugens, jjg, jlahoda, jlaskey, mikael ! make/autoconf/version-numbers + make/data/symbols/java.base-F.sym.txt + make/data/symbols/java.compiler-F.sym.txt + make/data/symbols/java.desktop-F.sym.txt + make/data/symbols/java.management.rmi-F.sym.txt + make/data/symbols/java.naming-F.sym.txt + make/data/symbols/java.xml-F.sym.txt + make/data/symbols/jdk.compiler-F.sym.txt + make/data/symbols/jdk.incubator.foreign-F.sym.txt + make/data/symbols/jdk.jartool-F.sym.txt + make/data/symbols/jdk.javadoc-F.sym.txt + make/data/symbols/jdk.net-F.sym.txt + make/data/symbols/jdk.nio.mapmode-F.sym.txt + make/data/symbols/jdk.rmic-F.sym.txt + make/data/symbols/jdk.scripting.nashorn-F.sym.txt + make/data/symbols/jdk.unsupported-F.sym.txt ! make/data/symbols/symbols ! src/hotspot/share/classfile/classFileParser.cpp ! src/java.base/share/classes/jdk/internal/org/objectweb/asm/ClassReader.java ! src/java.base/share/classes/jdk/internal/org/objectweb/asm/Opcodes.java ! src/java.compiler/share/classes/javax/lang/model/SourceVersion.java ! src/java.compiler/share/classes/javax/lang/model/util/AbstractAnnotationValueVisitor14.java ! src/java.compiler/share/classes/javax/lang/model/util/AbstractElementVisitor14.java ! src/java.compiler/share/classes/javax/lang/model/util/AbstractTypeVisitor14.java ! src/java.compiler/share/classes/javax/lang/model/util/ElementKindVisitor14.java ! src/java.compiler/share/classes/javax/lang/model/util/ElementScanner14.java ! src/java.compiler/share/classes/javax/lang/model/util/SimpleAnnotationValueVisitor14.java ! src/java.compiler/share/classes/javax/lang/model/util/SimpleElementVisitor14.java ! src/java.compiler/share/classes/javax/lang/model/util/SimpleTypeVisitor14.java ! src/java.compiler/share/classes/javax/lang/model/util/TypeKindVisitor14.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/code/Source.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/jvm/ClassFile.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/jvm/Target.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/platform/JDKPlatformProvider.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/processing/PrintingProcessor.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.replacements/src/org/graalvm/compiler/replacements/classfile/Classfile.java ! test/hotspot/jtreg/runtime/CommandLine/VMDeprecatedOptions.java ! test/hotspot/jtreg/runtime/modules/sealedP1/SuperClass.jcod ! test/hotspot/jtreg/runtime/records/abstractRecord.jcod ! test/hotspot/jtreg/runtime/records/badRecordAttribute.jcod ! test/hotspot/jtreg/runtime/records/notFinalRecord.jcod ! test/hotspot/jtreg/runtime/records/recordIgnoredVersion.jcod ! test/hotspot/jtreg/runtime/records/shortRecordAttribute.jcod ! test/hotspot/jtreg/runtime/records/superNotJLRecord.jcod ! test/hotspot/jtreg/runtime/records/twoRecordAttributes.jcod ! test/hotspot/jtreg/runtime/sealedClasses/GetPermittedSubclasses.jcod ! test/hotspot/jtreg/runtime/sealedClasses/Pkg/NotPermitted.jcod ! test/hotspot/jtreg/runtime/sealedClasses/Pkg/SealedInterface.jcod ! test/hotspot/jtreg/runtime/sealedClasses/planets/Mars.jcod ! test/hotspot/jtreg/runtime/sealedClasses/planets/OuterPlanets.jcod ! test/jdk/java/lang/module/ClassFileVersionsTest.java ! test/langtools/tools/javac/api/T6395981.java ! test/langtools/tools/javac/classfiles/ClassVersionChecker.java ! test/langtools/tools/javac/lib/JavacTestingAbstractProcessor.java ! test/langtools/tools/javac/preview/classReaderTest/Client.nopreview.out ! test/langtools/tools/javac/preview/classReaderTest/Client.preview.out ! test/langtools/tools/javac/versions/Versions.java Changeset: 319b4e71 Author: Iris Clark Date: 2020-06-09 08:56:13 +0000 URL: https://git.openjdk.java.net/zgc/commit/319b4e71 8246803: Update link to license in Docs.gmk Reviewed-by: darcy, mikael ! make/Docs.gmk Changeset: 6341f8c0 Author: Leonid Mesnik Date: 2020-06-11 14:03:00 +0000 URL: https://git.openjdk.java.net/zgc/commit/6341f8c0 8244965: Incorrect error message in vmTestbase/nsk/jdi/VirtualMachine/suspend/suspend001/TestDescription.java Reviewed-by: dholmes ! test/hotspot/jtreg/vmTestbase/nsk/jdi/VirtualMachine/dispose/dispose004.java ! test/hotspot/jtreg/vmTestbase/nsk/jdi/VirtualMachine/suspend/suspend001.java Changeset: b81f2f1f Author: Joe Darcy Date: 2020-06-11 15:55:19 +0000 URL: https://git.openjdk.java.net/zgc/commit/b81f2f1f 8245620: Improve Annotation.annotationType() documentation Reviewed-by: alanb, prappo ! src/java.base/share/classes/java/lang/annotation/Annotation.java Changeset: 2f5d4c63 Author: Joe Darcy Date: 2020-06-11 16:35:29 +0000 URL: https://git.openjdk.java.net/zgc/commit/2f5d4c63 8247374: Remove default constructors from javax.net.sslK Reviewed-by: xuelei ! src/java.base/share/classes/javax/net/ssl/ExtendedSSLSession.java ! src/java.base/share/classes/javax/net/ssl/KeyManagerFactorySpi.java ! src/java.base/share/classes/javax/net/ssl/SSLContextSpi.java ! src/java.base/share/classes/javax/net/ssl/TrustManagerFactorySpi.java ! src/java.base/share/classes/javax/net/ssl/X509ExtendedTrustManager.java Changeset: c0475c81 Author: Mandy Chung Date: 2020-06-11 11:07:09 +0000 URL: https://git.openjdk.java.net/zgc/commit/c0475c81 8247247: JFR tests fail due to JDK-8235521 missing doPrivileged block Reviewed-by: egahlin ! src/jdk.jfr/share/classes/jdk/jfr/internal/MetadataRepository.java ! src/jdk.jfr/share/classes/jdk/jfr/internal/SecuritySupport.java Changeset: edefd3c1 Author: Alexey Semenyuk Date: 2020-06-11 19:46:39 +0000 URL: https://git.openjdk.java.net/zgc/commit/edefd3c1 8247422: --runtime-image on Mac should work for runtime root 8247424: jpackage BasicTest.java failed two sub-tests Reviewed-by: herrick, almatvee ! src/jdk.incubator.jpackage/share/classes/jdk/incubator/jpackage/internal/StandardBundlerParam.java ! test/jdk/tools/jpackage/share/jdk/jpackage/tests/BasicTest.java + test/jdk/tools/jpackage/share/jdk/jpackage/tests/CookedRuntimeTest.java Changeset: 0b8f18be Author: Valerie Peng Date: 2020-06-12 02:34:44 +0000 URL: https://git.openjdk.java.net/zgc/commit/0b8f18be 8246613: Choose the default SecureRandom algo based on registration ordering Fixed java.security.Provider and SecureRandom to use the 1st registered SecureRandom service Reviewed-by: weijun, mullan ! src/java.base/share/classes/java/security/Provider.java ! src/java.base/share/classes/java/security/SecureRandom.java ! test/jdk/java/security/SecureRandom/DefaultAlgo.java Changeset: 56d333c5 Author: Jesper Wilhelmsson Date: 2020-06-12 05:00:09 +0000 URL: https://git.openjdk.java.net/zgc/commit/56d333c5 Added tag jdk-15+27 for changeset 93813843680b ! .hgtags Changeset: 494f9667 Author: Jesper Wilhelmsson Date: 2020-06-12 05:12:32 +0000 URL: https://git.openjdk.java.net/zgc/commit/494f9667 Merge ! .hgtags ! .hgtags Changeset: 08304ada Author: Jesper Wilhelmsson Date: 2020-06-12 09:47:25 +0000 URL: https://git.openjdk.java.net/zgc/commit/08304ada Added tag jdk-16+1 for changeset 4a485c89d5a0 ! .hgtags Changeset: 1b75b7de Author: Conor Cleary Committer: Patrick Concannon Date: 2020-06-12 09:48:30 +0000 URL: https://git.openjdk.java.net/zgc/commit/1b75b7de 8246143: UnreferencedXXX tests fail when run with --illegal-access=deny This patch updates the @modules tag with +open in the tests UnreferencedDatagramSockets and UnreferncedMulticastSockets in advance of the removal of --illegal-access to allow access to private member fields required by the tests. Reviewed-by: alanb, dfuchs ! test/jdk/java/net/DatagramSocket/UnreferencedDatagramSockets.java ! test/jdk/java/net/MulticastSocket/UnreferencedMulticastSockets.java Changeset: 24f040da Author: Jie Fu Date: 2020-06-12 10:52:20 +0000 URL: https://git.openjdk.java.net/zgc/commit/24f040da 8247396: Exclude PCH for files in $(OPT_SPEED_SRC) with clang after JDK-8246751 Reviewed-by: ihse, erikj ! make/hotspot/lib/JvmOverrideFiles.gmk Changeset: 1b64fb20 Author: Jan Lahoda Date: 2020-06-12 13:38:06 +0000 URL: https://git.openjdk.java.net/zgc/commit/1b64fb20 8247334: Trees.getScope crashes for annotated local records Reviewed-by: vromero ! src/jdk.compiler/share/classes/com/sun/tools/javac/comp/TypeEnter.java ! test/langtools/tools/javac/api/TestGetScopeResult.java Changeset: ac460314 Author: Poonam Bajaj Date: 2020-06-12 12:51:32 +0000 URL: https://git.openjdk.java.net/zgc/commit/ac460314 8243290: Improve diagnostic messages for class verification and redefinition failures Reviewed-by: coleenp, hseigel, sspitsyn ! src/hotspot/share/classfile/verifier.cpp ! src/hotspot/share/prims/jvmtiRedefineClasses.cpp Changeset: c06fe155 Author: Daniel D. Daugherty Date: 2020-06-12 12:06:24 +0000 URL: https://git.openjdk.java.net/zgc/commit/c06fe155 8247492: ProblemList tools/jlink/plugins/CompressorPluginTest.java Reviewed-by: jlaskey ! test/jdk/ProblemList.txt Changeset: 0e4829ef Author: Calvin Cheung Date: 2020-06-12 16:48:27 +0000 URL: https://git.openjdk.java.net/zgc/commit/0e4829ef 8245060: remove copying of s.h.WB$WhiteBoxPermission in cds/appcds tests Reviewed-by: dholmes, minqi, iklam ! test/hotspot/jtreg/runtime/cds/appcds/dynamicArchive/AppendClasspath.java ! test/hotspot/jtreg/runtime/cds/appcds/dynamicArchive/ArrayKlasses.java ! test/hotspot/jtreg/runtime/cds/appcds/dynamicArchive/ClassResolutionFailure.java ! test/hotspot/jtreg/runtime/cds/appcds/dynamicArchive/DynamicArchiveRelocationTest.java ! test/hotspot/jtreg/runtime/cds/appcds/dynamicArchive/DynamicLotsOfClasses.java ! test/hotspot/jtreg/runtime/cds/appcds/dynamicArchive/ExcludedClasses.java ! test/hotspot/jtreg/runtime/cds/appcds/dynamicArchive/HelloDynamic.java ! test/hotspot/jtreg/runtime/cds/appcds/dynamicArchive/HelloDynamicCustom.java ! test/hotspot/jtreg/runtime/cds/appcds/dynamicArchive/HelloDynamicCustomUnload.java ! test/hotspot/jtreg/runtime/cds/appcds/dynamicArchive/JITInteraction.java ! test/hotspot/jtreg/runtime/cds/appcds/dynamicArchive/LinkClassTest.java ! test/hotspot/jtreg/runtime/cds/appcds/dynamicArchive/MethodSorting.java ! test/hotspot/jtreg/runtime/cds/appcds/dynamicArchive/MissingArchive.java ! test/hotspot/jtreg/runtime/cds/appcds/dynamicArchive/NoClassToArchive.java ! test/hotspot/jtreg/runtime/cds/appcds/dynamicArchive/RelativePath.java ! test/hotspot/jtreg/runtime/cds/appcds/dynamicArchive/SharedArchiveFileOption.java ! test/hotspot/jtreg/runtime/cds/appcds/dynamicArchive/UnsupportedBaseArchive.java ! test/hotspot/jtreg/runtime/cds/appcds/dynamicArchive/UnusedCPDuringDump.java ! test/hotspot/jtreg/runtime/cds/appcds/dynamicArchive/methodHandles/CDSMHTest_generate.sh ! test/hotspot/jtreg/runtime/cds/appcds/dynamicArchive/methodHandles/MethodHandlesAsCollectorTest.java ! test/hotspot/jtreg/runtime/cds/appcds/dynamicArchive/methodHandles/MethodHandlesCastFailureTest.java ! test/hotspot/jtreg/runtime/cds/appcds/dynamicArchive/methodHandles/MethodHandlesGeneralTest.java ! test/hotspot/jtreg/runtime/cds/appcds/dynamicArchive/methodHandles/MethodHandlesInvokersTest.java ! test/hotspot/jtreg/runtime/cds/appcds/dynamicArchive/methodHandles/MethodHandlesPermuteArgumentsTest.java ! test/hotspot/jtreg/runtime/cds/appcds/dynamicArchive/methodHandles/MethodHandlesSpreadArgumentsTest.java ! test/hotspot/jtreg/runtime/cds/appcds/loaderConstraints/DynamicLoaderConstraintsTest.java Changeset: 1a681a43 Author: Magnus Ihse Bursie Date: 2020-06-12 20:28:07 +0000 URL: https://git.openjdk.java.net/zgc/commit/1a681a43 8200738: Use --hash-style=gnu for gcc Reviewed-by: erikj ! make/autoconf/flags-ldflags.m4 ! make/autoconf/spec.gmk.in ! make/autoconf/toolchain.m4 Changeset: be278bc5 Author: Joe Darcy Date: 2020-06-12 13:16:40 +0000 URL: https://git.openjdk.java.net/zgc/commit/be278bc5 8246222: Rename javac test T6395981.java to be more informative Reviewed-by: jjg - test/langtools/tools/javac/api/T6395981.java + test/langtools/tools/javac/api/TestGetSourceVersions.java Changeset: 892d9985 Author: Xin Liu Date: 2020-06-12 13:33:29 +0000 URL: https://git.openjdk.java.net/zgc/commit/892d9985 8139046: Compiler Control: IGVPrintLevel directive should set PrintIdealGraph Make !PrintIdealGraph a synonym for PrintIdealGraphLevel=-1 => print nothing Reviewed-by: simonis, phh, neliasso ! src/hotspot/share/compiler/compilerDefinitions.cpp ! src/hotspot/share/opto/c2_globals.hpp ! src/hotspot/share/opto/compile.cpp ! src/hotspot/share/opto/compile.hpp ! src/hotspot/share/opto/idealGraphPrinter.cpp ! src/hotspot/share/opto/idealGraphPrinter.hpp ! src/hotspot/share/opto/parse2.cpp Changeset: 8c90f4c0 Author: Daniel D. Daugherty Date: 2020-06-12 17:28:39 +0000 URL: https://git.openjdk.java.net/zgc/commit/8c90f4c0 8247495: ProblemList vmTestbase/nsk/jvmti/SetFieldAccessWatch/setfldw001/TestDescription.java Reviewed-by: cjplummer, minqi ! test/hotspot/jtreg/ProblemList-Xcomp.txt Changeset: bac2e7fc Author: Leonid Mesnik Date: 2020-06-12 14:33:55 +0000 URL: https://git.openjdk.java.net/zgc/commit/bac2e7fc 8242328: Update mentions of ThreadMBean to ThreadMXBean Reviewed-by: dholmes, iignatyev, sspitsyn ! src/hotspot/share/classfile/vmSymbols.hpp ! src/hotspot/share/compiler/compileBroker.cpp ! src/java.management/share/classes/sun/management/HotspotThreadMBean.java ! src/jdk.management.agent/share/conf/management.properties ! src/jdk.management/share/native/libmanagement_ext/GarbageCollectorExtImpl.c ! src/jdk.management/share/native/libmanagement_ext/GcInfoBuilder.c ! test/hotspot/jtreg/vmTestbase/nsk/monitoring/CompilationMXBean/comptimemon001/comptimemon001.java ! test/hotspot/jtreg/vmTestbase/nsk/monitoring/CompilationMXBean/comptimemon002/TestDescription.java ! test/hotspot/jtreg/vmTestbase/nsk/monitoring/CompilationMXBean/comptimemon003/TestDescription.java ! test/hotspot/jtreg/vmTestbase/nsk/monitoring/CompilationMXBean/comptimemon004/TestDescription.java ! test/hotspot/jtreg/vmTestbase/nsk/monitoring/CompilationMXBean/comptimemon005/TestDescription.java ! test/jdk/sun/management/jmxremote/bootstrap/rmiregistry.properties ! test/jdk/sun/management/jmxremote/bootstrap/rmiregistryssl.properties Changeset: 1faed205 Author: Xue-Lei Andrew Fan Date: 2020-06-12 15:55:08 +0000 URL: https://git.openjdk.java.net/zgc/commit/1faed205 8247510: typo in IllegalHandshakeMessage Reviewed-by: wetmore ! test/jdk/javax/net/ssl/SSLEngine/IllegalHandshakeMessage.java Changeset: 19c5bfe4 Author: Jan Lahoda Date: 2020-06-12 13:38:06 +0000 URL: https://git.openjdk.java.net/zgc/commit/19c5bfe4 8247334: Trees.getScope crashes for annotated local records Reviewed-by: vromero ! src/jdk.compiler/share/classes/com/sun/tools/javac/comp/TypeEnter.java ! test/langtools/tools/javac/api/TestGetScopeResult.java Changeset: 4bc69f42 Author: Andy Herrick Date: 2020-06-12 11:24:09 +0000 URL: https://git.openjdk.java.net/zgc/commit/4bc69f42 8247418: Only validate the certificates trust if using the default key user name Reviewed-by: asemenyuk, almatvee ! test/jdk/tools/jpackage/macosx/base/SigningCheck.java Changeset: eeb3c5e9 Author: Daniel D. Daugherty Date: 2020-06-12 12:06:24 +0000 URL: https://git.openjdk.java.net/zgc/commit/eeb3c5e9 8247492: ProblemList tools/jlink/plugins/CompressorPluginTest.java Reviewed-by: jlaskey ! test/jdk/ProblemList.txt Changeset: 7b988b31 Author: Phil Race Date: 2020-06-12 09:31:08 +0000 URL: https://git.openjdk.java.net/zgc/commit/7b988b31 8240654: ZGC can cause severe UI application repaint issues Reviewed-by: serb, jdv, stefank, kcr ! src/java.desktop/windows/native/libawt/java2d/windows/GDIBlitLoops.cpp ! src/java.desktop/windows/native/libawt/windows/awt_Cursor.cpp ! src/java.desktop/windows/native/libawt/windows/awt_PrintJob.cpp ! src/java.desktop/windows/native/libawt/windows/awt_TrayIcon.cpp + test/jdk/java/awt/Graphics2D/LargeWindowPaintTest.java + test/jdk/java/awt/print/PrinterJob/AlphaPrintTest.java Changeset: e68f81ab Author: Daniel D. Daugherty Date: 2020-06-12 17:28:39 +0000 URL: https://git.openjdk.java.net/zgc/commit/e68f81ab 8247495: ProblemList vmTestbase/nsk/jvmti/SetFieldAccessWatch/setfldw001/TestDescription.java Reviewed-by: cjplummer, minqi ! test/hotspot/jtreg/ProblemList-Xcomp.txt Changeset: 241f4018 Author: Vladimir Kozlov Date: 2020-06-12 14:33:20 +0000 URL: https://git.openjdk.java.net/zgc/commit/241f4018 8247350: [aarch64] assert(false) failed: wrong size of mach node Use movptr() to load address of string Reviewed-by: adinn, azeemj ! src/hotspot/cpu/aarch64/macroAssembler_aarch64.cpp ! src/hotspot/share/opto/output.cpp Changeset: af83d6ab Author: Jesper Wilhelmsson Date: 2020-06-13 01:00:00 +0000 URL: https://git.openjdk.java.net/zgc/commit/af83d6ab Merge Changeset: c82c50b2 Author: Ioi Lam Date: 2020-06-14 01:19:48 +0000 URL: https://git.openjdk.java.net/zgc/commit/c82c50b2 8245925: G1 allocates EDEN region after CDS has executed GC Reviewed-by: jiangli, minqi, tschatzl ! src/hotspot/share/gc/g1/g1HeapVerifier.cpp ! src/hotspot/share/gc/shared/collectedHeap.cpp ! src/hotspot/share/memory/heapShared.cpp ! src/hotspot/share/memory/heapShared.hpp ! src/hotspot/share/memory/metaspaceShared.cpp ! test/hotspot/jtreg/runtime/cds/appcds/javaldr/GCDuringDump.java ! test/hotspot/jtreg/runtime/cds/appcds/javaldr/GCDuringDumpTransformer.java Changeset: 0f7b18a9 Author: David Holmes Date: 2020-06-14 17:43:54 +0000 URL: https://git.openjdk.java.net/zgc/commit/0f7b18a9 8231560: Remove expired flags in JDK 16 Reviewed-by: kvn, iklam, iignatyev, eosterlund ! src/hotspot/share/runtime/arguments.cpp Changeset: 2536cbf2 Author: Weijun Wang Date: 2020-06-13 17:49:15 +0000 URL: https://git.openjdk.java.net/zgc/commit/2536cbf2 8245679: KeyStore cannot probe PKCS12 keystore if BouncyCastle is the top security provider Reviewed-by: mullan ! src/java.base/share/classes/java/security/KeyStore.java ! src/java.base/share/classes/sun/security/provider/JavaKeyStore.java + test/jdk/java/security/KeyStore/OneProbeOneNot.java Changeset: faaf52cc Author: Ao Qi Date: 2020-06-13 18:59:44 +0000 URL: https://git.openjdk.java.net/zgc/commit/faaf52cc 8247388: Minimal build broken after JDK-8240245 (undefined reference to `MetaspaceShared::_use_optimized_module_handling') Reviewed-by: iklam, coleenp, dholmes ! src/hotspot/share/runtime/arguments.cpp Changeset: bc73f123 Author: Aleksey Shipilev Date: 2020-06-14 18:16:31 +0000 URL: https://git.openjdk.java.net/zgc/commit/bc73f123 8247474: Shenandoah: Windows build warning after JDK-8247310 Reviewed-by: rkennke ! src/hotspot/share/gc/shenandoah/shenandoahPacer.cpp ! src/hotspot/share/gc/shenandoah/shenandoahPacer.hpp Changeset: 76879aa9 Author: Jesper Wilhelmsson Date: 2020-06-15 02:40:51 +0000 URL: https://git.openjdk.java.net/zgc/commit/76879aa9 Merge ! src/hotspot/share/gc/shenandoah/shenandoahPacer.cpp ! src/hotspot/share/runtime/arguments.cpp ! src/hotspot/share/gc/shenandoah/shenandoahPacer.cpp ! src/hotspot/share/runtime/arguments.cpp Changeset: 3752a81e Author: Yang Zhang Date: 2020-06-15 06:05:17 +0000 URL: https://git.openjdk.java.net/zgc/commit/3752a81e 8244926: Add absolute check for int/long to generate Abs nodes Reviewed-by: neliasso, thartmann ! src/hotspot/share/opto/cfgnode.cpp Changeset: 3341d361 Author: Matthias Baesken Date: 2020-06-12 16:40:47 +0000 URL: https://git.openjdk.java.net/zgc/commit/3341d361 8247469: getSystemCpuLoad() returns -1 on linux when some offline cpus are present and cpusets.effective_cpus is not available Reviewed-by: bobv, dtitov ! src/jdk.management/aix/native/libmanagement_ext/UnixOperatingSystem.c ! src/jdk.management/linux/native/libmanagement_ext/UnixOperatingSystem.c ! src/jdk.management/macosx/native/libmanagement_ext/UnixOperatingSystem.c ! src/jdk.management/unix/classes/com/sun/management/internal/OperatingSystemImpl.java Changeset: 08df6a1f Author: Christian Hagedorn Date: 2020-06-15 09:50:11 +0000 URL: https://git.openjdk.java.net/zgc/commit/08df6a1f 8246203: Segmentation fault in verification due to stack overflow with -XX:+VerifyIterativeGVN Replace the recursive verification algorithm with an iterative one to avoid a stack overflow for large graphs. Reviewed-by: kvn, thartmann ! src/hotspot/share/opto/node.cpp ! src/hotspot/share/opto/node.hpp ! src/hotspot/share/opto/phaseX.cpp + test/hotspot/jtreg/compiler/loopopts/TestDeepGraphVerifyIterativeGVN.java Changeset: ab57f7d6 Author: Erik Helin Date: 2020-06-15 12:28:27 +0000 URL: https://git.openjdk.java.net/zgc/commit/ab57f7d6 8193686: Allow --with-jtreg to accept a zip compressed jtreg image Reviewed-by: ihse ! make/autoconf/toolchain.m4 Changeset: 38f9a938 Author: Rahul Yadav Date: 2020-06-15 16:26:31 +0000 URL: https://git.openjdk.java.net/zgc/commit/38f9a938 8245307: Update ExchangeImpl to use thread safe DateTimeFormatter The fix updates sun.net.httpserver.ExchangeImpl to use thread safe DateTimeFormatter for response headers, this replaces DateFormat that was using ThreadLocal. Reviewed-by: dfuchs, alanb, chegar ! src/jdk.httpserver/share/classes/sun/net/httpserver/ExchangeImpl.java + test/jdk/com/sun/net/httpserver/DateFormatterTest.java Changeset: 23e2f279 Author: Naoto Sato Date: 2020-06-15 09:21:39 +0000 URL: https://git.openjdk.java.net/zgc/commit/23e2f279 8246623: Remove minimum 4 digit requirement from Year.parse() Reviewed-by: lancea, rriggs, joehw ! src/java.base/share/classes/java/time/Year.java ! test/jdk/java/time/tck/java/time/TCKYear.java Changeset: 0be5b7d6 Author: David Holmes Date: 2020-06-15 18:35:46 +0000 URL: https://git.openjdk.java.net/zgc/commit/0be5b7d6 8247289: Obsolete unused UseBsdPosixThreadCPUClocks 8247292: Obsolete unused UseOprofile flag on BSD Co-authored-by: Christoph Dreis Reviewed-by: hseigel, dcubed ! src/hotspot/os/bsd/globals_bsd.hpp ! src/hotspot/os/bsd/os_bsd.cpp ! src/hotspot/share/runtime/arguments.cpp Changeset: c1cd3893 Author: Kim Barrett Date: 2020-06-15 21:14:52 +0000 URL: https://git.openjdk.java.net/zgc/commit/c1cd3893 8247524: Remove unnecessary volatile qualifiers from member functions Remove qualifiers for oopDesc and metadata-related member functions. Reviewed-by: stefank, dholmes, stuefe, coleenp ! src/hotspot/share/memory/binaryTreeDictionary.hpp ! src/hotspot/share/memory/metaspace/metabase.hpp ! src/hotspot/share/oops/constantPool.hpp ! src/hotspot/share/oops/klass.hpp ! src/hotspot/share/oops/metadata.hpp ! src/hotspot/share/oops/method.hpp ! src/hotspot/share/oops/methodCounters.hpp ! src/hotspot/share/oops/methodData.hpp ! src/hotspot/share/oops/oop.hpp ! src/hotspot/share/oops/oop.inline.hpp Changeset: e3b04bc1 Author: Aleksey Shipilev Date: 2020-06-15 14:11:43 +0000 URL: https://git.openjdk.java.net/zgc/commit/e3b04bc1 8247560: Shenandoah: heap iteration holds root locks all the time Reviewed-by: zgu ! src/hotspot/share/gc/shenandoah/shenandoahHeap.cpp Changeset: ca85c5ab Author: Jie Fu Committer: Jie Fu Date: 2020-06-13 23:10:26 +0000 URL: https://git.openjdk.java.net/zgc/commit/ca85c5ab 8247522: assert(is_aligned(class_space_rs.base(), class_space_alignment)) failed: Sanity Co-authored-by: Thomas Stuefe Reviewed-by: stuefe, iklam ! src/hotspot/share/memory/metaspaceShared.cpp ! test/hotspot/jtreg/runtime/cds/SharedBaseAddress.java ! test/hotspot/jtreg/runtime/cds/appcds/SharedBaseAddress.java Changeset: fd7123b2 Author: Jie Fu Date: 2020-06-13 14:29:08 +0000 URL: https://git.openjdk.java.net/zgc/commit/fd7123b2 8247463: java/nio/channels/etc/OpenAndConnect.java fails due to IPv6 not available Reviewed-by: dfuchs, alanb ! test/jdk/java/nio/channels/etc/OpenAndConnect.java Changeset: b71dac25 Author: Aleksey Shipilev Date: 2020-06-15 16:16:48 +0000 URL: https://git.openjdk.java.net/zgc/commit/b71dac25 8247575: serviceability/dcmd/gc/HeapDumpCompressedTest unlocks experimental options for Shenandoah and Z Reviewed-by: tschatzl, stefank ! test/hotspot/jtreg/serviceability/dcmd/gc/HeapDumpCompressedTest.java Changeset: 6c3c3dad Author: Roger Riggs Date: 2020-06-15 11:57:33 +0000 URL: https://git.openjdk.java.net/zgc/commit/6c3c3dad 8247521: (test) jdk/test/lib/hexdump/HexPrinterTest.java fails on windows Reviewed-by: iignatyev, joehw ! test/lib-test/jdk/test/lib/hexdump/HexPrinterTest.java Changeset: 6cdf06f0 Author: Daniil Titov Date: 2020-06-15 09:03:45 +0000 URL: https://git.openjdk.java.net/zgc/commit/6cdf06f0 8246196: javax/management/MBeanServer/OldMBeanServerTest fails with AssertionError Reviewed-by: amenkov, dholmes, sspitsyn ! test/jdk/javax/management/MBeanServer/OldMBeanServerTest.java Changeset: 898c638b Author: Markus Gr?nlund Date: 2020-06-15 21:52:25 +0000 URL: https://git.openjdk.java.net/zgc/commit/898c638b 8247530: JfrCheckpointManager failed "assert(!SafepointSynchronize::is_at_safepoint()) failed: invariant" Reviewed-by: egahlin ! src/hotspot/share/jfr/recorder/checkpoint/jfrCheckpointManager.cpp Changeset: c55b06a4 Author: Jonathan Gibbons Date: 2020-06-15 16:05:47 +0000 URL: https://git.openjdk.java.net/zgc/commit/c55b06a4 8247382: doclint errors (missing comments) in jdk.compiler and jdk.javadoc Reviewed-by: darcy ! src/jdk.compiler/share/classes/com/sun/tools/javac/Main.java ! src/jdk.javadoc/share/classes/jdk/javadoc/doclet/DocletEnvironment.java ! src/jdk.javadoc/share/classes/jdk/javadoc/doclet/StandardDoclet.java Changeset: f968f327 Author: Valerie Peng Date: 2020-06-15 23:30:49 +0000 URL: https://git.openjdk.java.net/zgc/commit/f968f327 8246077: Cloneable test in HmacCore seems questionable Updated java.security.MessageDigest and Signature classes to return Cloneable obj for Cloneable spi obj Reviewed-by: weijun, xuelei, coffeys ! src/java.base/share/classes/com/sun/crypto/provider/HmacCore.java ! src/java.base/share/classes/java/security/MessageDigest.java ! src/java.base/share/classes/java/security/Signature.java ! src/java.base/share/classes/sun/security/provider/DigestBase.java + test/jdk/com/sun/crypto/provider/Mac/DigestCloneabilityTest.java + test/jdk/java/security/MessageDigest/TestCloneable.java + test/jdk/java/security/Signature/TestCloneable.java Changeset: 02cec347 Author: Dean Long Date: 2020-06-15 17:17:28 +0000 URL: https://git.openjdk.java.net/zgc/commit/02cec347 8236647: java/lang/invoke/CallSiteTest.java failed with InvocationTargetException in Graal mode Reviewed-by: kvn ! src/jdk.internal.vm.ci/share/classes/jdk.vm.ci.hotspot/src/jdk/vm/ci/hotspot/HotSpotMethodHandleAccessProvider.java ! src/jdk.internal.vm.ci/share/classes/jdk.vm.ci.hotspot/src/jdk/vm/ci/hotspot/HotSpotObjectConstantImpl.java Changeset: e33ebc7f Author: Jesper Wilhelmsson Date: 2020-06-16 04:20:30 +0000 URL: https://git.openjdk.java.net/zgc/commit/e33ebc7f Merge ! src/hotspot/share/memory/metaspaceShared.cpp ! src/hotspot/share/memory/metaspaceShared.cpp Changeset: 0a108f9e Author: Tagir F. Valeev Date: 2020-06-16 03:16:41 +0000 URL: https://git.openjdk.java.net/zgc/commit/0a108f9e 8247605: Avoid array allocation when concatenating with empty string Reviewed-by: redestad, plevart ! src/java.base/share/classes/java/lang/StringConcatHelper.java ! test/micro/org/openjdk/bench/java/lang/StringConcat.java Changeset: 77bdc306 Author: Stefan Karlsson Date: 2020-06-16 09:37:53 +0000 URL: https://git.openjdk.java.net/zgc/commit/77bdc306 8247470: Fix CHeap GrowableArray NMT accounting Reviewed-by: coleenp, tschatzl, kbarrett ! src/hotspot/os/linux/os_linux.cpp ! src/hotspot/os/windows/os_windows.cpp ! src/hotspot/share/aot/aotLoader.cpp ! src/hotspot/share/ci/ciTypeFlow.cpp ! src/hotspot/share/classfile/classListParser.cpp ! src/hotspot/share/classfile/classLoader.cpp ! src/hotspot/share/classfile/classLoaderData.cpp ! src/hotspot/share/classfile/classLoaderExt.cpp ! src/hotspot/share/classfile/compactHashtable.cpp ! src/hotspot/share/classfile/javaClasses.cpp ! src/hotspot/share/classfile/moduleEntry.cpp ! src/hotspot/share/classfile/packageEntry.cpp ! src/hotspot/share/classfile/stringTable.cpp ! src/hotspot/share/classfile/systemDictionaryShared.cpp ! src/hotspot/share/code/codeCache.cpp ! src/hotspot/share/compiler/compilerEvent.cpp ! src/hotspot/share/compiler/disassembler.cpp ! src/hotspot/share/gc/g1/g1Allocator.hpp ! src/hotspot/share/gc/g1/g1FullGCCompactionPoint.cpp ! src/hotspot/share/gc/g1/g1SurvivorRegions.cpp ! src/hotspot/share/gc/parallel/mutableNUMASpace.cpp ! src/hotspot/share/gc/parallel/psCompactionManager.cpp ! src/hotspot/share/gc/shared/gcTimer.cpp ! src/hotspot/share/interpreter/interpreterRuntime.cpp ! src/hotspot/share/jfr/jni/jfrJavaSupport.cpp ! src/hotspot/share/jfr/leakprofiler/checkpoint/objectSampleCheckpoint.cpp ! src/hotspot/share/jfr/periodic/jfrNetworkUtilization.cpp ! src/hotspot/share/jfr/recorder/checkpoint/types/jfrThreadGroup.cpp ! src/hotspot/share/jfr/recorder/checkpoint/types/jfrTypeSetUtils.cpp ! src/hotspot/share/jfr/recorder/jfrRecorder.cpp ! src/hotspot/share/jfr/recorder/repository/jfrEmergencyDump.cpp ! src/hotspot/share/jfr/recorder/service/jfrOptionSet.cpp ! src/hotspot/share/jfr/support/jfrJdkJfrEvent.cpp ! src/hotspot/share/jfr/support/jfrKlassUnloading.cpp ! src/hotspot/share/memory/allocation.hpp ! src/hotspot/share/memory/dynamicArchive.cpp ! src/hotspot/share/memory/filemap.cpp ! src/hotspot/share/memory/heapInspection.cpp ! src/hotspot/share/memory/heapShared.cpp ! src/hotspot/share/memory/metaspaceShared.cpp ! src/hotspot/share/oops/methodData.cpp ! src/hotspot/share/opto/macro.cpp ! src/hotspot/share/prims/jvmtiCodeBlobEvents.cpp ! src/hotspot/share/prims/jvmtiEnv.cpp ! src/hotspot/share/prims/jvmtiEnvBase.cpp ! src/hotspot/share/prims/jvmtiEnvThreadState.cpp ! src/hotspot/share/prims/jvmtiExport.cpp ! src/hotspot/share/prims/jvmtiExtensions.cpp ! src/hotspot/share/prims/jvmtiImpl.cpp ! src/hotspot/share/prims/jvmtiRawMonitor.cpp ! src/hotspot/share/prims/jvmtiTagMap.cpp ! src/hotspot/share/runtime/arguments.cpp ! src/hotspot/share/runtime/biasedLocking.cpp ! src/hotspot/share/runtime/flags/jvmFlagConstraintList.cpp ! src/hotspot/share/runtime/flags/jvmFlagRangeList.cpp ! src/hotspot/share/runtime/perfData.cpp ! src/hotspot/share/runtime/reflectionUtils.cpp ! src/hotspot/share/runtime/thread.cpp ! src/hotspot/share/runtime/unhandledOops.cpp ! src/hotspot/share/runtime/vframe_hp.cpp ! src/hotspot/share/services/diagnosticArgument.cpp ! src/hotspot/share/services/heapDumper.cpp ! src/hotspot/share/services/memoryService.cpp ! src/hotspot/share/services/threadService.cpp ! src/hotspot/share/utilities/growableArray.hpp ! src/hotspot/share/utilities/hashtable.inline.hpp ! src/hotspot/share/utilities/histogram.cpp Changeset: 9e4b9e91 Author: Magnus Ihse Bursie Date: 2020-06-16 14:22:15 +0000 URL: https://git.openjdk.java.net/zgc/commit/9e4b9e91 8201575: Allow numbers in VERSION_PRE according to JEP 223 Reviewed-by: erikj ! make/autoconf/jdk-version.m4 Changeset: a5120993 Author: Rahul Yadav Date: 2020-06-16 13:15:42 +0000 URL: https://git.openjdk.java.net/zgc/commit/a5120993 8247675: Update DateFormatterTest Copyright The fix updates the test DateFormatterTest copyright by adding missing comma Reviewed-by: dfuchs, chegar ! test/jdk/com/sun/net/httpserver/DateFormatterTest.java Changeset: 3839c865 Author: Patric Hedlin Date: 2020-06-04 10:17:40 +0000 URL: https://git.openjdk.java.net/zgc/commit/3839c865 8247200: assert((unsigned)fpargs < 32) Reviewed-by: aph, neliasso ! src/hotspot/cpu/aarch64/sharedRuntime_aarch64.cpp Changeset: 3e5abdaf Author: Jonathan Gibbons Date: 2020-06-16 14:27:16 +0000 URL: https://git.openjdk.java.net/zgc/commit/3e5abdaf 8152313: [javadoc] convert tool tests to doclet tests Reviewed-by: ksrini ! test/langtools/ProblemList.txt + test/langtools/jdk/javadoc/lib/javadoc/tester/TestDoclet.java + test/langtools/jdk/javadoc/tool/enum/docComments/EnumCommentTest.java - test/langtools/jdk/javadoc/tool/enum/docComments/Main.java ! test/langtools/jdk/javadoc/tool/enum/docComments/pkg1/Operation.java + test/langtools/jdk/javadoc/tool/enum/enumType/EnumContentsTest.java - test/langtools/jdk/javadoc/tool/enum/enumType/Main.java ! test/langtools/jdk/javadoc/tool/enum/enumType/expected.out - test/langtools/jdk/javadoc/tool/varArgs/Main.java + test/langtools/jdk/javadoc/tool/varArgs/VarArgsTest.java ! test/langtools/jdk/javadoc/tool/varArgs/expected.out Changeset: bf300e8d Author: Nils Eliasson Date: 2020-06-16 11:15:43 +0000 URL: https://git.openjdk.java.net/zgc/commit/bf300e8d 8247421: ReturnBlobToWrongHeapTest.java failed allocating blob Reviewed-by: kvn ! test/hotspot/jtreg/compiler/codecache/stress/ReturnBlobToWrongHeapTest.java Changeset: e5d33163 Author: Markus Gr?nlund Date: 2020-06-16 16:33:45 +0000 URL: https://git.openjdk.java.net/zgc/commit/e5d33163 8247660: 12 Uninitialised variable in 1 files Reviewed-by: egahlin ! src/hotspot/share/jfr/utilities/jfrConcurrentLinkedListHost.inline.hpp Changeset: 5073b8c1 Author: Yumin Qi Date: 2020-06-16 08:03:40 +0000 URL: https://git.openjdk.java.net/zgc/commit/5073b8c1 8247528: runtime/cds/appcds/jigsaw/modulepath/OptimizeModuleHandlingTest.java failing with Graal OptimizeModuleHandlingTest.java should be disabled for jvmci since jvmci will set jdk.module.addmods.0=jdk.internal.vm.ci which lead to optimization disabled. Reviewed-by: dcubed ! test/hotspot/jtreg/runtime/cds/appcds/jigsaw/modulepath/OptimizeModuleHandlingTest.java Changeset: e7f8e1fd Author: Igor Ignatyev Date: 2020-06-16 09:50:45 +0000 URL: https://git.openjdk.java.net/zgc/commit/e7f8e1fd 8211977: move testlibrary tests into one place Reviewed-by: erikj, dholmes, ihse ! make/Main.gmk ! make/RunTests.gmk ! make/common/FindTests.gmk ! make/test/JtregNativeHotspot.gmk + make/test/JtregNativeLibTest.gmk ! test/hotspot/jtreg/TEST.groups ! test/hotspot/jtreg/testlibrary/jvmti/libSimpleClassFileLoadHook.c - test/hotspot/jtreg/testlibrary_tests/AssertsTest.java - test/hotspot/jtreg/testlibrary_tests/OutputAnalyzerReportingTest.java - test/hotspot/jtreg/testlibrary_tests/OutputAnalyzerTest.java = test/hotspot/jtreg/testlibrary_tests/jvmti/SimpleClassFileLoadHookTest.java - test/hotspot/jtreg/testlibrary_tests/process/Test.java - test/hotspot/jtreg/testlibrary_tests/process/TestNativeProcessBuilder.java - test/hotspot/jtreg/testlibrary_tests/process/exejvm-test-launcher.c - test/jdk/lib/testlibrary/OutputAnalyzerTest.java + test/lib-test/ProblemList.txt = test/lib-test/RedefineClassTest.java ! test/lib-test/TEST.ROOT + test/lib-test/TEST.groups = test/lib-test/jdk/test/lib/AssertsTest.java = test/lib-test/jdk/test/lib/RandomGeneratorTest.java = test/lib-test/jdk/test/lib/TestMutuallyExclusivePlatformPredicates.java = test/lib-test/jdk/test/lib/TestPlatformIsTieredSupported.java ! test/lib-test/jdk/test/lib/apps/LingeredAppTest.java = test/lib-test/jdk/test/lib/process/OutputAnalyzerReportingTest.java + test/lib-test/jdk/test/lib/process/OutputAnalyzerTest.java + test/lib-test/jdk/test/lib/process/TestNativeProcessBuilder.java + test/lib-test/jdk/test/lib/process/exejvm-test-launcher.c = test/lib-test/sun/hotspot/whitebox/BlobSanityTest.java = test/lib-test/sun/hotspot/whitebox/CPUInfoTest.java = test/lib-test/sun/hotspot/whitebox/vm_flags/BooleanTest.java = test/lib-test/sun/hotspot/whitebox/vm_flags/DoubleTest.java = test/lib-test/sun/hotspot/whitebox/vm_flags/IntxTest.java = test/lib-test/sun/hotspot/whitebox/vm_flags/SizeTTest.java = test/lib-test/sun/hotspot/whitebox/vm_flags/StringTest.java = test/lib-test/sun/hotspot/whitebox/vm_flags/Uint64Test.java = test/lib-test/sun/hotspot/whitebox/vm_flags/UintxTest.java = test/lib-test/sun/hotspot/whitebox/vm_flags/VmFlagTest.java Changeset: dee90e47 Author: Vicente Romero Date: 2020-06-16 17:25:02 +0000 URL: https://git.openjdk.java.net/zgc/commit/dee90e47 8246098: API for Class::permittedSubclasses should clarify if returned elements are ordered or not Reviewed-by: chegar ! src/java.base/share/classes/java/lang/Class.java Changeset: a27ee6b2 Author: Jonathan Gibbons Date: 2020-06-16 14:42:06 +0000 URL: https://git.openjdk.java.net/zgc/commit/a27ee6b2 8236539: Relative link tags in record javadoc don't resolve Reviewed-by: hannesw ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/AbstractIndexWriter.java + test/langtools/jdk/javadoc/doclet/testRecordLinks/TestRecordLinks.java Changeset: 3237e82b Author: Calvin Cheung Date: 2020-06-16 22:05:09 +0000 URL: https://git.openjdk.java.net/zgc/commit/3237e82b 8247526: [TESTBUG] runtime/cds/appcds/dynamicArchive tests failing with Graal Adjusted the "shouldMatch" statement and increased the timeout of some tests. Reviewed-by: iklam ! test/hotspot/jtreg/runtime/cds/appcds/dynamicArchive/LambdaForClassInBaseArchive.java ! test/hotspot/jtreg/runtime/cds/appcds/dynamicArchive/NestTest.java ! test/hotspot/jtreg/runtime/cds/appcds/dynamicArchive/StaticInnerTest.java ! test/hotspot/jtreg/runtime/cds/appcds/dynamicArchive/methodHandles/CDSMHTest_generate.sh ! test/hotspot/jtreg/runtime/cds/appcds/dynamicArchive/methodHandles/MethodHandlesAsCollectorTest.java ! test/hotspot/jtreg/runtime/cds/appcds/dynamicArchive/methodHandles/MethodHandlesCastFailureTest.java ! test/hotspot/jtreg/runtime/cds/appcds/dynamicArchive/methodHandles/MethodHandlesGeneralTest.java ! test/hotspot/jtreg/runtime/cds/appcds/dynamicArchive/methodHandles/MethodHandlesInvokersTest.java ! test/hotspot/jtreg/runtime/cds/appcds/dynamicArchive/methodHandles/MethodHandlesPermuteArgumentsTest.java ! test/hotspot/jtreg/runtime/cds/appcds/dynamicArchive/methodHandles/MethodHandlesSpreadArgumentsTest.java Changeset: 6d2959b3 Author: Jesper Wilhelmsson Date: 2020-06-17 05:28:05 +0000 URL: https://git.openjdk.java.net/zgc/commit/6d2959b3 Merge ! test/hotspot/jtreg/runtime/cds/appcds/dynamicArchive/methodHandles/CDSMHTest_generate.sh ! test/hotspot/jtreg/runtime/cds/appcds/dynamicArchive/methodHandles/MethodHandlesAsCollectorTest.java ! test/hotspot/jtreg/runtime/cds/appcds/dynamicArchive/methodHandles/MethodHandlesCastFailureTest.java ! test/hotspot/jtreg/runtime/cds/appcds/dynamicArchive/methodHandles/MethodHandlesGeneralTest.java ! test/hotspot/jtreg/runtime/cds/appcds/dynamicArchive/methodHandles/MethodHandlesInvokersTest.java ! test/hotspot/jtreg/runtime/cds/appcds/dynamicArchive/methodHandles/MethodHandlesPermuteArgumentsTest.java ! test/hotspot/jtreg/runtime/cds/appcds/dynamicArchive/methodHandles/MethodHandlesSpreadArgumentsTest.java ! test/hotspot/jtreg/runtime/cds/appcds/dynamicArchive/methodHandles/CDSMHTest_generate.sh ! test/hotspot/jtreg/runtime/cds/appcds/dynamicArchive/methodHandles/MethodHandlesAsCollectorTest.java ! test/hotspot/jtreg/runtime/cds/appcds/dynamicArchive/methodHandles/MethodHandlesCastFailureTest.java ! test/hotspot/jtreg/runtime/cds/appcds/dynamicArchive/methodHandles/MethodHandlesGeneralTest.java ! test/hotspot/jtreg/runtime/cds/appcds/dynamicArchive/methodHandles/MethodHandlesInvokersTest.java ! test/hotspot/jtreg/runtime/cds/appcds/dynamicArchive/methodHandles/MethodHandlesPermuteArgumentsTest.java ! test/hotspot/jtreg/runtime/cds/appcds/dynamicArchive/methodHandles/MethodHandlesSpreadArgumentsTest.java Changeset: fdf721a8 Author: Per Liden Date: 2020-06-17 11:25:59 +0000 URL: https://git.openjdk.java.net/zgc/commit/fdf721a8 Merge Changeset: ac535739 Author: Per Liden Date: 2020-06-17 11:26:34 +0000 URL: https://git.openjdk.java.net/zgc/commit/ac535739 ZGC: Relax jcheck config ! .jcheck/conf Changeset: f300daff Author: Erik ?sterlund Committer: Per Liden Date: 2020-06-17 11:26:41 +0000 URL: https://git.openjdk.java.net/zgc/commit/f300daff ZGC: Mechanism to opt out from safepoint coalescing ! src/hotspot/share/runtime/vmOperations.hpp ! src/hotspot/share/runtime/vmThread.cpp Changeset: 3496c9b1 Author: Erik ?sterlund Committer: Per Liden Date: 2020-06-17 11:26:52 +0000 URL: https://git.openjdk.java.net/zgc/commit/3496c9b1 ZGC: Remove hotness counter sampling from safepoint cleanup ! src/hotspot/share/runtime/safepoint.cpp ! src/hotspot/share/runtime/sweeper.cpp ! src/hotspot/share/runtime/sweeper.hpp Changeset: c6c72fc1 Author: Erik ?sterlund Committer: Per Liden Date: 2020-06-17 11:27:05 +0000 URL: https://git.openjdk.java.net/zgc/commit/c6c72fc1 ZGC: Concurrent execution stack processing ! src/hotspot/cpu/aarch64/aarch64.ad ! src/hotspot/cpu/aarch64/c1_CodeStubs_aarch64.cpp ! src/hotspot/cpu/aarch64/c1_LIRAssembler_aarch64.cpp + src/hotspot/cpu/aarch64/c2_safepointPollStubTable_aarch64.cpp + src/hotspot/cpu/aarch64/c2_safepointPollStubTable_aarch64.hpp ! src/hotspot/cpu/aarch64/frame_aarch64.cpp ! src/hotspot/cpu/aarch64/interp_masm_aarch64.cpp ! src/hotspot/cpu/aarch64/macroAssembler_aarch64.cpp ! src/hotspot/cpu/aarch64/macroAssembler_aarch64.hpp ! src/hotspot/cpu/aarch64/sharedRuntime_aarch64.cpp ! src/hotspot/cpu/aarch64/templateInterpreterGenerator_aarch64.cpp ! src/hotspot/cpu/aarch64/vm_version_aarch64.hpp ! src/hotspot/cpu/arm/c1_CodeStubs_arm.cpp ! src/hotspot/cpu/arm/c1_LIRAssembler_arm.cpp + src/hotspot/cpu/arm/c2_safepointPollStubTable_arm.hpp ! src/hotspot/cpu/arm/interp_masm_arm.cpp ! src/hotspot/cpu/arm/macroAssembler_arm.cpp ! src/hotspot/cpu/ppc/c1_CodeStubs_ppc.cpp ! src/hotspot/cpu/ppc/c1_LIRAssembler_ppc.cpp + src/hotspot/cpu/ppc/c2_safepointPollStubTable_ppc.hpp ! src/hotspot/cpu/ppc/interp_masm_ppc_64.cpp ! src/hotspot/cpu/ppc/macroAssembler_ppc.cpp ! src/hotspot/cpu/ppc/templateTable_ppc_64.cpp ! src/hotspot/cpu/s390/c1_CodeStubs_s390.cpp ! src/hotspot/cpu/s390/c1_LIRAssembler_s390.cpp + src/hotspot/cpu/s390/c2_safepointPollStubTable_s390.hpp ! src/hotspot/cpu/s390/interp_masm_s390.cpp ! src/hotspot/cpu/s390/macroAssembler_s390.cpp ! src/hotspot/cpu/s390/templateTable_s390.cpp ! src/hotspot/cpu/x86/c1_CodeStubs_x86.cpp ! src/hotspot/cpu/x86/c1_LIRAssembler_x86.cpp + src/hotspot/cpu/x86/c2_safepointPollStubTable_x86.cpp + src/hotspot/cpu/x86/c2_safepointPollStubTable_x86.hpp ! src/hotspot/cpu/x86/frame_x86.cpp ! src/hotspot/cpu/x86/interp_masm_x86.cpp ! src/hotspot/cpu/x86/macroAssembler_x86.cpp ! src/hotspot/cpu/x86/macroAssembler_x86.hpp ! src/hotspot/cpu/x86/sharedRuntime_x86_32.cpp ! src/hotspot/cpu/x86/sharedRuntime_x86_64.cpp ! src/hotspot/cpu/x86/templateInterpreterGenerator_x86.cpp ! src/hotspot/cpu/x86/templateInterpreterGenerator_x86_32.cpp ! src/hotspot/cpu/x86/templateInterpreterGenerator_x86_64.cpp ! src/hotspot/cpu/x86/templateTable_x86.cpp ! src/hotspot/cpu/x86/vm_version_x86.hpp ! src/hotspot/cpu/x86/x86_64.ad ! src/hotspot/cpu/zero/cppInterpreter_zero.cpp ! src/hotspot/share/c1/c1_CodeStubs.hpp ! src/hotspot/share/c1/c1_LIR.cpp ! src/hotspot/share/c1/c1_LIR.hpp ! src/hotspot/share/c1/c1_LIRAssembler.cpp ! src/hotspot/share/c1/c1_LIRAssembler.hpp ! src/hotspot/share/c1/c1_LinearScan.cpp ! src/hotspot/share/c1/c1_Runtime1.cpp ! src/hotspot/share/compiler/oopMap.cpp ! src/hotspot/share/compiler/oopMap.hpp ! src/hotspot/share/gc/parallel/psParallelCompact.cpp ! src/hotspot/share/gc/parallel/psScavenge.cpp ! src/hotspot/share/gc/shared/gcUtil.cpp ! src/hotspot/share/gc/shared/gcUtil.hpp ! src/hotspot/share/gc/shared/threadLocalAllocBuffer.cpp ! src/hotspot/share/gc/shenandoah/shenandoahRootProcessor.inline.hpp ! src/hotspot/share/gc/z/zBarrier.cpp ! src/hotspot/share/gc/z/zBarrier.hpp ! src/hotspot/share/gc/z/zBarrier.inline.hpp ! src/hotspot/share/gc/z/zBarrierSet.cpp ! src/hotspot/share/gc/z/zDriver.cpp ! src/hotspot/share/gc/z/zHeapIterator.cpp ! src/hotspot/share/gc/z/zHeapIterator.hpp ! src/hotspot/share/gc/z/zMark.cpp ! src/hotspot/share/gc/z/zNMethod.cpp ! src/hotspot/share/gc/z/zNMethod.hpp ! src/hotspot/share/gc/z/zObjectAllocator.cpp ! src/hotspot/share/gc/z/zRelocate.cpp ! src/hotspot/share/gc/z/zRootsIterator.cpp ! src/hotspot/share/gc/z/zRootsIterator.hpp + src/hotspot/share/gc/z/zStackWatermark.cpp + src/hotspot/share/gc/z/zStackWatermark.hpp ! src/hotspot/share/gc/z/zThreadLocalAllocBuffer.cpp ! src/hotspot/share/gc/z/zThreadLocalAllocBuffer.hpp ! src/hotspot/share/gc/z/zVerify.cpp ! src/hotspot/share/gc/z/zVerify.hpp ! src/hotspot/share/interpreter/bytecodeInterpreter.cpp ! src/hotspot/share/interpreter/interpreterRuntime.cpp ! src/hotspot/share/interpreter/interpreterRuntime.hpp ! src/hotspot/share/jfr/leakprofiler/checkpoint/rootResolver.cpp ! src/hotspot/share/jfr/periodic/sampling/jfrCallTrace.cpp ! src/hotspot/share/jfr/periodic/sampling/jfrThreadSampler.cpp ! src/hotspot/share/jfr/recorder/stacktrace/jfrStackTrace.cpp ! src/hotspot/share/jvmci/jvmciCodeInstaller.cpp ! src/hotspot/share/jvmci/jvmciCompilerToVM.cpp ! src/hotspot/share/jvmci/vmStructs_jvmci.cpp ! src/hotspot/share/logging/logTag.hpp ! src/hotspot/share/opto/output.cpp ! src/hotspot/share/opto/output.hpp ! src/hotspot/share/opto/runtime.cpp + src/hotspot/share/opto/safepointPollStubTable.hpp ! src/hotspot/share/prims/forte.cpp ! src/hotspot/share/prims/jvmtiEventController.cpp ! src/hotspot/share/prims/jvmtiTrace.cpp ! src/hotspot/share/prims/whitebox.cpp ! src/hotspot/share/runtime/abstract_vm_version.hpp ! src/hotspot/share/runtime/deoptimization.cpp ! src/hotspot/share/runtime/frame.cpp ! src/hotspot/share/runtime/frame.hpp ! src/hotspot/share/runtime/handshake.cpp ! src/hotspot/share/runtime/interfaceSupport.cpp ! src/hotspot/share/runtime/interfaceSupport.inline.hpp ! src/hotspot/share/runtime/mutexLocker.cpp ! src/hotspot/share/runtime/objectMonitor.cpp ! src/hotspot/share/runtime/objectMonitor.inline.hpp ! src/hotspot/share/runtime/registerMap.hpp ! src/hotspot/share/runtime/safepoint.cpp ! src/hotspot/share/runtime/safepointMechanism.cpp ! src/hotspot/share/runtime/safepointMechanism.hpp ! src/hotspot/share/runtime/safepointMechanism.inline.hpp ! src/hotspot/share/runtime/serviceThread.cpp ! src/hotspot/share/runtime/serviceThread.hpp ! src/hotspot/share/runtime/sharedRuntime.cpp + src/hotspot/share/runtime/stackWatermark.cpp + src/hotspot/share/runtime/stackWatermark.hpp + src/hotspot/share/runtime/stackWatermark.inline.hpp + src/hotspot/share/runtime/stackWatermarkSet.cpp + src/hotspot/share/runtime/stackWatermarkSet.hpp + src/hotspot/share/runtime/stackWatermarkSet.inline.hpp ! src/hotspot/share/runtime/sweeper.cpp ! src/hotspot/share/runtime/synchronizer.cpp ! src/hotspot/share/runtime/thread.cpp ! src/hotspot/share/runtime/thread.hpp ! src/hotspot/share/runtime/thread.inline.hpp ! src/hotspot/share/runtime/vframe.cpp ! src/hotspot/share/runtime/vframe.hpp ! src/hotspot/share/runtime/vframe.inline.hpp ! src/hotspot/share/runtime/vmOperations.cpp ! src/hotspot/share/runtime/vmOperations.hpp ! src/hotspot/share/runtime/vmThread.cpp ! src/hotspot/share/utilities/vmError.cpp ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot/src/org/graalvm/compiler/hotspot/GraalHotSpotVMConfig.java From eosterlund at openjdk.java.net Wed Jun 17 09:54:47 2020 From: eosterlund at openjdk.java.net (Erik =?UTF-8?B?w5ZzdGVybHVuZA==?=) Date: Wed, 17 Jun 2020 09:54:47 GMT Subject: git: openjdk/zgc: ZGC: Shenandoah build fix Message-ID: Changeset: d35cbca5 Author: Erik ?sterlund Date: 2020-06-17 09:35:52 +0000 URL: https://git.openjdk.java.net/zgc/commit/d35cbca5 ZGC: Shenandoah build fix ! src/hotspot/share/gc/shenandoah/shenandoahConcurrentMark.cpp From albert.th at alibaba-inc.com Fri Jun 19 06:34:33 2020 From: albert.th at alibaba-inc.com (Hao Tang) Date: Fri, 19 Jun 2020 14:34:33 +0800 Subject: =?UTF-8?B?UmU6IERpc2N1c3Npb24gb24gWkdDJ3MgUGFnZSBDYWNoZSBGbHVzaA==?= In-Reply-To: References: , Message-ID: <2b4f3dc4-002e-4967-85d0-945904eef27e.albert.th@alibaba-inc.com> Thanks for your reply. This is our patch for "balancing" page cache: https://github.com/tanghaoth90/jdk11u/commit/77631cf3 (based on jdk11u). We notice two cases that "page cache flush" frequently happens: * The number of cached pages is not sufficient for concurrent relocation. For example, 34 medium pages are "to-space" as the GC log shows below. "[2020-03-06T05:46:31.618+0800] GC(10406) Relocation Set (Medium Pages): 54->34, 91 skipped" In our scenario, hundreds of mutator threads is running. To my knowledge, these mutator can possibly relocate medium-sized objects in the relocation set. If there are less than 34 cached medium pages, "page cache flush" is likely to happen. Our strategy is to ensure at least 34 cached medium pages before relocation. * A lot of medium(small)-sized objects become unreachable at a moment (such as removing the root of these objects). Assume that the ratio of allocation rate of small and medium objects is 1:1. In this case, small-sized and medium-sized objects occupy 50% and 50% of the total memory, respectively. If medium-sized objects of 25% total memory are removed, there are still cached medium pages of 25% total memory when all small pages are used up. Since ZDriver does not trigger a new GC cycle at this moment, 12.5% total memory should be transformed from medium pages into small pages for allocating small -sized objects. Our strategy is to ensure the ratio of different types of cached pages to match the ratio of allocation rate. The patch works well on our application (by eliminating "page cache flush" and the corresponding delay). However, this approach have shortcomings as my previous mail mentioned. It might not be a complete solution for general cases, but still worth discussing. We are also thinking about alternative solutions, such as keep some cached page as buffer. Looking forward to your feedback. Thanks. Sincerely, Hao Tang ------------------------------------------------------------------ From:Per Liden Send Time:2020?6?5? 18:54 To:albert.th at alibaba-inc.com; hotspot-gc-dev openjdk.java.net ; zgc-dev Subject:Re: Discussion on ZGC's Page Cache Flush Hi, On 6/5/20 11:24 AM, Hao Tang wrote: > > Hi ZGC Team, > > We encountered "Page Cache Flushed" when we enable ZGC feature. Much longer response time can be observed at the time when "Page Cache Flushed" happened. There is a case that is able to reproduce this scenario. In this case, medium-sized objects are periodically cleaned up. Right after the clean-up, small pages is not sufficient for allocating small-sized objects, which needs to flush medium pages into small pages. We found that simply enlarging the max heap size cannot solve this problem. We believe that "page cache flush" issue could be a general problem, because the ratio of small/medium/large objects are not always constant. > > Sample code: > import java.util.Random; > import java.util.concurrent.locks.LockSupport; > public class TestPageCacheFlush { > /* > * Options: -XX:+UnlockExperimentalVMOptions -XX:+UseZGC -XX:+UnlockDiagnosticVMOptions -Xms10g -Xmx10g -XX:ParallelGCThreads=2 -XX:ConcGCThreads=4 -Xlog:gc,gc+heap > * small object: fast allocation > * medium object: slow allocation, periodic deletion > */ > public static void main(String[] args) throws Exception { > long heapSizeKB = Runtime.getRuntime().totalMemory() >> 10; > System.out.println(heapSizeKB); > SmallContainer smallContainer = new SmallContainer((long)(heapSizeKB * 0.4)); // 40% heap for live small objects > MediumContainer mediumContainer = new MediumContainer((long)(heapSizeKB * 0.4)); // 40% heap for live medium objects > int totalSmall = smallContainer.getTotalObjects(); > int totalMedium = mediumContainer.getTotalObjects(); > int addedSmall = 0; > int addedMedium = 1; // should not be divided by zero > while (addedMedium < totalMedium * 10) { > if (totalSmall / totalMedium > addedSmall / addedMedium) { // keep the ratio of allocated small/medium objects > smallContainer.createAndSaveObject(); > addedSmall ++; > } else { > mediumContainer.createAndAppendObject(); > addedMedium ++; > } > if ((addedSmall + addedMedium) % 50 == 0) { > LockSupport.parkNanos(500); // make allocation slower > } > } > } > static class SmallContainer { > private final int KB_PER_OBJECT = 64; // 64KB per object > private final Random RANDOM = new Random(); > private byte[][] smallObjectArray; > private long totalKB; > private int totalObjects; > SmallContainer(long totalKB) { > this.totalKB = totalKB; > totalObjects = (int)(totalKB / KB_PER_OBJECT); > smallObjectArray = new byte[totalObjects][]; > } > int getTotalObjects() { > return totalObjects; > } > // random insertion (with random deletion) > void createAndSaveObject() { > smallObjectArray[RANDOM.nextInt(totalObjects)] = new byte[KB_PER_OBJECT << 10]; > } > } > static class MediumContainer { > private final int KB_PER_OBJECT = 512; // 512KB per object > private byte[][] mediumObjectArray; > private int mediumObjectArrayCurrentIndex = 0; > private long totalKB; > private int totalObjects; > MediumContainer(long totalKB) { > this.totalKB = totalKB; > totalObjects = (int)(totalKB / KB_PER_OBJECT); > mediumObjectArray = new byte[totalObjects][]; > } > int getTotalObjects() { > return totalObjects; > } > void createAndAppendObject() { > if (mediumObjectArrayCurrentIndex == totalObjects) { // periodic deletion > mediumObjectArray = new byte[totalObjects][]; // also delete all medium objects in the old array > mediumObjectArrayCurrentIndex = 0; > } else { > mediumObjectArray[mediumObjectArrayCurrentIndex] = new byte[KB_PER_OBJECT << 10]; > mediumObjectArrayCurrentIndex ++; > } > } > } > } > > To avoid "page cache flush", we made a patch for converting small/medium pages to medium/small pages ahead of time. This patch works well on an application with relatively-stable allocation rate, which has not encountered throughput problem. How do you think of this solution? > > We notice that you are improving the efficiency for map/unmap operations (https://mail.openjdk.java.net/pipermail/hotspot-gc-dev/2020-June/029936.html). It may be a step for improving the delay caused by "page cache flush". Do you have further plan for eliminating or improving "page cache flush"? Yes, and as you might have seen, the latest incarnation of this patchset includes asynchronous unmapping, which helps reduce the time for page cache flushing. I ran your example program above, with these patches and can see ~30% reduction in average page allocation time, and ~60% reduction in worst case page allocation time. So, it will be an improvement. However, I'd be more than happy to take a look at your patch and see what you've done. Making page cache flushing even less expensive is something we're interested in going forward. cheers, Per > > Sincerely,Hao Tang > From per.liden at oracle.com Tue Jun 23 08:26:45 2020 From: per.liden at oracle.com (Per Liden) Date: Tue, 23 Jun 2020 10:26:45 +0200 Subject: Discussion on ZGC's Page Cache Flush In-Reply-To: <2b4f3dc4-002e-4967-85d0-945904eef27e.albert.th@alibaba-inc.com> References: <2b4f3dc4-002e-4967-85d0-945904eef27e.albert.th@alibaba-inc.com> Message-ID: <5534bd26-b080-3cb7-32dd-3c7f020d0253@oracle.com> Hi, On 6/19/20 8:34 AM, Hao Tang wrote: > Thanks for your reply. > > This?is?our?patch?for?"balancing"?page?cache: > https://github.com/tanghaoth90/jdk11u/commit/77631cf3?(based?on?jdk11u). Sorry, but for IP clarity could you please post that patch to cr.openjdk.java.net, otherwise I'm afraid I can't look at the patch. > > We?notice?two?cases?that?"page?cache?flush"?frequently?happens: > > *?The?number?of?cached?pages?is?not?sufficient?for?concurrent?relocation. > > ????For?example,?34?medium?pages?are?"to-space"?as?the?GC?log?shows?below. > ????"[2020-03-06T05:46:31.618+0800]?GC(10406)?Relocation?Set?(Medium?Pages):?54->34,?91?skipped" > ????In?our?scenario,?hundreds?of?mutator?threads?is?running.?To?my?knowledge,?these?mutator?can?possibly?relocate?medium-sized > ????objects?in?the?relocation?set.?If?there?are?less?than?34?cached?medium?pages,?"page?cache?flush"?is?likely?to?happen. > > ????Our?strategy?is?to?ensure?at?least?34?cached?medium?pages?before?relocation. > > *?A?lot?of?medium(small)-sized?objects?become?unreachable?at?a?moment?(such?as?removing?the?root?of?these?objects). > ????Assume?that?the?ratio?of?allocation?rate?of?small?and?medium?objects?is?1:1.?In?this?case,?small-sized?and?medium-sized > ????objects?occupy?50%?and?50%?of?the?total?memory,?respectively.?If?medium-sized?objects?of?25%?total?memory?are?removed,?there > ????are?still?cached?medium?pages?of?25%?total?memory?when?all?small?pages?are?used?up.?Since?ZDriver?does?not?trigger?a?new > ????GC?cycle?at?this?moment,?12.5%?total?memory?should?be?transformed?from?medium?pages?into?small?pages?for?allocating?small > ????-sized?objects. > > ????Our?strategy?is?to?ensure?the?ratio?of?different?types?of?cached?pages?to?match?the?ratio?of?allocation?rate. > > The?patch?works?well?on?our?application?(by?eliminating?"page?cache?flush"?and?the?corresponding?delay).?However,?this?approach?have > > shortcomings?as?my?previous?mail?mentioned.?It?might?not?be?a?complete?solution?for?general?cases,?but?still?worth?discussing.?We?are > > also?thinking?about?alternative?solutions,?such?as?keep?some?cached?page?as?buffer. > > Looking?forward?to?your?feedback.?Thanks. As of JDK 13, having lots of medium/large pages in the page cache is not a problem, since ZGC will split such pages into small pages (which is inexpensive) when needed. However, going from small to medium/large is more problematic, as it involved (re)mapping memory. One possible solution to make this less expensive might be to fuse small pages into medium (or large) pages when they are freed. Either by 1) just opportunistically fusing small pages that sit next to each other in the address space (which would be relatively inexpensive), or 2) by remapping memory (which would be more expensive, but that work would be done by GC threads). Alt. 1 would require the page cache to keep pages sorted by virtual address. While that's doable, it would be slightly complicated by uncommit, which wants to keep pages sorted by LRU. Alt. 2 might be too expensive to do all the time, but might perhaps be useful a complement to alt. 1, if a large set of cached small pages can't be fused. Monitoring the distribution of small/medium page allocations (as you mention), might be useful to guide alt. 1 & 2. cheers, Per > > Sincerely, > > Hao?Tang > > > > ------------------------------------------------------------------ > From:Per Liden > Send Time:2020?6?5? 18:54 > To:albert.th at alibaba-inc.com; hotspot-gc-dev openjdk.java.net > ; zgc-dev > Subject:Re: Discussion on ZGC's Page Cache Flush > > Hi, > > On?6/5/20?11:24?AM,?Hao?Tang?wrote: > > > >?Hi?ZGC?Team, > > > >?We?encountered?"Page?Cache?Flushed"?when?we?enable?ZGC?feature.?Much?longer?response?time?can?be?observed?at?the?time?when?"Page?Cache?Flushed"?happened.?There?is?a?case?that?is?able?to?reproduce?this?scenario.?In?this?case,?medium-sized?objects?are?periodically?cleaned?up.?Right?after?the?clean-up,?small?pages?is?not?sufficient?for?allocating?small-sized?objects,?which?needs?to?flush?medium?pages?into?small?pages.?We?found?that?simply?enlarging?the?max?heap?size?cannot?solve?this?problem.?We?believe?that?"page?cache?flush"?issue?could?be?a?general?problem,?because?the?ratio?of?small/medium/large?objects?are?not?always?constant. > > > >?Sample?code: > >?import?java.util.Random; > >?import?java.util.concurrent.locks.LockSupport; > >?public?class?TestPageCacheFlush?{ > >??????/* > >???????*?Options:?-XX:+UnlockExperimentalVMOptions?-XX:+UseZGC?-XX:+UnlockDiagnosticVMOptions?-Xms10g?-Xmx10g?-XX:ParallelGCThreads=2?-XX:ConcGCThreads=4?-Xlog:gc,gc+heap > >???????*?small?object:?fast?allocation > >???????*?medium?object:?slow?allocation,?periodic?deletion > >???????*/ > >??????public?static?void?main(String[]?args)?throws?Exception?{ > >??????????long?heapSizeKB?=?Runtime.getRuntime().totalMemory()?>>?10; > >??????????System.out.println(heapSizeKB); > >??????????SmallContainer?smallContainer?=?new?SmallContainer((long)(heapSizeKB?*?0.4));?????//?40%?heap?for?live?small?objects > >??????????MediumContainer?mediumContainer?=?new?MediumContainer((long)(heapSizeKB?*?0.4));??//?40%?heap?for?live?medium?objects > >??????????int?totalSmall?=?smallContainer.getTotalObjects(); > >??????????int?totalMedium?=?mediumContainer.getTotalObjects(); > >??????????int?addedSmall?=?0; > >??????????int?addedMedium?=?1;?//?should?not?be?divided?by?zero > >??????????while?(addedMedium? >??????????????if?(totalSmall?/?totalMedium?>?addedSmall?/?addedMedium)?{?//?keep?the?ratio?of?allocated?small/medium?objects > >??????????????????smallContainer.createAndSaveObject(); > >??????????????????addedSmall?++; > >??????????????}?else?{ > >??????????????????mediumContainer.createAndAppendObject(); > >??????????????????addedMedium?++; > >??????????????} > >??????????????if?((addedSmall?+?addedMedium)?%?50?==?0)?{ > >??????????????????LockSupport.parkNanos(500);?//?make?allocation?slower > >??????????????} > >??????????} > >??????} > >??????static?class?SmallContainer?{ > >??????????private?final?int?KB_PER_OBJECT?=?64;?//?64KB?per?object > >??????????private?final?Random?RANDOM?=?new?Random(); > >??????????private?byte[][]?smallObjectArray; > >??????????private?long?totalKB; > >??????????private?int?totalObjects; > >??????????SmallContainer(long?totalKB)?{ > >??????????????this.totalKB?=?totalKB; > >??????????????totalObjects?=?(int)(totalKB?/?KB_PER_OBJECT); > >??????????????smallObjectArray?=?new?byte[totalObjects][]; > >??????????} > >??????????int?getTotalObjects()?{ > >??????????????return?totalObjects; > >??????????} > >??????????//?random?insertion?(with?random?deletion) > >??????????void?createAndSaveObject()?{ > >??????????????smallObjectArray[RANDOM.nextInt(totalObjects)]?=?new?byte[KB_PER_OBJECT?< >??????????} > >??????} > >??????static?class?MediumContainer?{ > >??????????private?final?int?KB_PER_OBJECT?=?512;?//?512KB?per?object > >??????????private?byte[][]?mediumObjectArray; > >??????????private?int?mediumObjectArrayCurrentIndex?=?0; > >??????????private?long?totalKB; > >??????????private?int?totalObjects; > >??????????MediumContainer(long?totalKB)?{ > >??????????????this.totalKB?=?totalKB; > >??????????????totalObjects?=?(int)(totalKB?/?KB_PER_OBJECT); > >??????????????mediumObjectArray?=?new?byte[totalObjects][]; > >??????????} > >??????????int?getTotalObjects()?{ > >??????????????return?totalObjects; > >??????????} > >??????????void?createAndAppendObject()?{ > >??????????????if?(mediumObjectArrayCurrentIndex?==?totalObjects)?{?//?periodic?deletion > >??????????????????mediumObjectArray?=?new?byte[totalObjects][];?//?also?delete?all?medium?objects?in?the?old?array > >??????????????????mediumObjectArrayCurrentIndex?=?0; > >??????????????}?else?{ > >??????????????????mediumObjectArray[mediumObjectArrayCurrentIndex]?=?new?byte[KB_PER_OBJECT?< >??????????????????mediumObjectArrayCurrentIndex?++; > >??????????????} > >??????????} > >??????} > >?} > > > >?To?avoid?"page?cache?flush",?we?made?a?patch?for?converting?small/medium?pages?to?medium/small?pages?ahead?of?time.?This?patch?works?well?on?an?application?with?relatively-stable?allocation?rate,?which?has?not?encountered?throughput?problem.?How?do?you?think?of?this?solution? > > > >?We?notice?that?you?are?improving?the?efficiency?for?map/unmap?operations?(https://mail.openjdk.java.net/pipermail/hotspot-gc-dev/2020-June/029936.html).?It?may?be?a?step?for?improving?the?delay?caused?by?"page?cache?flush".?Do?you?have?further?plan?for?eliminating?or?improving?"page?cache?flush"? > > Yes,?and?as?you?might?have?seen,?the?latest?incarnation?of?this?patchset > includes?asynchronous?unmapping,?which?helps?reduce?the?time?for?page > cache?flushing.?I?ran?your?example?program?above,?with?these?patches?and > can?see?~30%?reduction?in?average?page?allocation?time,?and?~60% > reduction?in?worst?case?page?allocation?time.?So,?it?will?be?an?improvement. > > However,?I'd?be?more?than?happy?to?take?a?look?at?your?patch?and?see > what?you've?done.?Making?page?cache?flushing?even?less?expensive?is > something?we're?interested?in?going?forward. > > cheers, > Per > > > > >?Sincerely,Hao?Tang > > > From albert.th at alibaba-inc.com Wed Jun 24 03:16:00 2020 From: albert.th at alibaba-inc.com (Hao Tang) Date: Wed, 24 Jun 2020 11:16:00 +0800 Subject: =?UTF-8?B?UmU6IERpc2N1c3Npb24gb24gWkdDJ3MgUGFnZSBDYWNoZSBGbHVzaA==?= In-Reply-To: <5534bd26-b080-3cb7-32dd-3c7f020d0253@oracle.com> References: <2b4f3dc4-002e-4967-85d0-945904eef27e.albert.th@alibaba-inc.com>, <5534bd26-b080-3cb7-32dd-3c7f020d0253@oracle.com> Message-ID: <51f59517-26f1-4c86-8a90-5ec290640c16.albert.th@alibaba-inc.com> Hi, I have posted the patch here: http://cr.openjdk.java.net/~ddong/haotang/balance_page_cache/webrev/ Thank you. ------------------------------------------------------------------ From:Per Liden Send Time:2020?6?23?(???) 16:27 To:??(??) ; hotspot-gc-dev openjdk.java.net ; zgc-dev Subject:Re: Discussion on ZGC's Page Cache Flush Hi, On 6/19/20 8:34 AM, Hao Tang wrote: > Thanks for your reply. > > This is our patch for "balancing" page cache: > https://github.com/tanghaoth90/jdk11u/commit/77631cf3 (based on jdk11u). Sorry, but for IP clarity could you please post that patch to cr.openjdk.java.net, otherwise I'm afraid I can't look at the patch. > > We notice two cases that "page cache flush" frequently happens: > > * The number of cached pages is not sufficient for concurrent relocation. > > For example, 34 medium pages are "to-space" as the GC log shows below. > "[2020-03-06T05:46:31.618+0800] GC(10406) Relocation Set (Medium Pages): 54->34, 91 skipped" > In our scenario, hundreds of mutator threads is running. To my knowledge, these mutator can possibly relocate medium-sized > objects in the relocation set. If there are less than 34 cached medium pages, "page cache flush" is likely to happen. > > Our strategy is to ensure at least 34 cached medium pages before relocation. > > * A lot of medium(small)-sized objects become unreachable at a moment (such as removing the root of these objects). > Assume that the ratio of allocation rate of small and medium objects is 1:1. In this case, small-sized and medium-sized > objects occupy 50% and 50% of the total memory, respectively. If medium-sized objects of 25% total memory are removed, there > are still cached medium pages of 25% total memory when all small pages are used up. Since ZDriver does not trigger a new > GC cycle at this moment, 12.5% total memory should be transformed from medium pages into small pages for allocating small > -sized objects. > > Our strategy is to ensure the ratio of different types of cached pages to match the ratio of allocation rate. > > The patch works well on our application (by eliminating "page cache flush" and the corresponding delay). However, this approach have > > shortcomings as my previous mail mentioned. It might not be a complete solution for general cases, but still worth discussing. We are > > also thinking about alternative solutions, such as keep some cached page as buffer. > > Looking forward to your feedback. Thanks. As of JDK 13, having lots of medium/large pages in the page cache is not a problem, since ZGC will split such pages into small pages (which is inexpensive) when needed. However, going from small to medium/large is more problematic, as it involved (re)mapping memory. One possible solution to make this less expensive might be to fuse small pages into medium (or large) pages when they are freed. Either by 1) just opportunistically fusing small pages that sit next to each other in the address space (which would be relatively inexpensive), or 2) by remapping memory (which would be more expensive, but that work would be done by GC threads). Alt. 1 would require the page cache to keep pages sorted by virtual address. While that's doable, it would be slightly complicated by uncommit, which wants to keep pages sorted by LRU. Alt. 2 might be too expensive to do all the time, but might perhaps be useful a complement to alt. 1, if a large set of cached small pages can't be fused. Monitoring the distribution of small/medium page allocations (as you mention), might be useful to guide alt. 1 & 2. cheers, Per > > Sincerely, > > Hao Tang > > > > ------------------------------------------------------------------ > From:Per Liden > Send Time:2020?6?5? 18:54 > To:albert.th at alibaba-inc.com; hotspot-gc-dev openjdk.java.net > ; zgc-dev > Subject:Re: Discussion on ZGC's Page Cache Flush > > Hi, > > On 6/5/20 11:24 AM, Hao Tang wrote: > > > > Hi ZGC Team, > > > > We encountered "Page Cache Flushed" when we enable ZGC feature. Much longer response time can be observed at the time when "Page Cache Flushed" happened. There is a case that is able to reproduce this scenario. In this case, medium-sized objects are periodically cleaned up. Right after the clean-up, small pages is not sufficient for allocating small-sized objects, which needs to flush medium pages into small pages. We found that simply enlarging the max heap size cannot solve this problem. We believe that "page cache flush" issue could be a general problem, because the ratio of small/medium/large objects are not always constant. > > > > Sample code: > > import java.util.Random; > > import java.util.concurrent.locks.LockSupport; > > public class TestPageCacheFlush { > > /* > > * Options: -XX:+UnlockExperimentalVMOptions -XX:+UseZGC -XX:+UnlockDiagnosticVMOptions -Xms10g -Xmx10g -XX:ParallelGCThreads=2 -XX:ConcGCThreads=4 -Xlog:gc,gc+heap > > * small object: fast allocation > > * medium object: slow allocation, periodic deletion > > */ > > public static void main(String[] args) throws Exception { > > long heapSizeKB = Runtime.getRuntime().totalMemory() >> 10; > > System.out.println(heapSizeKB); > > SmallContainer smallContainer = new SmallContainer((long)(heapSizeKB * 0.4)); // 40% heap for live small objects > > MediumContainer mediumContainer = new MediumContainer((long)(heapSizeKB * 0.4)); // 40% heap for live medium objects > > int totalSmall = smallContainer.getTotalObjects(); > > int totalMedium = mediumContainer.getTotalObjects(); > > int addedSmall = 0; > > int addedMedium = 1; // should not be divided by zero > > while (addedMedium < totalMedium * 10) { > > if (totalSmall / totalMedium > addedSmall / addedMedium) { // keep the ratio of allocated small/medium objects > > smallContainer.createAndSaveObject(); > > addedSmall ++; > > } else { > > mediumContainer.createAndAppendObject(); > > addedMedium ++; > > } > > if ((addedSmall + addedMedium) % 50 == 0) { > > LockSupport.parkNanos(500); // make allocation slower > > } > > } > > } > > static class SmallContainer { > > private final int KB_PER_OBJECT = 64; // 64KB per object > > private final Random RANDOM = new Random(); > > private byte[][] smallObjectArray; > > private long totalKB; > > private int totalObjects; > > SmallContainer(long totalKB) { > > this.totalKB = totalKB; > > totalObjects = (int)(totalKB / KB_PER_OBJECT); > > smallObjectArray = new byte[totalObjects][]; > > } > > int getTotalObjects() { > > return totalObjects; > > } > > // random insertion (with random deletion) > > void createAndSaveObject() { > > smallObjectArray[RANDOM.nextInt(totalObjects)] = new byte[KB_PER_OBJECT << 10]; > > } > > } > > static class MediumContainer { > > private final int KB_PER_OBJECT = 512; // 512KB per object > > private byte[][] mediumObjectArray; > > private int mediumObjectArrayCurrentIndex = 0; > > private long totalKB; > > private int totalObjects; > > MediumContainer(long totalKB) { > > this.totalKB = totalKB; > > totalObjects = (int)(totalKB / KB_PER_OBJECT); > > mediumObjectArray = new byte[totalObjects][]; > > } > > int getTotalObjects() { > > return totalObjects; > > } > > void createAndAppendObject() { > > if (mediumObjectArrayCurrentIndex == totalObjects) { // periodic deletion > > mediumObjectArray = new byte[totalObjects][]; // also delete all medium objects in the old array > > mediumObjectArrayCurrentIndex = 0; > > } else { > > mediumObjectArray[mediumObjectArrayCurrentIndex] = new byte[KB_PER_OBJECT << 10]; > > mediumObjectArrayCurrentIndex ++; > > } > > } > > } > > } > > > > To avoid "page cache flush", we made a patch for converting small/medium pages to medium/small pages ahead of time. This patch works well on an application with relatively-stable allocation rate, which has not encountered throughput problem. How do you think of this solution? > > > > We notice that you are improving the efficiency for map/unmap operations (https://mail.openjdk.java.net/pipermail/hotspot-gc-dev/2020-June/029936.html). It may be a step for improving the delay caused by "page cache flush". Do you have further plan for eliminating or improving "page cache flush"? > > Yes, and as you might have seen, the latest incarnation of this patchset > includes asynchronous unmapping, which helps reduce the time for page > cache flushing. I ran your example program above, with these patches and > can see ~30% reduction in average page allocation time, and ~60% > reduction in worst case page allocation time. So, it will be an improvement. > > However, I'd be more than happy to take a look at your patch and see > what you've done. Making page cache flushing even less expensive is > something we're interested in going forward. > > cheers, > Per > > > > > Sincerely,Hao Tang > > >