From shade at redhat.com Sat Sep 1 08:08:00 2018 From: shade at redhat.com (Aleksey Shipilev) Date: Sat, 1 Sep 2018 10:08:00 +0200 Subject: RFR: Several cleanups In-Reply-To: <0aec131b-da19-3e74-15c5-cff750b0c6f5@redhat.com> References: <0aec131b-da19-3e74-15c5-cff750b0c6f5@redhat.com> Message-ID: On 08/31/2018 11:30 PM, Roman Kennke wrote: > I went over the diff between shenandoah/jdk and jdk/jdk and found some > obvious leftovers: > > http://cr.openjdk.java.net/~rkennke/cleanups/webrev.00/ Looks good, except the bit in oop.cpp: are we actually safe doing HeapAccess (with barriers) for metadata? This came from the attempt to dodge barriers during oop_oop_iterate: http://hg.openjdk.java.net/shenandoah/jdk/rev/fd9d711bcc6d -Aleksey From rkennke at redhat.com Sat Sep 1 08:29:29 2018 From: rkennke at redhat.com (Roman Kennke) Date: Sat, 1 Sep 2018 10:29:29 +0200 Subject: RFR: Several cleanups In-Reply-To: References: <0aec131b-da19-3e74-15c5-cff750b0c6f5@redhat.com> Message-ID: Am 01.09.2018 um 10:08 schrieb Aleksey Shipilev: > On 08/31/2018 11:30 PM, Roman Kennke wrote: >> I went over the diff between shenandoah/jdk and jdk/jdk and found some >> obvious leftovers: >> >> http://cr.openjdk.java.net/~rkennke/cleanups/webrev.00/ > > Looks good, except the bit in oop.cpp: are we actually safe doing HeapAccess (with barriers) for > metadata? This came from the attempt to dodge barriers during oop_oop_iterate: > http://hg.openjdk.java.net/shenandoah/jdk/rev/fd9d711bcc6d > > -Aleksey I think yes, because it uses AS_NO_KEEPALIVE. From shade at redhat.com Sat Sep 1 08:52:46 2018 From: shade at redhat.com (Aleksey Shipilev) Date: Sat, 1 Sep 2018 10:52:46 +0200 Subject: RFR: Several cleanups In-Reply-To: References: <0aec131b-da19-3e74-15c5-cff750b0c6f5@redhat.com> Message-ID: On 09/01/2018 10:29 AM, Roman Kennke wrote: > Am 01.09.2018 um 10:08 schrieb Aleksey Shipilev: >> On 08/31/2018 11:30 PM, Roman Kennke wrote: >>> I went over the diff between shenandoah/jdk and jdk/jdk and found some >>> obvious leftovers: >>> >>> http://cr.openjdk.java.net/~rkennke/cleanups/webrev.00/ >> >> Looks good, except the bit in oop.cpp: are we actually safe doing HeapAccess (with barriers) for >> metadata? This came from the attempt to dodge barriers during oop_oop_iterate: >> http://hg.openjdk.java.net/shenandoah/jdk/rev/fd9d711bcc6d > > I think yes, because it uses AS_NO_KEEPALIVE. And that protects us from calling write barriers during puts? I guess if tests are fine, we are fine too. -Aleksey From rkennke at redhat.com Sat Sep 1 09:19:08 2018 From: rkennke at redhat.com (Roman Kennke) Date: Sat, 1 Sep 2018 11:19:08 +0200 Subject: RFR: Several cleanups In-Reply-To: References: <0aec131b-da19-3e74-15c5-cff750b0c6f5@redhat.com> Message-ID: Am 01.09.2018 um 10:52 schrieb Aleksey Shipilev: > On 09/01/2018 10:29 AM, Roman Kennke wrote: >> Am 01.09.2018 um 10:08 schrieb Aleksey Shipilev: >>> On 08/31/2018 11:30 PM, Roman Kennke wrote: >>>> I went over the diff between shenandoah/jdk and jdk/jdk and found some >>>> obvious leftovers: >>>> >>>> http://cr.openjdk.java.net/~rkennke/cleanups/webrev.00/ >>> >>> Looks good, except the bit in oop.cpp: are we actually safe doing HeapAccess (with barriers) for >>> metadata? This came from the attempt to dodge barriers during oop_oop_iterate: >>> http://hg.openjdk.java.net/shenandoah/jdk/rev/fd9d711bcc6d >> >> I think yes, because it uses AS_NO_KEEPALIVE. > > And that protects us from calling write barriers during puts? This is about loads. Specifically it's about loads from Reference objects. Normally this would keep-alive stuff, and thus (with Traversal) go via WB. Not keeping alive (because it's only logging and not escaping) protects us from this. Thinking about it, Traversal should not keep-alive anything, ever. I need to check this. > I guess if tests are fine, we are fine too. Yup, tests are fine. (I almost always get one test timeout with ShenandoahStrDedupStress on my slow machine. Can we get this fixed somehow?) Roman From roman at kennke.org Sat Sep 1 09:21:27 2018 From: roman at kennke.org (roman at kennke.org) Date: Sat, 01 Sep 2018 09:21:27 +0000 Subject: hg: shenandoah/jdk: Several cleanups Message-ID: <201809010921.w819LRSK005416@aojmv0008.oracle.com> Changeset: 26c2badedf17 Author: rkennke Date: 2018-09-01 11:19 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/26c2badedf17 Several cleanups ! src/hotspot/cpu/x86/sharedRuntime_x86_64.cpp ! src/hotspot/share/c1/c1_LIRGenerator.hpp ! src/hotspot/share/classfile/classLoaderData.cpp ! src/hotspot/share/gc/g1/g1CollectedHeap.hpp ! src/hotspot/share/gc/g1/g1CollectedHeap.inline.hpp ! src/hotspot/share/gc/shared/collectedHeap.cpp ! src/hotspot/share/gc/shared/collectedHeap.hpp ! src/hotspot/share/gc/shared/parallelCleaning.cpp ! src/hotspot/share/oops/instanceRefKlass.inline.hpp ! src/hotspot/share/oops/oop.cpp ! src/hotspot/share/runtime/vmStructs.cpp From shade at redhat.com Sat Sep 1 09:48:21 2018 From: shade at redhat.com (Aleksey Shipilev) Date: Sat, 1 Sep 2018 11:48:21 +0200 Subject: RFR: Do we still need ParallelCodeCacheIterator? In-Reply-To: <5a1acd8a-2b65-0005-ed2c-e0a2ef2202ba@redhat.com> References: <5a1acd8a-2b65-0005-ed2c-e0a2ef2202ba@redhat.com> Message-ID: <55a4702a-c891-5d6c-dbcc-6b0f8eca4404@redhat.com> On 08/31/2018 10:37 PM, Roman Kennke wrote: > See subject. > > And if we do, can we move it to shenandoahCodeRoots.hpp/cpp ? We kinda do need it: it is our fallback code rootss style, in case our default one is broken. But we can move the bulk of the code into shenandoahCodeRoots indeed (still need to be friends with CodeCache, so upstream exposure is not null): http://cr.openjdk.java.net/~shade/shenandoah/codecache-move-inside/webrev.01/ Testing: tier3_gc_shenandoah, adhoc runs with -XX:ShenandoahCodeRootsStyle=1 Thanks, -Aleksey From rkennke at redhat.com Sat Sep 1 09:53:46 2018 From: rkennke at redhat.com (Roman Kennke) Date: Sat, 1 Sep 2018 11:53:46 +0200 Subject: RFR: Do we still need ParallelCodeCacheIterator? In-Reply-To: <55a4702a-c891-5d6c-dbcc-6b0f8eca4404@redhat.com> References: <5a1acd8a-2b65-0005-ed2c-e0a2ef2202ba@redhat.com> <55a4702a-c891-5d6c-dbcc-6b0f8eca4404@redhat.com> Message-ID: <1dd88692-6987-7b1b-88a0-8e52c79721f9@redhat.com> Am 01.09.2018 um 11:48 schrieb Aleksey Shipilev: > On 08/31/2018 10:37 PM, Roman Kennke wrote: >> See subject. >> >> And if we do, can we move it to shenandoahCodeRoots.hpp/cpp ? > > We kinda do need it: it is our fallback code rootss style, in case our default one is broken. But we > can move the bulk of the code into shenandoahCodeRoots indeed (still need to be friends with > CodeCache, so upstream exposure is not null): > http://cr.openjdk.java.net/~shade/shenandoah/codecache-move-inside/webrev.01/ > > Testing: tier3_gc_shenandoah, adhoc runs with -XX:ShenandoahCodeRootsStyle=1 > > Thanks, > -Aleksey > Good, thanks! Roman From shade at redhat.com Sat Sep 1 10:26:44 2018 From: shade at redhat.com (shade at redhat.com) Date: Sat, 01 Sep 2018 10:26:44 +0000 Subject: hg: shenandoah/jdk: Move ParallelCodeIterator to ShenandoahCodeRoots Message-ID: <201809011026.w81AQiVs023605@aojmv0008.oracle.com> Changeset: df88358a00aa Author: shade Date: 2018-09-01 12:26 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/df88358a00aa Move ParallelCodeIterator to ShenandoahCodeRoots ! src/hotspot/share/code/codeCache.cpp ! src/hotspot/share/code/codeCache.hpp ! src/hotspot/share/gc/shenandoah/shenandoahCodeRoots.cpp ! src/hotspot/share/gc/shenandoah/shenandoahCodeRoots.hpp From shade at redhat.com Sun Sep 2 09:23:38 2018 From: shade at redhat.com (shade at redhat.com) Date: Sun, 02 Sep 2018 09:23:38 +0000 Subject: hg: shenandoah/jdk: 2 new changesets Message-ID: <201809020923.w829NcUp004250@aojmv0008.oracle.com> Changeset: 1bb95f3dabc8 Author: shade Date: 2018-09-01 17:09 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/1bb95f3dabc8 Evac reserve: make sure GC has untouchable space to move the objects into ! src/hotspot/share/gc/shenandoah/heuristics/shenandoahAdaptiveHeuristics.cpp ! src/hotspot/share/gc/shenandoah/heuristics/shenandoahAggressiveHeuristics.cpp ! src/hotspot/share/gc/shenandoah/heuristics/shenandoahPassiveHeuristics.cpp ! src/hotspot/share/gc/shenandoah/heuristics/shenandoahTraversalHeuristics.cpp ! src/hotspot/share/gc/shenandoah/shenandoahFreeSet.cpp ! src/hotspot/share/gc/shenandoah/shenandoahFreeSet.hpp ! src/hotspot/share/gc/shenandoah/shenandoahHeap.cpp ! src/hotspot/share/gc/shenandoah/shenandoahHeap.hpp ! src/hotspot/share/gc/shenandoah/shenandoahPacer.cpp ! src/hotspot/share/gc/shenandoah/shenandoah_globals.hpp Changeset: f8f9c1f0f62b Author: shade Date: 2018-09-01 17:09 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/f8f9c1f0f62b Refactor FreeSet logging: support evac-reserve, denser printouts ! src/hotspot/share/gc/shenandoah/shenandoahControlThread.cpp ! src/hotspot/share/gc/shenandoah/shenandoahFreeSet.cpp ! src/hotspot/share/gc/shenandoah/shenandoahFreeSet.hpp From rwestrel at redhat.com Mon Sep 3 08:05:58 2018 From: rwestrel at redhat.com (Roland Westrelin) Date: Mon, 03 Sep 2018 10:05:58 +0200 Subject: RFR: gc interface tweaks In-Reply-To: <5bc26cf3-2285-37cc-960e-645c9210d268@redhat.com> References: <5bc26cf3-2285-37cc-960e-645c9210d268@redhat.com> Message-ID: > It seems that most of the tier3_gc_shenandoah tests are failing with this patch with: Thanks for testing it. An upstream change that was brought in with the last merge broke my patch. Tentative fix below. I'll run full tier3 later today. Roland. diff --git a/src/hotspot/share/gc/shenandoah/c2/shenandoahBarrierSetC2.cpp b/src/hotspot/share/gc/shenandoah/c2/shenandoahBarrierSetC2.cpp --- a/src/hotspot/share/gc/shenandoah/c2/shenandoahBarrierSetC2.cpp +++ b/src/hotspot/share/gc/shenandoah/c2/shenandoahBarrierSetC2.cpp @@ -619,7 +619,7 @@ void ShenandoahBarrierSetC2::resolve_address(C2Access& access) const { const TypePtr* adr_type = access.addr().type(); - if (adr_type->isa_instptr() || adr_type->isa_aryptr()) { + if ((access.decorators() & IN_NATIVE) == 0 && (adr_type->isa_instptr() || adr_type->isa_aryptr())) { int off = adr_type->is_ptr()->offset(); int base_off = adr_type->isa_instptr() ? instanceOopDesc::base_offset_in_bytes() : arrayOopDesc::base_offset_in_bytes(adr_type->is_aryptr()->elem()->array_element_basic_type()); From shade at redhat.com Mon Sep 3 09:08:33 2018 From: shade at redhat.com (Aleksey Shipilev) Date: Mon, 3 Sep 2018 11:08:33 +0200 Subject: RFR: Enable ShenandoahEvacReserveOverflow by default Message-ID: <3027fbf3-1f16-2cae-aa90-007ee35fb459@redhat.com> Some of weekend tests feel much better with evac-reserve overflows allowed. Let's make that the default: diff -r f8f9c1f0f62b src/hotspot/share/gc/shenandoah/shenandoah_globals.hpp --- a/src/hotspot/share/gc/shenandoah/shenandoah_globals.hpp Sat Sep 01 17:09:56 2018 +0200 +++ b/src/hotspot/share/gc/shenandoah/shenandoah_globals.hpp Mon Sep 03 11:07:17 2018 +0200 @@ -202,10 +202,9 @@ range(1,100) \ \ - experimental(bool, ShenandoahEvacReserveOverflow, false, \ + experimental(bool, ShenandoahEvacReserveOverflow, true, \ "Allow evacuations to overflow the reserved space. " \ "Enabling it will make evacuations more resilient when " \ "evacuation reserve/waste is incorrect, at the risk that " \ - "application allocations run out of memory too early. " \ - "This is safe to enable when pacing is disabled.") \ + "application allocations run out of memory too early.") \ \ experimental(uintx, ShenandoahImmediateThreshold, 90, \ Testing: tier1_gc_shenandoah, ad-hoc benchmarks Thanks, -Aleksey From rkennke at redhat.com Mon Sep 3 09:13:04 2018 From: rkennke at redhat.com (Roman Kennke) Date: Mon, 03 Sep 2018 11:13:04 +0200 Subject: RFR: Enable ShenandoahEvacReserveOverflow by default In-Reply-To: <3027fbf3-1f16-2cae-aa90-007ee35fb459@redhat.com> References: <3027fbf3-1f16-2cae-aa90-007ee35fb459@redhat.com> Message-ID: <2A156C48-3A57-4DAC-96F1-108273EEE1C2@redhat.com> Yes that makes sense. Thanks! Roman Am 3. September 2018 11:08:33 MESZ schrieb Aleksey Shipilev : >Some of weekend tests feel much better with evac-reserve overflows >allowed. Let's make that the default: > >diff -r f8f9c1f0f62b >src/hotspot/share/gc/shenandoah/shenandoah_globals.hpp >--- a/src/hotspot/share/gc/shenandoah/shenandoah_globals.hpp Sat Sep >01 17:09:56 2018 +0200 >+++ b/src/hotspot/share/gc/shenandoah/shenandoah_globals.hpp Mon Sep >03 11:07:17 2018 +0200 >@@ -202,10 +202,9 @@ > range(1,100) \ > \ >- experimental(bool, ShenandoahEvacReserveOverflow, false, > \ >+ experimental(bool, ShenandoahEvacReserveOverflow, true, > \ > "Allow evacuations to overflow the reserved space. " \ > "Enabling it will make evacuations more resilient when " \ > "evacuation reserve/waste is incorrect, at the risk that " \ >- "application allocations run out of memory too early. " > \ >- "This is safe to enable when pacing is disabled.") > \ >+ "application allocations run out of memory too early.") > \ > \ >experimental(uintx, ShenandoahImmediateThreshold, 90, > \ > >Testing: tier1_gc_shenandoah, ad-hoc benchmarks > >Thanks, >-Aleksey From shade at redhat.com Mon Sep 3 09:27:53 2018 From: shade at redhat.com (shade at redhat.com) Date: Mon, 03 Sep 2018 09:27:53 +0000 Subject: hg: shenandoah/jdk: Enable ShenandoahEvacReserveOverflow by default Message-ID: <201809030927.w839RrDH015057@aojmv0008.oracle.com> Changeset: cdb059336439 Author: shade Date: 2018-09-03 11:27 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/cdb059336439 Enable ShenandoahEvacReserveOverflow by default ! src/hotspot/share/gc/shenandoah/shenandoah_globals.hpp From rwestrel at redhat.com Mon Sep 3 15:17:17 2018 From: rwestrel at redhat.com (Roland Westrelin) Date: Mon, 03 Sep 2018 17:17:17 +0200 Subject: RFR: gc interface tweaks In-Reply-To: References: <5bc26cf3-2285-37cc-960e-645c9210d268@redhat.com> Message-ID: > Thanks for testing it. An upstream change that was brought in with the > last merge broke my patch. Tentative fix below. I'll run full tier3 > later today. Testing passed. I'm pushing it. Roland. From shade at redhat.com Mon Sep 3 15:21:21 2018 From: shade at redhat.com (Aleksey Shipilev) Date: Mon, 3 Sep 2018 17:21:21 +0200 Subject: RFR: gc interface tweaks In-Reply-To: References: <5bc26cf3-2285-37cc-960e-645c9210d268@redhat.com> Message-ID: <7fc9343f-ebf3-6ca2-6b9c-e81035256c19@redhat.com> On 09/03/2018 05:17 PM, Roland Westrelin wrote: >> Thanks for testing it. An upstream change that was brought in with the >> last merge broke my patch. Tentative fix below. I'll run full tier3 >> later today. > > Testing passed. I'm pushing it. Yup, sh/jdk looks stable and clear to push to. -Aleksey From rwestrel at redhat.com Mon Sep 3 15:22:30 2018 From: rwestrel at redhat.com (rwestrel at redhat.com) Date: Mon, 03 Sep 2018 15:22:30 +0000 Subject: hg: shenandoah/jdk: GC interface update for arraycopy + barriers in ShenandoahBarrierSetC2::resolve_address() + some dead code removal Message-ID: <201809031522.w83FMUop003538@aojmv0008.oracle.com> Changeset: 9eb4f8a923b8 Author: roland Date: 2018-09-03 17:06 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/9eb4f8a923b8 GC interface update for arraycopy + barriers in ShenandoahBarrierSetC2::resolve_address() + some dead code removal ! src/hotspot/share/gc/shared/c2/barrierSetC2.hpp ! src/hotspot/share/gc/shared/c2/cardTableBarrierSetC2.cpp ! src/hotspot/share/gc/shared/c2/cardTableBarrierSetC2.hpp ! src/hotspot/share/gc/shenandoah/c2/shenandoahBarrierSetC2.cpp ! src/hotspot/share/gc/shenandoah/c2/shenandoahBarrierSetC2.hpp ! src/hotspot/share/gc/z/c2/zBarrierSetC2.hpp ! src/hotspot/share/opto/arraycopynode.cpp ! src/hotspot/share/opto/cfgnode.cpp ! src/hotspot/share/opto/graphKit.cpp ! src/hotspot/share/opto/graphKit.hpp ! src/hotspot/share/opto/library_call.cpp ! src/hotspot/share/opto/macro.cpp ! src/hotspot/share/opto/macroArrayCopy.cpp ! src/hotspot/share/opto/memnode.cpp ! src/hotspot/share/opto/parse2.cpp ! src/hotspot/share/opto/parse3.cpp ! src/hotspot/share/opto/stringopts.cpp ! src/hotspot/share/opto/subnode.cpp From shade at redhat.com Mon Sep 3 15:46:11 2018 From: shade at redhat.com (Aleksey Shipilev) Date: Mon, 3 Sep 2018 17:46:11 +0200 Subject: RFR [11], 2018-09-03, Bulk backports to sh/jdk11 Message-ID: <4f2d17d5-8a9a-1d5c-62e5-e05bcd05d048@redhat.com> http://cr.openjdk.java.net/~shade/shenandoah/backports/jdk11-20180903/webrev.01/ This backports recent work to sh/jdk11: [backport] GC trace messages have to be immortal [backport] Wiring GC events to JFR + Restore heap occupancy in GC logs after JFR changes [backport] Remove obsolete/unused logging usages [backport] Replace custom asserts with shenandoah_assert_* [backport] Wiring heap and metaspace info to JFR [backport] Out-of-cycle Degenerated GC should process references and unload classes [backport] Two Shenandoah .cpp files miss PCH include [backport] Off-by-one error in degen progress calculation [backport] Check oop before pushing on Traversal queue [backport] Only Java and GC worker threads should get GCLABs [backport] Remove unused base_obj handling from closures and concurrent mark code [backport] Move ParallelCodeIterator to ShenandoahCodeRoots [backport] Evac reserve: make sure GC has untouchable space to move the objects into [backport] Refactor FreeSet logging: support evac-reserve, denser printouts [backport] Enable ShenandoahEvacReserveOverflow by default Testing: tier3_gc_shenandoah {fastdebug|release} Thanks, -Aleksey From shade at redhat.com Mon Sep 3 15:46:21 2018 From: shade at redhat.com (Aleksey Shipilev) Date: Mon, 3 Sep 2018 17:46:21 +0200 Subject: RFR [10], 2018-09-03, Bulk backports to sh/jdk10 Message-ID: http://cr.openjdk.java.net/~shade/shenandoah/backports/jdk10-20180903/webrev.01/ This backports recent work to sh/jdk10: [backport] GC trace messages have to be immortal [backport] Wiring GC events to JFR + Restore heap occupancy in GC logs after JFR changes [backport] Remove obsolete/unused logging usages [backport] Replace custom asserts with shenandoah_assert_* [backport] Wiring heap and metaspace info to JFR [backport] Out-of-cycle Degenerated GC should process references and unload classes [backport] Off-by-one error in degen progress calculation [backport] Check oop before pushing on Traversal queue [backport] Only Java and GC worker threads should get GCLABs [backport] Remove unused base_obj handling from closures and concurrent mark code [backport] Move ParallelCodeIterator to ShenandoahCodeRoots [backport] Evac reserve: make sure GC has untouchable space to move the objects into [backport] Refactor FreeSet logging: support evac-reserve, denser printouts [backport] Enable ShenandoahEvacReserveOverflow by default Testing: tier3_gc_shenandoah {fastdebug|release} Thanks, -Aleksey From shade at redhat.com Mon Sep 3 15:46:27 2018 From: shade at redhat.com (Aleksey Shipilev) Date: Mon, 3 Sep 2018 17:46:27 +0200 Subject: RFR [8], 2018-09-03, Bulk backports to sh/jdk8 Message-ID: <0a1936d5-de6d-8b87-da5e-d267f4d77231@redhat.com> http://cr.openjdk.java.net/~shade/shenandoah/backports/jdk8u-20180903/webrev.01/ This backports recent work to sh/jdk8: [backport] GC trace messages have to be immortal [backport] Wiring GC events to JFR + Restore heap occupancy in GC logs after JFR changes [backport] Remove obsolete/unused logging usages [backport] Replace custom asserts with shenandoah_assert_* [backport] Wiring heap and metaspace info to JFR [backport] Out-of-cycle Degenerated GC should process references and unload classes [backport] Off-by-one error in degen progress calculation [backport] Only Java and GC worker threads should get GCLABs [backport] Move ParallelCodeIterator to ShenandoahCodeRoots [backport] Evac reserve: make sure GC has untouchable space to move the objects into [backport] Refactor FreeSet logging: support evac-reserve, denser printouts [backport] Enable ShenandoahEvacReserveOverflow by default Testing: hotspot_tier3_gc_shenandoah {fastdebug|release} Thanks, -Aleksey From shade at redhat.com Mon Sep 3 17:31:03 2018 From: shade at redhat.com (Aleksey Shipilev) Date: Mon, 3 Sep 2018 19:31:03 +0200 Subject: RFR: Soft refs should be purged reliably on allocation failure, or with compact heuristics Message-ID: <974b53c0-549a-a454-685c-9465296f9d2e@redhat.com> http://cr.openjdk.java.net/~shade/shenandoah/softrefs-trigger/webrev.01/ Have been following up on the question from Simon: why Full GC cleans up several times more heap than degenerated or normal cycle? My gut feeling was about soft-references, and experiments confirmed it. But, this led me to discover our soft ref policy needs reliability fixes. This patch does them: we purge soft refs on allocation failure, and some heuristics (compact) do that unconditionally. Testing: IDEA with sh/jdk8 and this patch beckported, tier3_gc_shenandoah (running) Thanks, -Aleksey From rkennke at redhat.com Mon Sep 3 18:01:12 2018 From: rkennke at redhat.com (Roman Kennke) Date: Mon, 3 Sep 2018 20:01:12 +0200 Subject: RFR: Soft refs should be purged reliably on allocation failure, or with compact heuristics In-Reply-To: <974b53c0-549a-a454-685c-9465296f9d2e@redhat.com> References: <974b53c0-549a-a454-685c-9465296f9d2e@redhat.com> Message-ID: Am 03.09.2018 um 19:31 schrieb Aleksey Shipilev: > http://cr.openjdk.java.net/~shade/shenandoah/softrefs-trigger/webrev.01/ > > Have been following up on the question from Simon: why Full GC cleans up several times more heap > than degenerated or normal cycle? My gut feeling was about soft-references, and experiments > confirmed it. But, this led me to discover our soft ref policy needs reliability fixes. This patch > does them: we purge soft refs on allocation failure, and some heuristics (compact) do that > unconditionally. > > Testing: IDEA with sh/jdk8 and this patch beckported, tier3_gc_shenandoah (running) > > Thanks, > -Aleksey > Good. Thanks! Roman From rkennke at redhat.com Mon Sep 3 18:02:31 2018 From: rkennke at redhat.com (Roman Kennke) Date: Mon, 3 Sep 2018 20:02:31 +0200 Subject: RFR [11], 2018-09-03, Bulk backports to sh/jdk11 In-Reply-To: <4f2d17d5-8a9a-1d5c-62e5-e05bcd05d048@redhat.com> References: <4f2d17d5-8a9a-1d5c-62e5-e05bcd05d048@redhat.com> Message-ID: > http://cr.openjdk.java.net/~shade/shenandoah/backports/jdk11-20180903/webrev.01/ > > This backports recent work to sh/jdk11: > > [backport] GC trace messages have to be immortal > [backport] Wiring GC events to JFR + Restore heap occupancy in GC logs after JFR changes > [backport] Remove obsolete/unused logging usages > [backport] Replace custom asserts with shenandoah_assert_* > [backport] Wiring heap and metaspace info to JFR > [backport] Out-of-cycle Degenerated GC should process references and unload classes > [backport] Two Shenandoah .cpp files miss PCH include > [backport] Off-by-one error in degen progress calculation > [backport] Check oop before pushing on Traversal queue > [backport] Only Java and GC worker threads should get GCLABs > [backport] Remove unused base_obj handling from closures and concurrent mark code > [backport] Move ParallelCodeIterator to ShenandoahCodeRoots > [backport] Evac reserve: make sure GC has untouchable space to move the objects into > [backport] Refactor FreeSet logging: support evac-reserve, denser printouts > [backport] Enable ShenandoahEvacReserveOverflow by default > > Testing: tier3_gc_shenandoah {fastdebug|release} > > Thanks, > -Aleksey Yes, very good! Thanks! Roman From rkennke at redhat.com Mon Sep 3 18:04:14 2018 From: rkennke at redhat.com (Roman Kennke) Date: Mon, 3 Sep 2018 20:04:14 +0200 Subject: RFR [10], 2018-09-03, Bulk backports to sh/jdk10 In-Reply-To: References: Message-ID: > http://cr.openjdk.java.net/~shade/shenandoah/backports/jdk10-20180903/webrev.01/ > > This backports recent work to sh/jdk10: > > [backport] GC trace messages have to be immortal > [backport] Wiring GC events to JFR + Restore heap occupancy in GC logs after JFR changes > [backport] Remove obsolete/unused logging usages > [backport] Replace custom asserts with shenandoah_assert_* > [backport] Wiring heap and metaspace info to JFR > [backport] Out-of-cycle Degenerated GC should process references and unload classes > [backport] Off-by-one error in degen progress calculation > [backport] Check oop before pushing on Traversal queue > [backport] Only Java and GC worker threads should get GCLABs > [backport] Remove unused base_obj handling from closures and concurrent mark code > [backport] Move ParallelCodeIterator to ShenandoahCodeRoots > [backport] Evac reserve: make sure GC has untouchable space to move the objects into > [backport] Refactor FreeSet logging: support evac-reserve, denser printouts > [backport] Enable ShenandoahEvacReserveOverflow by default > > Testing: tier3_gc_shenandoah {fastdebug|release} > > Thanks, > -Aleksey > Very good, thank you! Roman From rkennke at redhat.com Mon Sep 3 18:05:09 2018 From: rkennke at redhat.com (Roman Kennke) Date: Mon, 3 Sep 2018 20:05:09 +0200 Subject: RFR [8], 2018-09-03, Bulk backports to sh/jdk8 In-Reply-To: <0a1936d5-de6d-8b87-da5e-d267f4d77231@redhat.com> References: <0a1936d5-de6d-8b87-da5e-d267f4d77231@redhat.com> Message-ID: <05cb6e10-05e5-162f-63e3-0acb244d42ef@redhat.com> > http://cr.openjdk.java.net/~shade/shenandoah/backports/jdk8u-20180903/webrev.01/ > > This backports recent work to sh/jdk8: > > [backport] GC trace messages have to be immortal > [backport] Wiring GC events to JFR + Restore heap occupancy in GC logs after JFR changes > [backport] Remove obsolete/unused logging usages > [backport] Replace custom asserts with shenandoah_assert_* > [backport] Wiring heap and metaspace info to JFR > [backport] Out-of-cycle Degenerated GC should process references and unload classes > [backport] Off-by-one error in degen progress calculation > [backport] Only Java and GC worker threads should get GCLABs > [backport] Move ParallelCodeIterator to ShenandoahCodeRoots > [backport] Evac reserve: make sure GC has untouchable space to move the objects into > [backport] Refactor FreeSet logging: support evac-reserve, denser printouts > [backport] Enable ShenandoahEvacReserveOverflow by default > > Testing: hotspot_tier3_gc_shenandoah {fastdebug|release} > > Thanks, > -Aleksey Very good, thank you! Roman From shade at redhat.com Mon Sep 3 18:14:08 2018 From: shade at redhat.com (shade at redhat.com) Date: Mon, 03 Sep 2018 18:14:08 +0000 Subject: hg: shenandoah/jdk11: 15 new changesets Message-ID: <201809031814.w83IEAtK000829@aojmv0008.oracle.com> Changeset: 1ba2a9a34164 Author: zgu Date: 2018-08-27 09:55 -0400 URL: http://hg.openjdk.java.net/shenandoah/jdk11/rev/1ba2a9a34164 [backport] GC trace messages have to be immortal ! src/hotspot/share/gc/shenandoah/shenandoahHeap.cpp ! src/hotspot/share/gc/shenandoah/shenandoahHeap.hpp Changeset: e3fafa14c74d Author: zgu Date: 2018-08-27 12:51 -0400 URL: http://hg.openjdk.java.net/shenandoah/jdk11/rev/e3fafa14c74d [backport] Wiring GC events to JFR + Restore heap occupancy in GC logs after JFR changes ! src/hotspot/share/gc/shared/gcConfiguration.cpp ! src/hotspot/share/gc/shenandoah/shenandoahControlThread.cpp ! src/hotspot/share/gc/shenandoah/shenandoahHeap.cpp ! src/hotspot/share/gc/shenandoah/shenandoahHeap.hpp ! src/hotspot/share/gc/shenandoah/shenandoahUtils.cpp ! src/hotspot/share/gc/shenandoah/shenandoahUtils.hpp Changeset: ace9ce847094 Author: shade Date: 2018-08-27 18:57 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk11/rev/ace9ce847094 [backport] Remove obsolete/unused logging usages ! src/hotspot/share/gc/shenandoah/shenandoahConcurrentMark.cpp ! src/hotspot/share/gc/shenandoah/shenandoahControlThread.cpp ! src/hotspot/share/gc/shenandoah/shenandoahHeap.cpp ! src/hotspot/share/gc/shenandoah/shenandoahHeap.inline.hpp ! src/hotspot/share/gc/shenandoah/shenandoahTraversalGC.cpp Changeset: 8e1be7ce3c9d Author: shade Date: 2018-08-27 18:57 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk11/rev/8e1be7ce3c9d [backport] Replace custom asserts with shenandoah_assert_* ! src/hotspot/share/gc/shenandoah/shenandoahAsserts.cpp ! src/hotspot/share/gc/shenandoah/shenandoahAsserts.hpp ! src/hotspot/share/gc/shenandoah/shenandoahBarrierSet.cpp ! src/hotspot/share/gc/shenandoah/shenandoahCodeRoots.cpp ! src/hotspot/share/gc/shenandoah/shenandoahHeap.inline.hpp ! src/hotspot/share/gc/shenandoah/shenandoahHeapRegion.cpp ! src/hotspot/share/gc/shenandoah/shenandoahRuntime.cpp ! src/hotspot/share/gc/shenandoah/shenandoahStrDedupQueue.cpp ! src/hotspot/share/gc/shenandoah/shenandoahTraversalGC.inline.hpp Changeset: d59038949992 Author: zgu Date: 2018-08-28 07:58 -0400 URL: http://hg.openjdk.java.net/shenandoah/jdk11/rev/d59038949992 [backport] Wiring heap and metaspace info to JFR ! src/hotspot/share/gc/shenandoah/shenandoahHeap.hpp ! src/hotspot/share/gc/shenandoah/shenandoahUtils.cpp Changeset: 01bfd7ab2f4f Author: shade Date: 2018-08-29 10:09 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk11/rev/01bfd7ab2f4f [backport] Out-of-cycle Degenerated GC should process references and unload classes ! src/hotspot/share/gc/shenandoah/shenandoahHeap.cpp Changeset: e99b2314d375 Author: shade Date: 2018-08-31 10:03 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk11/rev/e99b2314d375 [backport] Two Shenandoah .cpp files miss PCH include ! src/hotspot/share/gc/shenandoah/c1/shenandoahBarrierSetC1.cpp ! src/hotspot/share/gc/shenandoah/c2/shenandoahBarrierSetC2.cpp Changeset: 32d821f6a11e Author: shade Date: 2018-08-31 10:14 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk11/rev/32d821f6a11e [backport] Off-by-one error in degen progress calculation ! src/hotspot/share/gc/shenandoah/shenandoahMetrics.cpp Changeset: 5c1807e0d19f Author: shade Date: 2018-08-31 16:40 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk11/rev/5c1807e0d19f [backport] Check oop before pushing on Traversal queue ! src/hotspot/share/gc/shenandoah/shenandoahTraversalGC.inline.hpp Changeset: 256559c46b6d Author: shade Date: 2018-08-31 16:40 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk11/rev/256559c46b6d [backport] Only Java and GC worker threads should get GCLABs ! src/hotspot/share/gc/shenandoah/shenandoahHeap.cpp ! src/hotspot/share/gc/shenandoah/shenandoahThreadLocalData.hpp Changeset: e6aa88479942 Author: shade Date: 2018-08-31 20:59 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk11/rev/e6aa88479942 [backport] Remove unused base_obj handling from closures and concurrent mark code ! src/hotspot/share/gc/shenandoah/shenandoahConcurrentMark.inline.hpp ! src/hotspot/share/gc/shenandoah/shenandoahOopClosures.hpp ! src/hotspot/share/gc/shenandoah/shenandoahOopClosures.inline.hpp ! src/hotspot/share/gc/shenandoah/shenandoahTraversalGC.cpp ! src/hotspot/share/gc/shenandoah/shenandoahTraversalGC.hpp ! src/hotspot/share/gc/shenandoah/shenandoahTraversalGC.inline.hpp Changeset: d97348539beb Author: shade Date: 2018-09-01 12:26 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk11/rev/d97348539beb [backport] Move ParallelCodeIterator to ShenandoahCodeRoots ! src/hotspot/share/code/codeCache.cpp ! src/hotspot/share/code/codeCache.hpp ! src/hotspot/share/gc/shenandoah/shenandoahCodeRoots.cpp ! src/hotspot/share/gc/shenandoah/shenandoahCodeRoots.hpp Changeset: 1ba92ee2367f Author: shade Date: 2018-09-01 17:09 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk11/rev/1ba92ee2367f [backport] Evac reserve: make sure GC has untouchable space to move the objects into ! src/hotspot/share/gc/shenandoah/heuristics/shenandoahAdaptiveHeuristics.cpp ! src/hotspot/share/gc/shenandoah/heuristics/shenandoahAggressiveHeuristics.cpp ! src/hotspot/share/gc/shenandoah/heuristics/shenandoahPassiveHeuristics.cpp ! src/hotspot/share/gc/shenandoah/heuristics/shenandoahTraversalHeuristics.cpp ! src/hotspot/share/gc/shenandoah/shenandoahFreeSet.cpp ! src/hotspot/share/gc/shenandoah/shenandoahFreeSet.hpp ! src/hotspot/share/gc/shenandoah/shenandoahHeap.cpp ! src/hotspot/share/gc/shenandoah/shenandoahHeap.hpp ! src/hotspot/share/gc/shenandoah/shenandoahPacer.cpp ! src/hotspot/share/gc/shenandoah/shenandoah_globals.hpp Changeset: 571e4ae44f03 Author: shade Date: 2018-09-01 17:09 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk11/rev/571e4ae44f03 [backport] Refactor FreeSet logging: support evac-reserve, denser printouts ! src/hotspot/share/gc/shenandoah/shenandoahControlThread.cpp ! src/hotspot/share/gc/shenandoah/shenandoahFreeSet.cpp ! src/hotspot/share/gc/shenandoah/shenandoahFreeSet.hpp Changeset: f8e4002cba52 Author: shade Date: 2018-09-03 11:27 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk11/rev/f8e4002cba52 [backport] Enable ShenandoahEvacReserveOverflow by default ! src/hotspot/share/gc/shenandoah/shenandoah_globals.hpp From shade at redhat.com Mon Sep 3 18:14:36 2018 From: shade at redhat.com (shade at redhat.com) Date: Mon, 03 Sep 2018 18:14:36 +0000 Subject: hg: shenandoah/jdk10: 14 new changesets Message-ID: <201809031814.w83IEc1X001022@aojmv0008.oracle.com> Changeset: 06c002d3dcb3 Author: zgu Date: 2018-08-27 09:55 -0400 URL: http://hg.openjdk.java.net/shenandoah/jdk10/rev/06c002d3dcb3 [backport] GC trace messages have to be immortal ! src/hotspot/share/gc/shenandoah/shenandoahHeap.cpp ! src/hotspot/share/gc/shenandoah/shenandoahHeap.hpp Changeset: 66003256e8d7 Author: zgu Date: 2018-08-27 12:51 -0400 URL: http://hg.openjdk.java.net/shenandoah/jdk10/rev/66003256e8d7 [backport] Wiring GC events to JFR + Restore heap occupancy in GC logs after JFR changes ! src/hotspot/share/gc/shenandoah/shenandoahControlThread.cpp ! src/hotspot/share/gc/shenandoah/shenandoahHeap.cpp ! src/hotspot/share/gc/shenandoah/shenandoahHeap.hpp ! src/hotspot/share/gc/shenandoah/shenandoahUtils.cpp ! src/hotspot/share/gc/shenandoah/shenandoahUtils.hpp Changeset: 4a7df033fd24 Author: shade Date: 2018-08-27 18:57 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk10/rev/4a7df033fd24 [backport] Remove obsolete/unused logging usages ! src/hotspot/share/gc/shenandoah/shenandoahConcurrentMark.cpp ! src/hotspot/share/gc/shenandoah/shenandoahControlThread.cpp ! src/hotspot/share/gc/shenandoah/shenandoahHeap.cpp ! src/hotspot/share/gc/shenandoah/shenandoahHeap.inline.hpp ! src/hotspot/share/gc/shenandoah/shenandoahTraversalGC.cpp Changeset: 8a44b221a6a5 Author: shade Date: 2018-08-27 18:57 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk10/rev/8a44b221a6a5 [backport] Replace custom asserts with shenandoah_assert_* ! src/hotspot/share/gc/shenandoah/shenandoahAsserts.cpp ! src/hotspot/share/gc/shenandoah/shenandoahAsserts.hpp ! src/hotspot/share/gc/shenandoah/shenandoahBarrierSet.cpp ! src/hotspot/share/gc/shenandoah/shenandoahCodeRoots.cpp ! src/hotspot/share/gc/shenandoah/shenandoahHeap.inline.hpp ! src/hotspot/share/gc/shenandoah/shenandoahHeapRegion.cpp ! src/hotspot/share/gc/shenandoah/shenandoahTraversalGC.inline.hpp Changeset: b71192c14c87 Author: zgu Date: 2018-08-28 07:58 -0400 URL: http://hg.openjdk.java.net/shenandoah/jdk10/rev/b71192c14c87 [backport] Wiring heap and metaspace info to JFR ! src/hotspot/share/gc/shenandoah/shenandoahHeap.hpp ! src/hotspot/share/gc/shenandoah/shenandoahUtils.cpp Changeset: 30387f2e726c Author: shade Date: 2018-08-29 10:09 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk10/rev/30387f2e726c [backport] Out-of-cycle Degenerated GC should process references and unload classes ! src/hotspot/share/gc/shenandoah/shenandoahHeap.cpp Changeset: 03118425e722 Author: shade Date: 2018-08-31 10:14 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk10/rev/03118425e722 [backport] Off-by-one error in degen progress calculation ! src/hotspot/share/gc/shenandoah/shenandoahMetrics.cpp Changeset: aff1d86b0af5 Author: shade Date: 2018-08-31 16:40 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk10/rev/aff1d86b0af5 [backport] Check oop before pushing on Traversal queue ! src/hotspot/share/gc/shenandoah/shenandoahTraversalGC.inline.hpp Changeset: 5048cf13e405 Author: shade Date: 2018-08-31 16:40 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk10/rev/5048cf13e405 [backport] Only Java and GC worker threads should get GCLABs ! src/hotspot/share/gc/shenandoah/shenandoahHeap.cpp Changeset: 09741d8d598c Author: shade Date: 2018-08-31 20:59 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk10/rev/09741d8d598c [backport] Remove unused base_obj handling from closures and concurrent mark code ! src/hotspot/share/gc/shenandoah/shenandoahConcurrentMark.inline.hpp ! src/hotspot/share/gc/shenandoah/shenandoahOopClosures.hpp ! src/hotspot/share/gc/shenandoah/shenandoahOopClosures.inline.hpp ! src/hotspot/share/gc/shenandoah/shenandoahTraversalGC.cpp ! src/hotspot/share/gc/shenandoah/shenandoahTraversalGC.hpp ! src/hotspot/share/gc/shenandoah/shenandoahTraversalGC.inline.hpp Changeset: db82d11a9293 Author: shade Date: 2018-09-01 12:26 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk10/rev/db82d11a9293 [backport] Move ParallelCodeIterator to ShenandoahCodeRoots ! src/hotspot/share/code/codeCache.cpp ! src/hotspot/share/code/codeCache.hpp ! src/hotspot/share/gc/shenandoah/shenandoahCodeRoots.cpp ! src/hotspot/share/gc/shenandoah/shenandoahCodeRoots.hpp Changeset: cc9414b146fa Author: shade Date: 2018-09-01 17:09 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk10/rev/cc9414b146fa [backport] Evac reserve: make sure GC has untouchable space to move the objects into ! src/hotspot/share/gc/shenandoah/heuristics/shenandoahAdaptiveHeuristics.cpp ! src/hotspot/share/gc/shenandoah/heuristics/shenandoahAggressiveHeuristics.cpp ! src/hotspot/share/gc/shenandoah/heuristics/shenandoahPassiveHeuristics.cpp ! src/hotspot/share/gc/shenandoah/heuristics/shenandoahTraversalHeuristics.cpp ! src/hotspot/share/gc/shenandoah/shenandoahFreeSet.cpp ! src/hotspot/share/gc/shenandoah/shenandoahFreeSet.hpp ! src/hotspot/share/gc/shenandoah/shenandoahHeap.cpp ! src/hotspot/share/gc/shenandoah/shenandoahHeap.hpp ! src/hotspot/share/gc/shenandoah/shenandoahPacer.cpp ! src/hotspot/share/gc/shenandoah/shenandoah_globals.hpp Changeset: 28a53897e8e6 Author: shade Date: 2018-09-01 17:09 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk10/rev/28a53897e8e6 [backport] Refactor FreeSet logging: support evac-reserve, denser printouts ! src/hotspot/share/gc/shenandoah/shenandoahControlThread.cpp ! src/hotspot/share/gc/shenandoah/shenandoahFreeSet.cpp ! src/hotspot/share/gc/shenandoah/shenandoahFreeSet.hpp Changeset: c2cd8521343d Author: shade Date: 2018-09-03 11:27 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk10/rev/c2cd8521343d [backport] Enable ShenandoahEvacReserveOverflow by default ! src/hotspot/share/gc/shenandoah/shenandoah_globals.hpp From shade at redhat.com Mon Sep 3 18:15:36 2018 From: shade at redhat.com (shade at redhat.com) Date: Mon, 03 Sep 2018 18:15:36 +0000 Subject: hg: shenandoah/jdk8u/hotspot: 12 new changesets Message-ID: <201809031815.w83IFaWH001419@aojmv0008.oracle.com> Changeset: 61dd590a1f48 Author: zgu Date: 2018-08-27 09:55 -0400 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/hotspot/rev/61dd590a1f48 [backport] GC trace messages have to be immortal ! src/share/vm/gc_implementation/shenandoah/shenandoahHeap.cpp ! src/share/vm/gc_implementation/shenandoah/shenandoahHeap.hpp Changeset: b702a643f19d Author: zgu Date: 2018-08-27 12:51 -0400 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/hotspot/rev/b702a643f19d [backport] Wiring GC events to JFR + Restore heap occupancy in GC logs after JFR changes ! src/share/vm/gc_implementation/shenandoah/shenandoahControlThread.cpp ! src/share/vm/gc_implementation/shenandoah/shenandoahHeap.cpp ! src/share/vm/gc_implementation/shenandoah/shenandoahUtils.cpp ! src/share/vm/gc_implementation/shenandoah/shenandoahUtils.hpp Changeset: 0b5fba86351c Author: shade Date: 2018-08-27 18:57 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/hotspot/rev/0b5fba86351c [backport] Remove obsolete/unused logging usages ! src/share/vm/gc_implementation/shenandoah/shenandoahConcurrentMark.cpp ! src/share/vm/gc_implementation/shenandoah/shenandoahControlThread.cpp ! src/share/vm/gc_implementation/shenandoah/shenandoahHeap.cpp ! src/share/vm/gc_implementation/shenandoah/shenandoahHeap.inline.hpp Changeset: 8c8753e3e86c Author: shade Date: 2018-08-27 18:57 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/hotspot/rev/8c8753e3e86c [backport] Replace custom asserts with shenandoah_assert_* ! src/share/vm/gc_implementation/shenandoah/shenandoahAsserts.cpp ! src/share/vm/gc_implementation/shenandoah/shenandoahAsserts.hpp ! src/share/vm/gc_implementation/shenandoah/shenandoahBarrierSet.cpp ! src/share/vm/gc_implementation/shenandoah/shenandoahCodeRoots.cpp ! src/share/vm/gc_implementation/shenandoah/shenandoahHeap.inline.hpp ! src/share/vm/gc_implementation/shenandoah/shenandoahHeapRegion.cpp Changeset: 0fc6ac9bdc55 Author: zgu Date: 2018-08-28 07:58 -0400 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/hotspot/rev/0fc6ac9bdc55 [backport] Wiring heap and metaspace info to JFR ! src/share/vm/gc_implementation/shenandoah/shenandoahHeap.hpp ! src/share/vm/gc_implementation/shenandoah/shenandoahUtils.cpp Changeset: f23878443ad6 Author: shade Date: 2018-08-29 10:09 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/hotspot/rev/f23878443ad6 [backport] Out-of-cycle Degenerated GC should process references and unload classes ! src/share/vm/gc_implementation/shenandoah/shenandoahHeap.cpp Changeset: e55572f84552 Author: shade Date: 2018-08-31 10:14 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/hotspot/rev/e55572f84552 [backport] Off-by-one error in degen progress calculation ! src/share/vm/gc_implementation/shenandoah/shenandoahMetrics.cpp Changeset: 5d15240de6a9 Author: shade Date: 2018-08-31 16:40 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/hotspot/rev/5d15240de6a9 [backport] Only Java and GC worker threads should get GCLABs ! src/share/vm/gc_implementation/shenandoah/shenandoahHeap.cpp ! src/share/vm/memory/threadLocalAllocBuffer.cpp ! src/share/vm/runtime/thread.hpp Changeset: ce0f1def049f Author: shade Date: 2018-09-01 12:26 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/hotspot/rev/ce0f1def049f [backport] Move ParallelCodeIterator to ShenandoahCodeRoots ! src/share/vm/code/codeCache.cpp ! src/share/vm/code/codeCache.hpp ! src/share/vm/gc_implementation/shenandoah/shenandoahCodeRoots.cpp ! src/share/vm/gc_implementation/shenandoah/shenandoahCodeRoots.hpp Changeset: 535a504083ec Author: shade Date: 2018-09-01 17:09 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/hotspot/rev/535a504083ec [backport] Evac reserve: make sure GC has untouchable space to move the objects into ! src/share/vm/gc_implementation/shenandoah/heuristics/shenandoahAdaptiveHeuristics.cpp ! src/share/vm/gc_implementation/shenandoah/heuristics/shenandoahAggressiveHeuristics.cpp ! src/share/vm/gc_implementation/shenandoah/heuristics/shenandoahPassiveHeuristics.cpp ! src/share/vm/gc_implementation/shenandoah/shenandoahFreeSet.cpp ! src/share/vm/gc_implementation/shenandoah/shenandoahFreeSet.hpp ! src/share/vm/gc_implementation/shenandoah/shenandoahHeap.cpp ! src/share/vm/gc_implementation/shenandoah/shenandoahHeap.hpp ! src/share/vm/gc_implementation/shenandoah/shenandoahPacer.cpp ! src/share/vm/gc_implementation/shenandoah/shenandoah_globals.hpp Changeset: 62ab9b8c5ca2 Author: shade Date: 2018-09-01 17:09 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/hotspot/rev/62ab9b8c5ca2 [backport] Refactor FreeSet logging: support evac-reserve, denser printouts ! src/share/vm/gc_implementation/shenandoah/shenandoahControlThread.cpp ! src/share/vm/gc_implementation/shenandoah/shenandoahFreeSet.cpp ! src/share/vm/gc_implementation/shenandoah/shenandoahFreeSet.hpp Changeset: e44aaa62999b Author: shade Date: 2018-09-03 11:27 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/hotspot/rev/e44aaa62999b [backport] Enable ShenandoahEvacReserveOverflow by default ! src/share/vm/gc_implementation/shenandoah/shenandoah_globals.hpp From shade at redhat.com Mon Sep 3 18:24:47 2018 From: shade at redhat.com (shade at redhat.com) Date: Mon, 03 Sep 2018 18:24:47 +0000 Subject: hg: shenandoah/jdk: Soft refs should be purged reliably on allocation failure, or with compact heuristics Message-ID: <201809031824.w83IOlGF003822@aojmv0008.oracle.com> Changeset: 45f34336b1cb Author: shade Date: 2018-09-03 20:24 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/45f34336b1cb Soft refs should be purged reliably on allocation failure, or with compact heuristics ! src/hotspot/share/gc/shenandoah/heuristics/shenandoahCompactHeuristics.cpp ! src/hotspot/share/gc/shenandoah/shenandoahConcurrentMark.cpp ! src/hotspot/share/gc/shenandoah/shenandoahControlThread.cpp ! src/hotspot/share/gc/shenandoah/shenandoahMarkCompact.cpp ! src/hotspot/share/gc/shenandoah/shenandoahTraversalGC.cpp ! src/hotspot/share/gc/shenandoah/shenandoah_globals.hpp From shade at redhat.com Tue Sep 4 11:10:30 2018 From: shade at redhat.com (Aleksey Shipilev) Date: Tue, 4 Sep 2018 13:10:30 +0200 Subject: RFR: Degenerated evacuation Message-ID: <24ec4954-9f3e-9b08-f305-3e276bc325ca@redhat.com> http://cr.openjdk.java.net/~shade/shenandoah/degenerated-evac/webrev.01/ Recent evac-reserve work enables us to do proper degen-evac without going to Full GC right away. It is possible now, because allocation failure means depleted "mutator view", but evac-reserve should be still enough to get evacuations going. This fixes the last wrinkle in degeneration scheme for normal cycle. (We would need to take a look at degen-traversal later). The webrev above contains verification and tests changes along with the actual degen-evac change. Those helped to diagnose one degen-evac bug. Sample run of Compiler.compiler with very dense heap: Trigger: Average GC time (111.81 ms) is above the time for allocation rate (124.07 MB/s) to deplete free headroom (0M) GC(1593) Pause Init Mark 0.288ms GC(1593) Concurrent marking 525M->921M(1024M) 94.232ms GC(1593) Pause Final Mark 0.560ms GC(1593) Concurrent cleanup 921M->925M(1024M) 0.182ms Failed to allocate 512K Cancelling GC: Allocation Failure GC(1593) Concurrent evacuation 926M->996M(1024M) 7.103ms Trigger: Handle Allocation Failure GC(1594) Pause Degenerated GC (Evacuation) 996M->872M(1024M) 48.612ms ; <--- Not Full GC anymore Trigger: Free (33M) is below minimum threshold (102M) Testing: tier3_gc_shenandoah, ad-hoc tests with forced degen-evac Thanks, -Aleksey From rkennke at redhat.com Tue Sep 4 11:14:49 2018 From: rkennke at redhat.com (Roman Kennke) Date: Tue, 4 Sep 2018 13:14:49 +0200 Subject: RFR: Degenerated evacuation In-Reply-To: <24ec4954-9f3e-9b08-f305-3e276bc325ca@redhat.com> References: <24ec4954-9f3e-9b08-f305-3e276bc325ca@redhat.com> Message-ID: Yep, very good, thank you!! Roman > http://cr.openjdk.java.net/~shade/shenandoah/degenerated-evac/webrev.01/ > > Recent evac-reserve work enables us to do proper degen-evac without going to Full GC right away. It > is possible now, because allocation failure means depleted "mutator view", but evac-reserve should > be still enough to get evacuations going. This fixes the last wrinkle in degeneration scheme for > normal cycle. (We would need to take a look at degen-traversal later). > > The webrev above contains verification and tests changes along with the actual degen-evac change. > Those helped to diagnose one degen-evac bug. > > Sample run of Compiler.compiler with very dense heap: > > Trigger: Average GC time (111.81 ms) is above the time for allocation rate (124.07 MB/s) to deplete > free headroom (0M) > GC(1593) Pause Init Mark 0.288ms > GC(1593) Concurrent marking 525M->921M(1024M) 94.232ms > GC(1593) Pause Final Mark 0.560ms > GC(1593) Concurrent cleanup 921M->925M(1024M) 0.182ms > Failed to allocate 512K > Cancelling GC: Allocation Failure > GC(1593) Concurrent evacuation 926M->996M(1024M) 7.103ms > Trigger: Handle Allocation Failure > GC(1594) Pause Degenerated GC (Evacuation) 996M->872M(1024M) 48.612ms ; <--- Not Full GC anymore > Trigger: Free (33M) is below minimum threshold (102M) > > Testing: tier3_gc_shenandoah, ad-hoc tests with forced degen-evac > > Thanks, > -Aleksey > > From shade at redhat.com Tue Sep 4 11:51:14 2018 From: shade at redhat.com (shade at redhat.com) Date: Tue, 04 Sep 2018 11:51:14 +0000 Subject: hg: shenandoah/jdk: 3 new changesets Message-ID: <201809041151.w84BpEmw000444@aojmv0008.oracle.com> Changeset: 97b2bac44c74 Author: shade Date: 2018-09-04 12:01 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/97b2bac44c74 shenandoah_assert_correct should verify classes before claiming _safe_oop ! src/hotspot/share/gc/shenandoah/shenandoahAsserts.cpp Changeset: a48c34728c8c Author: shade Date: 2018-09-04 12:08 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/a48c34728c8c Tests should use -XX:+ShenandoahVerify in some OOM-evac configurations ! test/hotspot/jtreg/gc/shenandoah/acceptance/AllocHumongousFragment.java ! test/hotspot/jtreg/gc/shenandoah/acceptance/AllocIntArrays.java ! test/hotspot/jtreg/gc/shenandoah/acceptance/AllocObjectArrays.java ! test/hotspot/jtreg/gc/shenandoah/acceptance/AllocObjects.java Changeset: 2ced7933815f Author: shade Date: 2018-09-04 12:08 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/2ced7933815f Degenerated evacuation ! src/hotspot/share/gc/shenandoah/shenandoahControlThread.cpp ! src/hotspot/share/gc/shenandoah/shenandoahHeap.cpp ! src/hotspot/share/gc/shenandoah/shenandoahHeap.inline.hpp From shade at redhat.com Tue Sep 4 12:03:09 2018 From: shade at redhat.com (Aleksey Shipilev) Date: Tue, 4 Sep 2018 14:03:09 +0200 Subject: Strange behaviour on half-occupied heap In-Reply-To: <2d4f2cfd-eaeb-b603-ddfb-15e1d63342ac@redhat.com> References: <44D445C0-FEAD-42E1-8FA3-E6795AF24E90@jetbrains.com> <173526ee-e2f0-7bb9-ef74-56941cf05cb3@redhat.com> <98796207-878B-4791-9272-E010D5E3DF60@jetbrains.com> <8a0d693d-ec7f-7683-2c96-c956631d9683@redhat.com> <83e32037-b7d5-d324-43af-9fd2e285e826@redhat.com> <28E9EA4A-4AC6-4576-8702-C2B9D02B2499@jetbrains.com> <2d4f2cfd-eaeb-b603-ddfb-15e1d63342ac@redhat.com> Message-ID: <82b648a2-d985-52fe-24bf-4397a6b3e91e@redhat.com> On 08/30/2018 07:38 PM, Aleksey Shipilev wrote: > On 08/30/2018 07:28 PM, Simon Ogorodnik wrote: >> Find out that issue related to my local build, and not reproduces with build from CI with same sources > > I can see how the zero space for CSet can happen, even if it is intermittent. I think evac-reserve > would help to mitigate bad behaviors on densely populated heaps: > http://mail.openjdk.java.net/pipermail/shenandoah-dev/2018-August/007270.html > > If everything goes well, it should land in sh/jdk8 early next week. Current sh/jdk8 repository and builds contain evac-reserve work, along with other touchups. This should work much better on small + densely populated heaps. I had a few runs with CLion and -Xmx2g with LDS of ~1G, and it seems to work fine. Please try again? The other question, why Full GC reclaimed a lot of memory, but Degen did not -- these are softrefs, and only Full GC used to clean them up. Should be better with the patch currently in testing: http://mail.openjdk.java.net/pipermail/shenandoah-dev/2018-September/007337.html The sh/jdk8u variant of that patch is: http://cr.openjdk.java.net/~shade/shenandoah/8u-softrefs.patch You may want to apply it separately, if interested. Otherwise, it should arrive in the next batch of backports next week. -Aleksey From zgu at redhat.com Tue Sep 4 13:05:33 2018 From: zgu at redhat.com (Zhengyu Gu) Date: Tue, 4 Sep 2018 09:05:33 -0400 Subject: RFR: Upstream merge jdk/jdk -> shenandoah/jdk 2018-08-30 In-Reply-To: <8cf3f062-8d74-8cd1-ae3a-887840e682fb@redhat.com> References: <8cf3f062-8d74-8cd1-ae3a-887840e682fb@redhat.com> Message-ID: <2b49093d-1bd3-7d97-e865-3a8a949ceee0@redhat.com> > > I included the proposed one-liner fix so that we can run tests. > > - The timers in parallel-cleaning-tasks are gone. We need to rework > that. Zhengyu? Yep. Thomas Schatzl wants to overhaul time tracking under single framework, did not want this variation to go in. -Zhengyu > > Testing: tier3_gc_shenandoah (ongoing) > > http://cr.openjdk.java.net/~rkennke/upstream-jdk12-merge-2018-08-30/outgoint.txt > > Ok? > > Roman > From shade at redhat.com Tue Sep 4 15:19:01 2018 From: shade at redhat.com (Aleksey Shipilev) Date: Tue, 4 Sep 2018 17:19:01 +0200 Subject: RFR: Soft refs policy needs reliable heap usage data after the GC cycle Message-ID: <645ecc4e-ec14-adc9-fb5a-60d51700688e@redhat.com> Following up on fixes for soft refs policy handling in Shenandoah. Global soft refs policy expects GC to report their last used/capacity after the GC, yet Shenandoah reports it only after the final mark, which overestimates used heap. I guess that is a leftover from the time Shenandoah only did CM-with-UR unconditionally. This should be done at the end of GC instead. Done in GC epilog under heap lock to get coherent used/capacity values: diff -r 2ced7933815f src/hotspot/share/gc/shenandoah/shenandoahControlThread.cpp --- a/src/hotspot/share/gc/shenandoah/shenandoahControlThread.cpp Tue Sep 04 12:08:47 2018 +0200 +++ b/src/hotspot/share/gc/shenandoah/shenandoahControlThread.cpp Tue Sep 04 17:17:33 2018 +0200 @@ -212,10 +212,15 @@ // Report current free set state at the end of cycle, whether // it is a normal completion, or the abort. { ShenandoahHeapLocker locker(heap->lock()); heap->free_set()->log_status(); + + // Notify Universe about new heap usage. This has implications for + // global soft refs policy, and we better report it every time heap + // usage goes down. + Universe::update_heap_info_at_gc(); } // Disable forced counters update, and update counters one more time // to capture the state at the end of GC session. handle_force_counters_update(); diff -r 2ced7933815f src/hotspot/share/gc/shenandoah/shenandoahHeap.cpp --- a/src/hotspot/share/gc/shenandoah/shenandoahHeap.cpp Tue Sep 04 12:08:47 2018 +0200 +++ b/src/hotspot/share/gc/shenandoah/shenandoahHeap.cpp Tue Sep 04 17:17:33 2018 +0200 @@ -1155,12 +1155,10 @@ heuristics()->choose_collection_set(_collection_set); _free_set->rebuild(); } - Universe::update_heap_info_at_gc(); - if (ShenandoahVerify) { verifier()->verify_before_evacuation(); } } } Testing: tier3_gc_shenandoah, adhoc benchmarks -Aleksey From rkennke at redhat.com Tue Sep 4 15:48:47 2018 From: rkennke at redhat.com (Roman Kennke) Date: Tue, 04 Sep 2018 17:48:47 +0200 Subject: RFR: Soft refs policy needs reliable heap usage data after the GC cycle In-Reply-To: <645ecc4e-ec14-adc9-fb5a-60d51700688e@redhat.com> References: <645ecc4e-ec14-adc9-fb5a-60d51700688e@redhat.com> Message-ID: <6D9D8D66-C4E9-43A7-93DF-0246EB032C21@redhat.com> Seems reasonable. Ship it! Am 4. September 2018 17:19:01 MESZ schrieb Aleksey Shipilev : >Following up on fixes for soft refs policy handling in Shenandoah. >Global soft refs policy expects >GC to report their last used/capacity after the GC, yet Shenandoah >reports it only after the final >mark, which overestimates used heap. I guess that is a leftover from >the time Shenandoah only did >CM-with-UR unconditionally. > >This should be done at the end of GC instead. Done in GC epilog under >heap lock to get coherent >used/capacity values: > >diff -r 2ced7933815f >src/hotspot/share/gc/shenandoah/shenandoahControlThread.cpp >--- a/src/hotspot/share/gc/shenandoah/shenandoahControlThread.cpp >Tue Sep 04 12:08:47 2018 +0200 >+++ b/src/hotspot/share/gc/shenandoah/shenandoahControlThread.cpp >Tue Sep 04 17:17:33 2018 +0200 >@@ -212,10 +212,15 @@ > // Report current free set state at the end of cycle, whether > // it is a normal completion, or the abort. > { > ShenandoahHeapLocker locker(heap->lock()); > heap->free_set()->log_status(); >+ >+ // Notify Universe about new heap usage. This has implications >for >+ // global soft refs policy, and we better report it every time >heap >+ // usage goes down. >+ Universe::update_heap_info_at_gc(); > } > > // Disable forced counters update, and update counters one more time > // to capture the state at the end of GC session. > handle_force_counters_update(); >diff -r 2ced7933815f src/hotspot/share/gc/shenandoah/shenandoahHeap.cpp >--- a/src/hotspot/share/gc/shenandoah/shenandoahHeap.cpp Tue Sep >04 12:08:47 2018 +0200 >+++ b/src/hotspot/share/gc/shenandoah/shenandoahHeap.cpp Tue Sep >04 17:17:33 2018 +0200 >@@ -1155,12 +1155,10 @@ > heuristics()->choose_collection_set(_collection_set); > > _free_set->rebuild(); > } > >- Universe::update_heap_info_at_gc(); >- > if (ShenandoahVerify) { > verifier()->verify_before_evacuation(); > } > } > } > >Testing: tier3_gc_shenandoah, adhoc benchmarks > >-Aleksey From shade at redhat.com Tue Sep 4 15:54:41 2018 From: shade at redhat.com (shade at redhat.com) Date: Tue, 04 Sep 2018 15:54:41 +0000 Subject: hg: shenandoah/jdk: Soft-refs policy needs reliable heap usage data after the GC cycle Message-ID: <201809041554.w84Fsg3P017713@aojmv0008.oracle.com> Changeset: 30ecad15fec8 Author: shade Date: 2018-09-04 17:11 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/30ecad15fec8 Soft-refs policy needs reliable heap usage data after the GC cycle ! src/hotspot/share/gc/shenandoah/shenandoahControlThread.cpp ! src/hotspot/share/gc/shenandoah/shenandoahHeap.cpp From zgu at redhat.com Tue Sep 4 16:35:17 2018 From: zgu at redhat.com (Zhengyu Gu) Date: Tue, 4 Sep 2018 12:35:17 -0400 Subject: RFR: Silence compilation warnings on implicit type conversion Message-ID: <2416f828-ada2-efa0-7740-8dbd3e2c8c89@redhat.com> Webrev: http://cr.openjdk.java.net/~zgu/shenandoah/silence_win_warnings/webrev.00/ Test: Built on Windows. Thanks, -Zhengyu From rkennke at redhat.com Tue Sep 4 16:40:30 2018 From: rkennke at redhat.com (Roman Kennke) Date: Tue, 4 Sep 2018 18:40:30 +0200 Subject: RFR: Silence compilation warnings on implicit type conversion In-Reply-To: <2416f828-ada2-efa0-7740-8dbd3e2c8c89@redhat.com> References: <2416f828-ada2-efa0-7740-8dbd3e2c8c89@redhat.com> Message-ID: > Webrev: > http://cr.openjdk.java.net/~zgu/shenandoah/silence_win_warnings/webrev.00/ > > Test: > ? Built on Windows. > > Thanks, > > -Zhengyu Sure, ok. Thanks! Roman From zgu at redhat.com Tue Sep 4 16:47:45 2018 From: zgu at redhat.com (zgu at redhat.com) Date: Tue, 04 Sep 2018 16:47:45 +0000 Subject: hg: shenandoah/jdk: Silence compilation warnings on implicit type conversion Message-ID: <201809041647.w84Glk5n007090@aojmv0008.oracle.com> Changeset: b67a4350c0b0 Author: zgu Date: 2018-09-04 12:47 -0400 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/b67a4350c0b0 Silence compilation warnings on implicit type conversion ! src/hotspot/share/gc/shenandoah/shenandoahHeapRegion.cpp ! src/hotspot/share/gc/shenandoah/shenandoah_globals.hpp From zgu at redhat.com Tue Sep 4 17:48:06 2018 From: zgu at redhat.com (Zhengyu Gu) Date: Tue, 4 Sep 2018 13:48:06 -0400 Subject: [JDK11] RFR: Silence compilation warnings on implicit type conversion Message-ID: <4d481074-2c3e-139c-fad4-20c330f6b41c@redhat.com> This is Shenandoah JDK11 specific one, others should be fixed vs. Shenandoah JDK backport. Webrev: http://cr.openjdk.java.net/~zgu/shenandoah/silence_win_warnings_jdk11/webrev.00/ Test: Built on Windows. Thanks, -Zhengyu From shade at redhat.com Tue Sep 4 18:48:02 2018 From: shade at redhat.com (Aleksey Shipilev) Date: Tue, 4 Sep 2018 20:48:02 +0200 Subject: [JDK11] RFR: Silence compilation warnings on implicit type conversion In-Reply-To: <4d481074-2c3e-139c-fad4-20c330f6b41c@redhat.com> References: <4d481074-2c3e-139c-fad4-20c330f6b41c@redhat.com> Message-ID: <4352b389-92c5-8717-0634-8071459ef65b@redhat.com> On 09/04/2018 07:48 PM, Zhengyu Gu wrote: > This is Shenandoah JDK11 specific one, others should be fixed vs. Shenandoah JDK backport. Can you please include those changes into this push as well, and test Windows builds in sh/jdk11 are fine? > Webrev: http://cr.openjdk.java.net/~zgu/shenandoah/silence_win_warnings_jdk11/webrev.00/ Looks good. -Aleksey From zgu at redhat.com Tue Sep 4 18:56:53 2018 From: zgu at redhat.com (zgu at redhat.com) Date: Tue, 04 Sep 2018 18:56:53 +0000 Subject: hg: shenandoah/jdk11: JDK11: Silence compilation warnings on implicit type conversion Message-ID: <201809041856.w84IurGY016043@aojmv0008.oracle.com> Changeset: 8f04a8d6efe4 Author: zgu Date: 2018-09-04 14:56 -0400 URL: http://hg.openjdk.java.net/shenandoah/jdk11/rev/8f04a8d6efe4 JDK11: Silence compilation warnings on implicit type conversion ! src/hotspot/share/gc/shared/parallelCleaning.cpp From rkennke at redhat.com Tue Sep 4 18:31:31 2018 From: rkennke at redhat.com (Roman Kennke) Date: Tue, 04 Sep 2018 20:31:31 +0200 Subject: [JDK11] RFR: Silence compilation warnings on implicit type conversion In-Reply-To: <4d481074-2c3e-139c-fad4-20c330f6b41c@redhat.com> References: <4d481074-2c3e-139c-fad4-20c330f6b41c@redhat.com> Message-ID: <5F228D96-D4B6-46DA-85A5-8767C4DBEC92@redhat.com> Yes. Thank you! Am 4. September 2018 19:48:06 MESZ schrieb Zhengyu Gu : >This is Shenandoah JDK11 specific one, others should be fixed vs. >Shenandoah JDK backport. > > >Webrev: >http://cr.openjdk.java.net/~zgu/shenandoah/silence_win_warnings_jdk11/webrev.00/ > >Test: > > Built on Windows. > >Thanks, > >-Zhengyu From zgu at redhat.com Tue Sep 4 21:28:45 2018 From: zgu at redhat.com (Zhengyu Gu) Date: Tue, 4 Sep 2018 17:28:45 -0400 Subject: [JDK8u] RFR: Silence compilation warnings on implicit type conversion In-Reply-To: <4d481074-2c3e-139c-fad4-20c330f6b41c@redhat.com> References: <4d481074-2c3e-139c-fad4-20c330f6b41c@redhat.com> Message-ID: Webrev: http://cr.openjdk.java.net/~zgu/shenandoah/silence_win_warnings-jdk8u/webrev.00/ Test: Built on Windows. Thanks, -Zhengyu From shade at redhat.com Tue Sep 4 21:37:21 2018 From: shade at redhat.com (Aleksey Shipilev) Date: Tue, 4 Sep 2018 23:37:21 +0200 Subject: [JDK8u] RFR: Silence compilation warnings on implicit type conversion In-Reply-To: References: <4d481074-2c3e-139c-fad4-20c330f6b41c@redhat.com> Message-ID: <864727bb-4e6c-1022-ae28-5aab58a32cbf@redhat.com> On 09/04/2018 11:28 PM, Zhengyu Gu wrote: > Webrev: http://cr.openjdk.java.net/~zgu/shenandoah/silence_win_warnings-jdk8u/webrev.00/ Looks good. -Aleksey P.S. I think you skipped sh/jdk10? From zgu at redhat.com Wed Sep 5 00:49:05 2018 From: zgu at redhat.com (Zhengyu Gu) Date: Tue, 4 Sep 2018 20:49:05 -0400 Subject: [JDK8u] RFR: Silence compilation warnings on implicit type conversion In-Reply-To: <864727bb-4e6c-1022-ae28-5aab58a32cbf@redhat.com> References: <4d481074-2c3e-139c-fad4-20c330f6b41c@redhat.com> <864727bb-4e6c-1022-ae28-5aab58a32cbf@redhat.com> Message-ID: <2d9a5fc5-4274-5322-137e-9f01a590367a@redhat.com> On 09/04/2018 05:37 PM, Aleksey Shipilev wrote: > On 09/04/2018 11:28 PM, Zhengyu Gu wrote: >> Webrev: http://cr.openjdk.java.net/~zgu/shenandoah/silence_win_warnings-jdk8u/webrev.00/ > > Looks good. > > -Aleksey > > P.S. I think you skipped sh/jdk10? jdk9 and 10 are on my list ... -Zhengyu > From zgu at redhat.com Wed Sep 5 00:50:49 2018 From: zgu at redhat.com (zgu at redhat.com) Date: Wed, 05 Sep 2018 00:50:49 +0000 Subject: hg: shenandoah/jdk8u/hotspot: JDK8u: Silence compilation warnings on implicit type conversion Message-ID: <201809050050.w850on7D021199@aojmv0008.oracle.com> Changeset: 4f75ec139b16 Author: zgu Date: 2018-09-04 20:50 -0400 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/hotspot/rev/4f75ec139b16 JDK8u: Silence compilation warnings on implicit type conversion ! src/share/vm/gc_implementation/shenandoah/shenandoahHeapRegion.cpp ! src/share/vm/gc_implementation/shenandoah/shenandoahPhaseTimings.cpp From shade at redhat.com Wed Sep 5 05:59:51 2018 From: shade at redhat.com (Aleksey Shipilev) Date: Wed, 5 Sep 2018 07:59:51 +0200 Subject: [JDK8u] RFR: Silence compilation warnings on implicit type conversion In-Reply-To: <2d9a5fc5-4274-5322-137e-9f01a590367a@redhat.com> References: <4d481074-2c3e-139c-fad4-20c330f6b41c@redhat.com> <864727bb-4e6c-1022-ae28-5aab58a32cbf@redhat.com> <2d9a5fc5-4274-5322-137e-9f01a590367a@redhat.com> Message-ID: <19f5c943-c6dd-50b0-5159-31034fd02e1a@redhat.com> On 09/05/2018 02:49 AM, Zhengyu Gu wrote: > On 09/04/2018 05:37 PM, Aleksey Shipilev wrote: >> P.S. I think you skipped sh/jdk10? > > jdk9 and 10 are on my list ... No need to handle sh/jdk9, we are not building it anymore. -Aleksey From shade at redhat.com Wed Sep 5 08:41:37 2018 From: shade at redhat.com (Aleksey Shipilev) Date: Wed, 5 Sep 2018 10:41:37 +0200 Subject: RFR: Unreachable assert in ShenandoahCodeRoots::acquire_lock Message-ID: <85440948-32af-2bb8-d17d-b42ca54c38dd@redhat.com> Static analysis says that assert is unreachable. Indeed it is, because the loop exits with return. Not only that, the assert itself is incorrect. diff -r b67a4350c0b0 src/hotspot/share/gc/shenandoah/shenandoahCodeRoots.hpp --- a/src/hotspot/share/gc/shenandoah/shenandoahCodeRoots.hpp Tue Sep 04 12:47:36 2018 -0400 +++ b/src/hotspot/share/gc/shenandoah/shenandoahCodeRoots.hpp Wed Sep 05 09:37:45 2018 +0200 @@ -151,16 +151,16 @@ while (true) { int cur = OrderAccess::load_acquire(loc); if (cur >= 0) { if (Atomic::cmpxchg(cur + 1, loc, cur) == cur) { // Success! + assert (*loc > 0, "acquired for read"); return; } } SpinPause(); } - assert (*loc > 1, "acquired for read"); } } static void release_lock(bool write) { volatile int* loc = &ShenandoahCodeRoots::_recorded_nms_lock; Testing: tier3_gc_shenandoah Thanks, -Aleksey From shade at redhat.com Wed Sep 5 08:41:44 2018 From: shade at redhat.com (Aleksey Shipilev) Date: Wed, 5 Sep 2018 10:41:44 +0200 Subject: RFR: Prune undefined and unused methods Message-ID: <1961991c-961d-69f9-d470-fda005aef1aa@redhat.com> Static analysis detected these methods are not defined (and not used). Let's remove them: diff -r 8cdd146bc484 src/hotspot/share/gc/shenandoah/c1/shenandoahBarrierSetC1.hpp --- a/src/hotspot/share/gc/shenandoah/c1/shenandoahBarrierSetC1.hpp Wed Sep 05 10:11:17 2018 +0200 +++ b/src/hotspot/share/gc/shenandoah/c1/shenandoahBarrierSetC1.hpp Wed Sep 05 10:16:16 2018 +0200 @@ -119,12 +119,10 @@ class ShenandoahBarrierSetC1 : public BarrierSetC1 { private: CodeBlob* _pre_barrier_c1_runtime_code_blob; - void keep_alive_barrier(LIR_Opr val); - void pre_barrier(LIRGenerator* gen, CodeEmitInfo* info, DecoratorSet decorators, LIR_Opr addr_opr, LIR_Opr pre_val); void post_barrier(LIRGenerator* gen, LIR_OprDesc* addr, LIR_OprDesc* new_val); LIR_Opr read_barrier(LIRGenerator* gen, LIR_Opr obj, CodeEmitInfo* info, bool need_null_check); LIR_Opr write_barrier(LIRGenerator* gen, LIR_Opr obj, CodeEmitInfo* info, bool need_null_check); diff -r 8cdd146bc484 src/hotspot/share/gc/shenandoah/shenandoahHeapRegion.hpp --- a/src/hotspot/share/gc/shenandoah/shenandoahHeapRegion.hpp Wed Sep 05 10:11:17 2018 +0200 +++ b/src/hotspot/share/gc/shenandoah/shenandoahHeapRegion.hpp Wed Sep 05 10:16:16 2018 +0200 @@ -153,13 +153,10 @@ } } void report_illegal_transition(const char* method); - void make_idle(); - void activate_region(); - bool can_idle_region() const; public: // Allowed transitions from the outside code: void make_regular_allocation(); void make_regular_bypass(); Testing: tier3_gc_shenandoah Thanks, -Aleksey From rkennke at redhat.com Wed Sep 5 08:45:38 2018 From: rkennke at redhat.com (Roman Kennke) Date: Wed, 05 Sep 2018 10:45:38 +0200 Subject: RFR: Unreachable assert in ShenandoahCodeRoots::acquire_lock In-Reply-To: <85440948-32af-2bb8-d17d-b42ca54c38dd@redhat.com> References: <85440948-32af-2bb8-d17d-b42ca54c38dd@redhat.com> Message-ID: <6EE90F0B-E4A6-4626-A16A-B28989CC0828@redhat.com> Oops. Good catch! Go! Am 5. September 2018 10:41:37 MESZ schrieb Aleksey Shipilev : >Static analysis says that assert is unreachable. Indeed it is, because >the loop exits with return. >Not only that, the assert itself is incorrect. > >diff -r b67a4350c0b0 >src/hotspot/share/gc/shenandoah/shenandoahCodeRoots.hpp >--- a/src/hotspot/share/gc/shenandoah/shenandoahCodeRoots.hpp Tue Sep >04 12:47:36 2018 -0400 >+++ b/src/hotspot/share/gc/shenandoah/shenandoahCodeRoots.hpp Wed Sep >05 09:37:45 2018 +0200 >@@ -151,16 +151,16 @@ > while (true) { > int cur = OrderAccess::load_acquire(loc); > if (cur >= 0) { > if (Atomic::cmpxchg(cur + 1, loc, cur) == cur) { > // Success! >+ assert (*loc > 0, "acquired for read"); > return; > } > } > SpinPause(); > } >- assert (*loc > 1, "acquired for read"); > } > } > > static void release_lock(bool write) { > volatile int* loc = &ShenandoahCodeRoots::_recorded_nms_lock; > > >Testing: tier3_gc_shenandoah > >Thanks, >-Aleksey From rkennke at redhat.com Wed Sep 5 08:46:04 2018 From: rkennke at redhat.com (Roman Kennke) Date: Wed, 05 Sep 2018 10:46:04 +0200 Subject: RFR: Prune undefined and unused methods In-Reply-To: <1961991c-961d-69f9-d470-fda005aef1aa@redhat.com> References: <1961991c-961d-69f9-d470-fda005aef1aa@redhat.com> Message-ID: <67056AF5-583D-426E-8DE0-F75CCD3F0F6F@redhat.com> OK sure. Am 5. September 2018 10:41:44 MESZ schrieb Aleksey Shipilev : >Static analysis detected these methods are not defined (and not used). >Let's remove them: > >diff -r 8cdd146bc484 >src/hotspot/share/gc/shenandoah/c1/shenandoahBarrierSetC1.hpp >--- a/src/hotspot/share/gc/shenandoah/c1/shenandoahBarrierSetC1.hpp >Wed Sep 05 10:11:17 2018 +0200 >+++ b/src/hotspot/share/gc/shenandoah/c1/shenandoahBarrierSetC1.hpp >Wed Sep 05 10:16:16 2018 +0200 >@@ -119,12 +119,10 @@ > > class ShenandoahBarrierSetC1 : public BarrierSetC1 { > private: > CodeBlob* _pre_barrier_c1_runtime_code_blob; > >- void keep_alive_barrier(LIR_Opr val); >- >void pre_barrier(LIRGenerator* gen, CodeEmitInfo* info, DecoratorSet >decorators, LIR_Opr >addr_opr, LIR_Opr pre_val); >void post_barrier(LIRGenerator* gen, LIR_OprDesc* addr, LIR_OprDesc* >new_val); > >LIR_Opr read_barrier(LIRGenerator* gen, LIR_Opr obj, CodeEmitInfo* >info, bool need_null_check); >LIR_Opr write_barrier(LIRGenerator* gen, LIR_Opr obj, CodeEmitInfo* >info, bool need_null_check); >diff -r 8cdd146bc484 >src/hotspot/share/gc/shenandoah/shenandoahHeapRegion.hpp >--- a/src/hotspot/share/gc/shenandoah/shenandoahHeapRegion.hpp Wed Sep >05 10:11:17 2018 +0200 >+++ b/src/hotspot/share/gc/shenandoah/shenandoahHeapRegion.hpp Wed Sep >05 10:16:16 2018 +0200 >@@ -153,13 +153,10 @@ > } > } > > void report_illegal_transition(const char* method); > >- void make_idle(); >- void activate_region(); >- > bool can_idle_region() const; > public: > // Allowed transitions from the outside code: > void make_regular_allocation(); > void make_regular_bypass(); > >Testing: tier3_gc_shenandoah > >Thanks, >-Aleksey From shade at redhat.com Wed Sep 5 08:46:56 2018 From: shade at redhat.com (Aleksey Shipilev) Date: Wed, 5 Sep 2018 10:46:56 +0200 Subject: RFR: Fix builds on unsupported platforms after C2 changes Message-ID: sh/jdk build is broken on non-Shenandoah platforms because: /pool/buildbot/slaves/sobornost/shenandoah-jdkX/build/src/hotspot/share/opto/cfgnode.cpp: In function ???Node* is_x2logic(PhaseGVN*, PhiNode*, int)???: /pool/buildbot/slaves/sobornost/shenandoah-jdkX/build/src/hotspot/share/opto/cfgnode.cpp:1319:11: error: invalid use of incomplete type ???class BarrierSetC2??? in1 = bs->peek_thru_gc_barrier(in1); ^~ /pool/buildbot/slaves/sobornost/shenandoah-jdkX/build/src/hotspot/share/gc/shared/barrierSet.hpp:38:7: note: forward declaration of ???class BarrierSetC2??? class BarrierSetC2; ^~~~~~~~~~~~ This is due to missing include for barrierSetC2, which is otherwise transitively included via shenandoahSupport.hpp. Fix: diff -r b67a4350c0b0 src/hotspot/share/opto/cfgnode.cpp --- a/src/hotspot/share/opto/cfgnode.cpp Tue Sep 04 12:47:36 2018 -0400 +++ b/src/hotspot/share/opto/cfgnode.cpp Wed Sep 05 10:44:06 2018 +0200 @@ -24,6 +24,8 @@ #include "precompiled.hpp" #include "classfile/systemDictionary.hpp" +#include "gc/shared/barrierSet.hpp" +#include "gc/shared/c2/barrierSetC2.hpp" #include "memory/allocation.inline.hpp" #include "memory/resourceArea.hpp" #include "oops/objArrayKlass.hpp" Testing: Linux arm32 build Thanks, -Aleksey From rkennke at redhat.com Wed Sep 5 09:00:45 2018 From: rkennke at redhat.com (Roman Kennke) Date: Wed, 05 Sep 2018 11:00:45 +0200 Subject: RFR: Fix builds on unsupported platforms after C2 changes In-Reply-To: References: Message-ID: <0885FA24-5133-40EA-A7D2-5EC29DFF84F4@redhat.com> Yes yes. ;-) Am 5. September 2018 10:46:56 MESZ schrieb Aleksey Shipilev : >sh/jdk build is broken on non-Shenandoah platforms because: > >/pool/buildbot/slaves/sobornost/shenandoah-jdkX/build/src/hotspot/share/opto/cfgnode.cpp: >In >function ???Node* is_x2logic(PhaseGVN*, PhiNode*, int)???: >/pool/buildbot/slaves/sobornost/shenandoah-jdkX/build/src/hotspot/share/opto/cfgnode.cpp:1319:11: >error: invalid use of incomplete type ???class BarrierSetC2??? > in1 = bs->peek_thru_gc_barrier(in1); > ^~ >/pool/buildbot/slaves/sobornost/shenandoah-jdkX/build/src/hotspot/share/gc/shared/barrierSet.hpp:38:7: >note: forward declaration of ???class BarrierSetC2??? > class BarrierSetC2; > ^~~~~~~~~~~~ > >This is due to missing include for barrierSetC2, which is otherwise >transitively included via >shenandoahSupport.hpp. Fix: > >diff -r b67a4350c0b0 src/hotspot/share/opto/cfgnode.cpp >--- a/src/hotspot/share/opto/cfgnode.cpp Tue Sep 04 12:47:36 2018 -0400 >+++ b/src/hotspot/share/opto/cfgnode.cpp Wed Sep 05 10:44:06 2018 +0200 >@@ -24,6 +24,8 @@ > > #include "precompiled.hpp" > #include "classfile/systemDictionary.hpp" >+#include "gc/shared/barrierSet.hpp" >+#include "gc/shared/c2/barrierSetC2.hpp" > #include "memory/allocation.inline.hpp" > #include "memory/resourceArea.hpp" > #include "oops/objArrayKlass.hpp" > >Testing: Linux arm32 build > >Thanks, >-Aleksey From shade at redhat.com Wed Sep 5 09:02:09 2018 From: shade at redhat.com (shade at redhat.com) Date: Wed, 05 Sep 2018 09:02:09 +0000 Subject: hg: shenandoah/jdk: 3 new changesets Message-ID: <201809050902.w85929pf007795@aojmv0008.oracle.com> Changeset: 9309e3678710 Author: shade Date: 2018-09-05 10:20 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/9309e3678710 Unreachable assert in ShenandoahCodeRoots::acquire_lock ! src/hotspot/share/gc/shenandoah/shenandoahCodeRoots.hpp Changeset: ae9c37b7a718 Author: shade Date: 2018-09-05 10:20 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/ae9c37b7a718 Prune undefined and unused methods ! src/hotspot/share/gc/shenandoah/c1/shenandoahBarrierSetC1.hpp ! src/hotspot/share/gc/shenandoah/shenandoahHeapRegion.hpp Changeset: 96c558dcd234 Author: shade Date: 2018-09-05 10:46 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/96c558dcd234 Fix builds on unsupported platforms after C2 changes ! src/hotspot/share/opto/cfgnode.cpp From shade at redhat.com Wed Sep 5 09:14:46 2018 From: shade at redhat.com (Aleksey Shipilev) Date: Wed, 5 Sep 2018 11:14:46 +0200 Subject: RFR: Remove unused ShPacer::setup_for_partial Message-ID: This is unused after Traversal-Partial folding. And Pacer already tracks the traversal progress as "live" data expected during this cycle. Let's remove it: diff -r 96c558dcd234 src/hotspot/share/gc/shenandoah/shenandoahPacer.cpp --- a/src/hotspot/share/gc/shenandoah/shenandoahPacer.cpp Wed Sep 05 10:46:40 2018 +0200 +++ b/src/hotspot/share/gc/shenandoah/shenandoahPacer.cpp Wed Sep 05 11:12:59 2018 +0200 @@ -141,35 +141,10 @@ "M, Non-Taxable: " SIZE_FORMAT "M, Alloc Tax Rate: %.1fx", live / M, free / M, non_taxable / M, tax); } /* - * Partial collection walks only the part of the heap. Incoming arugment will tell us how much - * work the heuristics is expecting us to do. We would use that as the baseline. - */ - -void ShenandoahPacer::setup_for_partial(size_t work_words) { - assert(ShenandoahPacing, "Only be here when pacing is enabled"); - - size_t work_bytes = work_words * HeapWordSize; - size_t free = _heap->free_set()->available(); - - size_t non_taxable = free * ShenandoahPacingCycleSlack / 100; - size_t taxable = free - non_taxable; - - double tax = 1.0 * work_bytes / taxable; // base tax for available free space - tax = MAX2(1, tax); // never allocate more than GC collects during the cycle - tax *= ShenandoahPacingSurcharge; // additional surcharge to help unclutter heap - - restart_with(non_taxable, tax); - - log_info(gc, ergo)("Pacer for Partial. Work: " SIZE_FORMAT "M, Free: " SIZE_FORMAT - "M, Non-Taxable: " SIZE_FORMAT "M, Alloc Tax Rate: %.1fx", - work_bytes / M, free / M, non_taxable / M, tax); -} - -/* * In idle phase, we have to pace the application to let control thread react with GC start. * * Here, we have rendezvous with concurrent thread that adds up the budget as it acknowledges * it had seen recent allocations. It will naturally pace the allocations if control thread is * not catching up. To bootstrap this feedback cycle, we need to start with some initial budget diff -r 96c558dcd234 src/hotspot/share/gc/shenandoah/shenandoahPacer.hpp --- a/src/hotspot/share/gc/shenandoah/shenandoahPacer.hpp Wed Sep 05 10:46:40 2018 +0200 +++ b/src/hotspot/share/gc/shenandoah/shenandoahPacer.hpp Wed Sep 05 11:12:59 2018 +0200 @@ -59,11 +59,10 @@ void setup_for_idle(); void setup_for_mark(); void setup_for_evac(); void setup_for_updaterefs(); - void setup_for_partial(size_t work_words); void setup_for_traversal(); inline void report_mark(size_t words); inline void report_evac(size_t words); inline void report_updaterefs(size_t words); Testing: tier1_gc_shenandoah Thanks, -Aleksey From roman at kennke.org Wed Sep 5 09:23:03 2018 From: roman at kennke.org (Roman Kennke) Date: Wed, 05 Sep 2018 11:23:03 +0200 Subject: RFR: Remove unused ShPacer::setup_for_partial In-Reply-To: References: Message-ID: <0955570C-D7CF-497F-83FF-612D1DC8F071@kennke.org> Yes. Thanks! Am 5. September 2018 11:14:46 MESZ schrieb Aleksey Shipilev : >This is unused after Traversal-Partial folding. And Pacer already >tracks the traversal progress as >"live" data expected during this cycle. Let's remove it: > >diff -r 96c558dcd234 >src/hotspot/share/gc/shenandoah/shenandoahPacer.cpp >--- a/src/hotspot/share/gc/shenandoah/shenandoahPacer.cpp Wed Sep >05 10:46:40 2018 +0200 >+++ b/src/hotspot/share/gc/shenandoah/shenandoahPacer.cpp Wed Sep >05 11:12:59 2018 +0200 >@@ -141,35 +141,10 @@ > "M, Non-Taxable: " SIZE_FORMAT "M, Alloc Tax Rate: %.1fx", > live / M, free / M, non_taxable / M, tax); > } > > /* >- * Partial collection walks only the part of the heap. Incoming >arugment will tell us how much >- * work the heuristics is expecting us to do. We would use that as the >baseline. >- */ >- >-void ShenandoahPacer::setup_for_partial(size_t work_words) { >- assert(ShenandoahPacing, "Only be here when pacing is enabled"); >- >- size_t work_bytes = work_words * HeapWordSize; >- size_t free = _heap->free_set()->available(); >- >- size_t non_taxable = free * ShenandoahPacingCycleSlack / 100; >- size_t taxable = free - non_taxable; >- >- double tax = 1.0 * work_bytes / taxable; // base tax for available >free space >- tax = MAX2(1, tax); // never allocate more than >GC collects during the cycle >- tax *= ShenandoahPacingSurcharge; // additional surcharge to >help unclutter heap >- >- restart_with(non_taxable, tax); >- >- log_info(gc, ergo)("Pacer for Partial. Work: " SIZE_FORMAT "M, Free: >" SIZE_FORMAT >- "M, Non-Taxable: " SIZE_FORMAT "M, Alloc Tax >Rate: %.1fx", >- work_bytes / M, free / M, non_taxable / M, tax); >-} >- >-/* >* In idle phase, we have to pace the application to let control thread >react with GC start. > * >* Here, we have rendezvous with concurrent thread that adds up the >budget as it acknowledges >* it had seen recent allocations. It will naturally pace the >allocations if control thread is >* not catching up. To bootstrap this feedback cycle, we need to start >with some initial budget >diff -r 96c558dcd234 >src/hotspot/share/gc/shenandoah/shenandoahPacer.hpp >--- a/src/hotspot/share/gc/shenandoah/shenandoahPacer.hpp Wed Sep >05 10:46:40 2018 +0200 >+++ b/src/hotspot/share/gc/shenandoah/shenandoahPacer.hpp Wed Sep >05 11:12:59 2018 +0200 >@@ -59,11 +59,10 @@ > > void setup_for_idle(); > void setup_for_mark(); > void setup_for_evac(); > void setup_for_updaterefs(); >- void setup_for_partial(size_t work_words); > void setup_for_traversal(); > > inline void report_mark(size_t words); > inline void report_evac(size_t words); > inline void report_updaterefs(size_t words); > > >Testing: tier1_gc_shenandoah > >Thanks, >-Aleksey -- Diese Nachricht wurde von meinem Android-Ger?t mit K-9 Mail gesendet. From shade at redhat.com Wed Sep 5 10:45:00 2018 From: shade at redhat.com (shade at redhat.com) Date: Wed, 05 Sep 2018 10:45:00 +0000 Subject: hg: shenandoah/jdk: Remove unused ShPacer::setup_for_partial Message-ID: <201809051045.w85Aj0KZ008714@aojmv0008.oracle.com> Changeset: 3e247a8c900c Author: shade Date: 2018-09-05 11:13 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/3e247a8c900c Remove unused ShPacer::setup_for_partial ! src/hotspot/share/gc/shenandoah/shenandoahPacer.cpp ! src/hotspot/share/gc/shenandoah/shenandoahPacer.hpp From shade at redhat.com Wed Sep 5 10:47:18 2018 From: shade at redhat.com (Aleksey Shipilev) Date: Wed, 5 Sep 2018 12:47:18 +0200 Subject: RFR: Print the log message for minor Traversal cycle Message-ID: <30304d05-b1a9-45f2-c405-3d0f69fb0531@redhat.com> ...so that GC logs and Event logs in hs_err clearly say we entered it: diff -r 3e247a8c900c src/hotspot/share/gc/shenandoah/shenandoahHeap.cpp --- a/src/hotspot/share/gc/shenandoah/shenandoahHeap.cpp Wed Sep 05 11:13:25 2018 +0200 +++ b/src/hotspot/share/gc/shenandoah/shenandoahHeap.cpp Wed Sep 05 12:46:21 2018 +0200 @@ -2712,3 +2712,3 @@ - static const char* msg = "Pause Init Traversal"; + const char* msg = init_traversal_event_message(); GCTraceTime(Info, gc) time(msg, gc_timer()); @@ -2727,3 +2727,3 @@ - static const char* msg = "Pause Final Traversal"; + const char* msg = final_traversal_event_message(); GCTraceTime(Info, gc) time(msg, gc_timer()); @@ -2877,3 +2877,3 @@ void ShenandoahHeap::entry_traversal() { - static const char* msg = "Concurrent traversal"; + const char* msg = conc_traversal_event_message(); GCTraceTime(Info, gc) time(msg, NULL, GCCause::_no_gc, true); @@ -3070,2 +3070,26 @@ +const char* ShenandoahHeap::init_traversal_event_message() const { + if (is_minor_gc()) { + return "Pause Init Traversal (minor)"; + } else { + return "Pause Init Traversal"; + } +} + +const char* ShenandoahHeap::final_traversal_event_message() const { + if (is_minor_gc()) { + return "Pause Final Traversal (minor)"; + } else { + return "Pause Final Traversal"; + } +} + +const char* ShenandoahHeap::conc_traversal_event_message() const { + if (is_minor_gc()) { + return "Concurrent traversal (minor)"; + } else { + return "Concurrent traversal"; + } +} + const char* ShenandoahHeap::degen_event_message(ShenandoahDegenPoint point) const { diff -r 3e247a8c900c src/hotspot/share/gc/shenandoah/shenandoahHeap.hpp --- a/src/hotspot/share/gc/shenandoah/shenandoahHeap.hpp Wed Sep 05 11:13:25 2018 +0200 +++ b/src/hotspot/share/gc/shenandoah/shenandoahHeap.hpp Wed Sep 05 12:46:21 2018 +0200 @@ -856,2 +856,5 @@ const char* conc_mark_event_message() const; + const char* init_traversal_event_message() const; + const char* final_traversal_event_message() const; + const char* conc_traversal_event_message() const; const char* degen_event_message(ShenandoahDegenPoint point) const; Testing: tier1_gc_shenandoah Thanks, -Aleksey From roman at kennke.org Wed Sep 5 12:39:12 2018 From: roman at kennke.org (Roman Kennke) Date: Wed, 05 Sep 2018 14:39:12 +0200 Subject: RFR: Print the log message for minor Traversal cycle In-Reply-To: <30304d05-b1a9-45f2-c405-3d0f69fb0531@redhat.com> References: <30304d05-b1a9-45f2-c405-3d0f69fb0531@redhat.com> Message-ID: Yes. Am 5. September 2018 12:47:18 MESZ schrieb Aleksey Shipilev : >...so that GC logs and Event logs in hs_err clearly say we entered it: > >diff -r 3e247a8c900c src/hotspot/share/gc/shenandoah/shenandoahHeap.cpp >--- a/src/hotspot/share/gc/shenandoah/shenandoahHeap.cpp Wed Sep >05 11:13:25 2018 +0200 >+++ b/src/hotspot/share/gc/shenandoah/shenandoahHeap.cpp Wed Sep >05 12:46:21 2018 +0200 >@@ -2712,3 +2712,3 @@ > >- static const char* msg = "Pause Init Traversal"; >+ const char* msg = init_traversal_event_message(); > GCTraceTime(Info, gc) time(msg, gc_timer()); >@@ -2727,3 +2727,3 @@ > >- static const char* msg = "Pause Final Traversal"; >+ const char* msg = final_traversal_event_message(); > GCTraceTime(Info, gc) time(msg, gc_timer()); >@@ -2877,3 +2877,3 @@ > void ShenandoahHeap::entry_traversal() { >- static const char* msg = "Concurrent traversal"; >+ const char* msg = conc_traversal_event_message(); > GCTraceTime(Info, gc) time(msg, NULL, GCCause::_no_gc, true); >@@ -3070,2 +3070,26 @@ > >+const char* ShenandoahHeap::init_traversal_event_message() const { >+ if (is_minor_gc()) { >+ return "Pause Init Traversal (minor)"; >+ } else { >+ return "Pause Init Traversal"; >+ } >+} >+ >+const char* ShenandoahHeap::final_traversal_event_message() const { >+ if (is_minor_gc()) { >+ return "Pause Final Traversal (minor)"; >+ } else { >+ return "Pause Final Traversal"; >+ } >+} >+ >+const char* ShenandoahHeap::conc_traversal_event_message() const { >+ if (is_minor_gc()) { >+ return "Concurrent traversal (minor)"; >+ } else { >+ return "Concurrent traversal"; >+ } >+} >+ >const char* ShenandoahHeap::degen_event_message(ShenandoahDegenPoint >point) const { >diff -r 3e247a8c900c src/hotspot/share/gc/shenandoah/shenandoahHeap.hpp >--- a/src/hotspot/share/gc/shenandoah/shenandoahHeap.hpp Wed Sep >05 11:13:25 2018 +0200 >+++ b/src/hotspot/share/gc/shenandoah/shenandoahHeap.hpp Wed Sep >05 12:46:21 2018 +0200 >@@ -856,2 +856,5 @@ > const char* conc_mark_event_message() const; >+ const char* init_traversal_event_message() const; >+ const char* final_traversal_event_message() const; >+ const char* conc_traversal_event_message() const; > const char* degen_event_message(ShenandoahDegenPoint point) const; > >Testing: tier1_gc_shenandoah > >Thanks, >-Aleksey -- Diese Nachricht wurde von meinem Android-Ger?t mit K-9 Mail gesendet. From shade at redhat.com Wed Sep 5 12:44:08 2018 From: shade at redhat.com (shade at redhat.com) Date: Wed, 05 Sep 2018 12:44:08 +0000 Subject: hg: shenandoah/jdk: Print the log message for minor Traversal cycle Message-ID: <201809051244.w85Ci854016490@aojmv0008.oracle.com> Changeset: 66b9b5d682a8 Author: shade Date: 2018-09-05 12:46 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/66b9b5d682a8 Print the log message for minor Traversal cycle ! src/hotspot/share/gc/shenandoah/shenandoahHeap.cpp ! src/hotspot/share/gc/shenandoah/shenandoahHeap.hpp From zgu at redhat.com Wed Sep 5 14:57:32 2018 From: zgu at redhat.com (Zhengyu Gu) Date: Wed, 5 Sep 2018 10:57:32 -0400 Subject: [JDK10] RFR: Silence compilation warnings on implicit type conversion In-Reply-To: References: <4d481074-2c3e-139c-fad4-20c330f6b41c@redhat.com> Message-ID: <314a1638-0772-1f75-1517-f9af0bc7f534@redhat.com> Finally, built Shenandoah JDK10 with VS 2013 update 3. Webrev: http://cr.openjdk.java.net/~zgu/shenandoah/silence_win_warnings-jdk10/webrev.00/ Test: Built on Windows Thanks, -Zhengyu From shade at redhat.com Wed Sep 5 14:59:04 2018 From: shade at redhat.com (Aleksey Shipilev) Date: Wed, 5 Sep 2018 16:59:04 +0200 Subject: [JDK10] RFR: Silence compilation warnings on implicit type conversion In-Reply-To: <314a1638-0772-1f75-1517-f9af0bc7f534@redhat.com> References: <4d481074-2c3e-139c-fad4-20c330f6b41c@redhat.com> <314a1638-0772-1f75-1517-f9af0bc7f534@redhat.com> Message-ID: <31a33dbe-13ab-d44b-d5d2-898bdee66dbd@redhat.com> On 09/05/2018 04:57 PM, Zhengyu Gu wrote: > Finally, built Shenandoah JDK10 with VS 2013 update 3. > > Webrev: http://cr.openjdk.java.net/~zgu/shenandoah/silence_win_warnings-jdk10/webrev.00/ Looks good! -Aleksey From zgu at redhat.com Wed Sep 5 15:01:08 2018 From: zgu at redhat.com (zgu at redhat.com) Date: Wed, 05 Sep 2018 15:01:08 +0000 Subject: hg: shenandoah/jdk10: JDK10: Silence compilation warnings on implicit type conversion Message-ID: <201809051501.w85F18CX027200@aojmv0008.oracle.com> Changeset: 8a82491d46f5 Author: zgu Date: 2018-09-05 11:00 -0400 URL: http://hg.openjdk.java.net/shenandoah/jdk10/rev/8a82491d46f5 JDK10: Silence compilation warnings on implicit type conversion ! src/hotspot/share/gc/shenandoah/shenandoahHeapRegion.cpp From shade at redhat.com Thu Sep 6 10:50:51 2018 From: shade at redhat.com (Aleksey Shipilev) Date: Thu, 6 Sep 2018 12:50:51 +0200 Subject: RFR: Grand heuristics and tests rehash Message-ID: <627380da-ef83-e804-5827-30be25a9777d@redhat.com> http://cr.openjdk.java.net/~shade/shenandoah/heuristics-tests/webrev.01/ This includes several interconnected changesets: *) Passive heuristics now goes to Degenerated GC first, and then maybe to Full GC. This allows more precise barrier overhead measurements, because we would be execute the exact same cycle, but in STW mode. *) Remove partial heuristics from testing. They are not used by anyone, and testing with them takes significant time. Instead, we have their own special test that verify partial heuristics are not terribly broken. *) Reshuffling the test configurations. The motivation for it is simple. We first test "passive" with either Degen or Full GC, to capture egregious mistakes in the GC code itself. Then we test "aggressive", along with all exceptional corner cases that the cycle might run into. Then we test default concurrent modes which can expose some new bugs, and only then special configs. *) TestHeapDump is much faster when we tune down its heap, because heap traversal resets the bitmap for the heap, and that takes time for larger heap. This cuts down tier3 testing time from 35 minutes to 25 minutes on my desktop. Testing: tier3_gc_shenandoah Thanks, -Aleksey From zgu at redhat.com Thu Sep 6 11:23:15 2018 From: zgu at redhat.com (Zhengyu Gu) Date: Thu, 6 Sep 2018 07:23:15 -0400 Subject: RFR: Grand heuristics and tests rehash In-Reply-To: <627380da-ef83-e804-5827-30be25a9777d@redhat.com> References: <627380da-ef83-e804-5827-30be25a9777d@redhat.com> Message-ID: Looks good. -Zhengyu On 09/06/2018 06:50 AM, Aleksey Shipilev wrote: > http://cr.openjdk.java.net/~shade/shenandoah/heuristics-tests/webrev.01/ > > This includes several interconnected changesets: > > *) Passive heuristics now goes to Degenerated GC first, and then maybe to Full GC. This allows more > precise barrier overhead measurements, because we would be execute the exact same cycle, but in STW > mode. > > *) Remove partial heuristics from testing. They are not used by anyone, and testing with them takes > significant time. Instead, we have their own special test that verify partial heuristics are not > terribly broken. > > *) Reshuffling the test configurations. The motivation for it is simple. We first test "passive" > with either Degen or Full GC, to capture egregious mistakes in the GC code itself. Then we test > "aggressive", along with all exceptional corner cases that the cycle might run into. Then we test > default concurrent modes which can expose some new bugs, and only then special configs. > > *) TestHeapDump is much faster when we tune down its heap, because heap traversal resets the bitmap > for the heap, and that takes time for larger heap. > > This cuts down tier3 testing time from 35 minutes to 25 minutes on my desktop. > > Testing: tier3_gc_shenandoah > > Thanks, > -Aleksey > From shade at redhat.com Thu Sep 6 11:25:27 2018 From: shade at redhat.com (shade at redhat.com) Date: Thu, 06 Sep 2018 11:25:27 +0000 Subject: hg: shenandoah/jdk: 4 new changesets Message-ID: <201809061125.w86BPS75000311@aojmv0008.oracle.com> Changeset: 7ad8e7996a82 Author: shade Date: 2018-09-06 12:44 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/7ad8e7996a82 Remove partial heuristics from regular testing ! test/hotspot/jtreg/gc/shenandoah/LotsOfCycles.java ! test/hotspot/jtreg/gc/shenandoah/ShenandoahStrDedupStress.java ! test/hotspot/jtreg/gc/shenandoah/TestGCThreadGroups.java + test/hotspot/jtreg/gc/shenandoah/TestPartialHeuristics.java ! test/hotspot/jtreg/gc/shenandoah/TestPeriodicGC.java ! test/hotspot/jtreg/gc/shenandoah/TestShenandoahStrDedup.java ! test/hotspot/jtreg/gc/shenandoah/acceptance/AllocHumongousFragment.java ! test/hotspot/jtreg/gc/shenandoah/acceptance/AllocIntArrays.java ! test/hotspot/jtreg/gc/shenandoah/acceptance/AllocObjectArrays.java ! test/hotspot/jtreg/gc/shenandoah/acceptance/AllocObjects.java ! test/hotspot/jtreg/gc/shenandoah/acceptance/HeapUncommit.java ! test/hotspot/jtreg/gc/shenandoah/acceptance/RetainObjects.java ! test/hotspot/jtreg/gc/shenandoah/acceptance/SieveObjects.java ! test/hotspot/jtreg/gc/shenandoah/acceptance/StringInternCleanup.java ! test/hotspot/jtreg/gc/shenandoah/acceptance/VerifyJCStressTest.java ! test/hotspot/jtreg/gc/shenandoah/mxbeans/ChurnNotifications.java ! test/hotspot/jtreg/gc/shenandoah/mxbeans/PauseNotifications.java ! test/hotspot/jtreg/gc/shenandoah/oom/TestClassLoaderLeak.java ! test/hotspot/jtreg/gc/stress/gcbasher/TestGCBasherWithShenandoah.java ! test/hotspot/jtreg/gc/stress/gcold/TestGCOldWithShenandoah.java Changeset: 8521e4b47ad8 Author: shade Date: 2018-09-06 12:44 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/8521e4b47ad8 Passive heuristics should enter degen GC, not full GC ! src/hotspot/share/gc/shenandoah/heuristics/shenandoahPassiveHeuristics.cpp ! src/hotspot/share/gc/shenandoah/heuristics/shenandoahPassiveHeuristics.hpp ! test/hotspot/jtreg/gc/shenandoah/CriticalNativeArgs.java ! test/hotspot/jtreg/gc/shenandoah/CriticalNativeStress.java ! test/hotspot/jtreg/gc/shenandoah/LotsOfCycles.java ! test/hotspot/jtreg/gc/shenandoah/PinnedGarbage.java ! test/hotspot/jtreg/gc/shenandoah/ShenandoahStrDedupStress.java ! test/hotspot/jtreg/gc/shenandoah/TestRegionSampling.java ! test/hotspot/jtreg/gc/shenandoah/TestShenandoahStrDedup.java ! test/hotspot/jtreg/gc/shenandoah/acceptance/AllocHumongousFragment.java ! test/hotspot/jtreg/gc/shenandoah/acceptance/AllocIntArrays.java ! test/hotspot/jtreg/gc/shenandoah/acceptance/AllocObjectArrays.java ! test/hotspot/jtreg/gc/shenandoah/acceptance/AllocObjects.java ! test/hotspot/jtreg/gc/shenandoah/acceptance/HeapUncommit.java ! test/hotspot/jtreg/gc/shenandoah/acceptance/RetainObjects.java ! test/hotspot/jtreg/gc/shenandoah/acceptance/SieveObjects.java ! test/hotspot/jtreg/gc/shenandoah/acceptance/StringInternCleanup.java ! test/hotspot/jtreg/gc/shenandoah/acceptance/VerifyJCStressTest.java ! test/hotspot/jtreg/gc/shenandoah/mxbeans/ChurnNotifications.java ! test/hotspot/jtreg/gc/shenandoah/mxbeans/PauseNotifications.java ! test/hotspot/jtreg/gc/stress/gcbasher/TestGCBasherWithShenandoah.java ! test/hotspot/jtreg/gc/stress/gcold/TestGCOldWithShenandoah.java Changeset: bdc6c213682f Author: shade Date: 2018-09-06 12:44 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/bdc6c213682f Reshuffle tests: verify STW GC is working first, then verify under aggressive, then the rest ! test/hotspot/jtreg/gc/shenandoah/CriticalNativeArgs.java ! test/hotspot/jtreg/gc/shenandoah/CriticalNativeStress.java ! test/hotspot/jtreg/gc/shenandoah/LotsOfCycles.java ! test/hotspot/jtreg/gc/shenandoah/PinnedGarbage.java ! test/hotspot/jtreg/gc/shenandoah/TestShenandoahStrDedup.java ! test/hotspot/jtreg/gc/shenandoah/acceptance/AllocHumongousFragment.java ! test/hotspot/jtreg/gc/shenandoah/acceptance/AllocIntArrays.java ! test/hotspot/jtreg/gc/shenandoah/acceptance/AllocObjectArrays.java ! test/hotspot/jtreg/gc/shenandoah/acceptance/AllocObjects.java ! test/hotspot/jtreg/gc/shenandoah/acceptance/HeapUncommit.java ! test/hotspot/jtreg/gc/shenandoah/acceptance/RetainObjects.java ! test/hotspot/jtreg/gc/shenandoah/acceptance/SieveObjects.java ! test/hotspot/jtreg/gc/shenandoah/acceptance/StringInternCleanup.java ! test/hotspot/jtreg/gc/shenandoah/mxbeans/ChurnNotifications.java ! test/hotspot/jtreg/gc/shenandoah/mxbeans/PauseNotifications.java ! test/hotspot/jtreg/gc/stress/gcbasher/TestGCBasherWithShenandoah.java ! test/hotspot/jtreg/gc/stress/gcold/TestGCOldWithShenandoah.java Changeset: e60d7f4b3ba9 Author: shade Date: 2018-09-06 13:25 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/e60d7f4b3ba9 TestHeapDump runs much faster with small heap ! test/hotspot/jtreg/gc/shenandoah/jvmti/TestHeapDump.java From rkennke at redhat.com Thu Sep 6 18:12:09 2018 From: rkennke at redhat.com (Roman Kennke) Date: Thu, 6 Sep 2018 20:12:09 +0200 Subject: RFR: Grand heuristics and tests rehash In-Reply-To: <627380da-ef83-e804-5827-30be25a9777d@redhat.com> References: <627380da-ef83-e804-5827-30be25a9777d@redhat.com> Message-ID: The change is ok. We should probably discuss and decide what to do with the partial heuristics. As you said, nobody's using them, and they don't currently have any practical advantage over adaptive or traversal (at least not that I know of). Their code now builds largely on traversal algorithm, and does add some complexity to it which could be avoided if we dropped partial. The main thing it does add barrier-wise is the matrix stuff, which *is* significant burden, and hasn't yet turned out to be very useful either. I do have some plans in the back in my mind to make a truly (multi-)concurrent, generational Shenandoah, which would build on traversal too, but not on current partial/generational stuff. It wouldn't use matrix/barriers either, it would instead use the classic dirty-cards approach. All of which means, we may well drop partial now/soonish, unless we have good reasons to keep it? WDYT? Roman > http://cr.openjdk.java.net/~shade/shenandoah/heuristics-tests/webrev.01/ > > This includes several interconnected changesets: > > *) Passive heuristics now goes to Degenerated GC first, and then maybe to Full GC. This allows more > precise barrier overhead measurements, because we would be execute the exact same cycle, but in STW > mode. > > *) Remove partial heuristics from testing. They are not used by anyone, and testing with them takes > significant time. Instead, we have their own special test that verify partial heuristics are not > terribly broken. > > *) Reshuffling the test configurations. The motivation for it is simple. We first test "passive" > with either Degen or Full GC, to capture egregious mistakes in the GC code itself. Then we test > "aggressive", along with all exceptional corner cases that the cycle might run into. Then we test > default concurrent modes which can expose some new bugs, and only then special configs. > > *) TestHeapDump is much faster when we tune down its heap, because heap traversal resets the bitmap > for the heap, and that takes time for larger heap. > > This cuts down tier3 testing time from 35 minutes to 25 minutes on my desktop. > > Testing: tier3_gc_shenandoah > > Thanks, > -Aleksey > From zgu at redhat.com Thu Sep 6 18:53:18 2018 From: zgu at redhat.com (Zhengyu Gu) Date: Thu, 6 Sep 2018 14:53:18 -0400 Subject: RFR: Enforce GC workers constraint Message-ID: <44e31b83-47fb-3d87-bd21-86e428c86e2a@redhat.com> CMS and G1 enforce GC worker constraint: Parallel workers >= Concurrent workers Shenandoah should probably do so. Webrev: http://cr.openjdk.java.net/~zgu/shenandoah/gc_worker_constraints/webrev.00/ Test: tier2_gc_shenandoah (fastdebug and release) Thanks, -Zhengyu From shade at redhat.com Thu Sep 6 19:25:10 2018 From: shade at redhat.com (Aleksey Shipilev) Date: Thu, 6 Sep 2018 21:25:10 +0200 Subject: RFR: Enforce GC workers constraint In-Reply-To: <44e31b83-47fb-3d87-bd21-86e428c86e2a@redhat.com> References: <44e31b83-47fb-3d87-bd21-86e428c86e2a@redhat.com> Message-ID: <21e2054f-3d79-b7fc-dbcf-a9761c9c807b@redhat.com> On 09/06/2018 08:53 PM, Zhengyu Gu wrote: > CMS and G1 enforce GC worker constraint: > ? Parallel workers >= Concurrent workers > > Shenandoah should probably do so. > > Webrev: http://cr.openjdk.java.net/~zgu/shenandoah/gc_worker_constraints/webrev.00/ The patch is okay, and probably sensible. But do we need to do this? Does it allow for any convenience in our code? I can mind-wrestle the example where having more concurrent threads (e.g. 4) than parallel (e.g. 2) is beneficial. Seems inconvenient to tie them together without the reason. -Aleksey From rkennke at redhat.com Thu Sep 6 19:32:21 2018 From: rkennke at redhat.com (Roman Kennke) Date: Thu, 6 Sep 2018 21:32:21 +0200 Subject: RFR: Enforce GC workers constraint In-Reply-To: <21e2054f-3d79-b7fc-dbcf-a9761c9c807b@redhat.com> References: <44e31b83-47fb-3d87-bd21-86e428c86e2a@redhat.com> <21e2054f-3d79-b7fc-dbcf-a9761c9c807b@redhat.com> Message-ID: <653af342-e345-10b1-f12f-4fc0d1024e9c@redhat.com> Am 06.09.2018 um 21:25 schrieb Aleksey Shipilev: > On 09/06/2018 08:53 PM, Zhengyu Gu wrote: >> CMS and G1 enforce GC worker constraint: >> ? Parallel workers >= Concurrent workers >> >> Shenandoah should probably do so. >> >> Webrev: http://cr.openjdk.java.net/~zgu/shenandoah/gc_worker_constraints/webrev.00/ > > The patch is okay, and probably sensible. But do we need to do this? Does it allow for any > convenience in our code? I can mind-wrestle the example where having more concurrent threads (e.g. > 4) than parallel (e.g. 2) is beneficial. Seems inconvenient to tie them together without the reason. > I was thinking the same. The issues are probably: - we need to keep testing this weird case to ensure it doesn't get broken - IIRC, we have some extra code block to deal with that case and re-balance the task queues when going from more conc-TQs to fewer par-TQs at the beginning of final-mark/final-traversal. We could wipe those blocks I think. Zhengyu probably knows better about this. However, if this is the case, those code blocks should be wiped together with the rest of the patch. Roman From shade at redhat.com Thu Sep 6 19:37:19 2018 From: shade at redhat.com (Aleksey Shipilev) Date: Thu, 6 Sep 2018 21:37:19 +0200 Subject: RFR: Grand heuristics and tests rehash In-Reply-To: References: <627380da-ef83-e804-5827-30be25a9777d@redhat.com> Message-ID: <51a9e5af-7f5b-5fed-5555-2cdf12dcedac@redhat.com> On 09/06/2018 08:12 PM, Roman Kennke wrote: > We should probably discuss and decide what to do with the partial > heuristics. As you said, nobody's using them, and they don't currently > have any practical advantage over adaptive or traversal (at least not > that I know of). Their code now builds largely on traversal algorithm, > and does add some complexity to it which could be avoided if we dropped > partial. The main thing it does add barrier-wise is the matrix stuff, > which *is* significant burden, and hasn't yet turned out to be very > useful either. > > I do have some plans in the back in my mind to make a truly > (multi-)concurrent, generational Shenandoah, which would build on > traversal too, but not on current partial/generational stuff. It > wouldn't use matrix/barriers either, it would instead use the classic > dirty-cards approach. All of which means, we may well drop partial > now/soonish, unless we have good reasons to keep it? I spent some time yesterday trying to whip partial in shape and understand how salvageable the whole thing is, and it seem to have bit-rotted quite heavily. For example, the way traversal tracks liveness and tries to avoid recently allocated regions (for which liveness is not available) means that "generational" heuristics never does any useful minor collections. With "connectedness", on workloads I tried, the matrix gets clobbered with connections very easily. On LRUFragger, "LRU" is no better than our current normal cycle with pacing and evac-reserve. I have not proposed to purge it, because I thought matrix would be useful for true generational, and partial heuristics make sure matrix barriers are in shape for that. But it sounds like that is not needed for future work. Therefore, I vote for removing all partial heuristics and the associated matrix code. Removing that code simplifies our development, testing, and backporting significantly. There is even less need to drag this thing upstream. If we ever need matrix stuff back, we can revert it from the Mercurial history. -Aleksey From zgu at redhat.com Thu Sep 6 20:03:36 2018 From: zgu at redhat.com (Zhengyu Gu) Date: Thu, 6 Sep 2018 16:03:36 -0400 Subject: RFR: Enforce GC workers constraint In-Reply-To: <653af342-e345-10b1-f12f-4fc0d1024e9c@redhat.com> References: <44e31b83-47fb-3d87-bd21-86e428c86e2a@redhat.com> <21e2054f-3d79-b7fc-dbcf-a9761c9c807b@redhat.com> <653af342-e345-10b1-f12f-4fc0d1024e9c@redhat.com> Message-ID: <45ceb18f-ee57-160e-a80c-2b21b91abb27@redhat.com> On 09/06/2018 03:32 PM, Roman Kennke wrote: > Am 06.09.2018 um 21:25 schrieb Aleksey Shipilev: >> On 09/06/2018 08:53 PM, Zhengyu Gu wrote: >>> CMS and G1 enforce GC worker constraint: >>> ? Parallel workers >= Concurrent workers >>> >>> Shenandoah should probably do so. >>> >>> Webrev: http://cr.openjdk.java.net/~zgu/shenandoah/gc_worker_constraints/webrev.00/ >> >> The patch is okay, and probably sensible. But do we need to do this? Does it allow for any >> convenience in our code? I can mind-wrestle the example where having more concurrent threads (e.g. >> 4) than parallel (e.g. 2) is beneficial. Seems inconvenient to tie them together without the reason. >> Well, do we really have cases that want to have more concurrent threads than parallel? If not, this constraint does help eliminate some code to balance queues in parallel phases. > > I was thinking the same. > > The issues are probably: > - we need to keep testing this weird case to ensure it doesn't get broken > - IIRC, we have some extra code block to deal with that case and > re-balance the task queues when going from more conc-TQs to fewer > par-TQs at the beginning of final-mark/final-traversal. We could wipe > those blocks I think. Zhengyu probably knows better about this. However, > if this is the case, those code blocks should be wiped together with the > rest of the patch. In case of concurrent threads always <= parallel threads, then we can eliminate queue reservation and extra queue claiming, which all done in parallel phases. Thanks, -Zhengyu > > Roman > From shade at redhat.com Thu Sep 6 20:19:28 2018 From: shade at redhat.com (Aleksey Shipilev) Date: Thu, 6 Sep 2018 22:19:28 +0200 Subject: RFR: Enforce GC workers constraint In-Reply-To: <45ceb18f-ee57-160e-a80c-2b21b91abb27@redhat.com> References: <44e31b83-47fb-3d87-bd21-86e428c86e2a@redhat.com> <21e2054f-3d79-b7fc-dbcf-a9761c9c807b@redhat.com> <653af342-e345-10b1-f12f-4fc0d1024e9c@redhat.com> <45ceb18f-ee57-160e-a80c-2b21b91abb27@redhat.com> Message-ID: <9be5ca0c-9f93-6283-c754-f98deec2cfba@redhat.com> On 09/06/2018 10:03 PM, Zhengyu Gu wrote: > On 09/06/2018 03:32 PM, Roman Kennke wrote: >> Am 06.09.2018 um 21:25 schrieb Aleksey Shipilev: >>> On 09/06/2018 08:53 PM, Zhengyu Gu wrote: >>>> CMS and G1 enforce GC worker constraint: >>>> ?? Parallel workers >= Concurrent workers >>>> >>>> Shenandoah should probably do so. >>>> >>>> Webrev: http://cr.openjdk.java.net/~zgu/shenandoah/gc_worker_constraints/webrev.00/ >>> >>> The patch is okay, and probably sensible. But do we need to do this? Does it allow for any >>> convenience in our code? I can mind-wrestle the example where having more concurrent threads (e.g. >>> 4) than parallel (e.g. 2) is beneficial. Seems inconvenient to tie them together without the reason. >>> > Well, do we really have cases that want to have more concurrent threads than parallel? If not, this > constraint does help eliminate some code to balance queues in parallel phases. I can imagine such a case. It is based on idea that we'd need to cut down the number of parallel threads to avoid scheduling overheads during pause where there is no need for too many threads. This is different from having lots of concurrent threads that share the work during longer concurrent phases. Let me think about this for a while. Meanwhile, maybe you can estimate how much Shenandoah code goes away with this? -Aleksey From zgu at redhat.com Thu Sep 6 20:22:17 2018 From: zgu at redhat.com (Zhengyu Gu) Date: Thu, 6 Sep 2018 16:22:17 -0400 Subject: RFR: Enforce GC workers constraint In-Reply-To: <45ceb18f-ee57-160e-a80c-2b21b91abb27@redhat.com> References: <44e31b83-47fb-3d87-bd21-86e428c86e2a@redhat.com> <21e2054f-3d79-b7fc-dbcf-a9761c9c807b@redhat.com> <653af342-e345-10b1-f12f-4fc0d1024e9c@redhat.com> <45ceb18f-ee57-160e-a80c-2b21b91abb27@redhat.com> Message-ID: Okay. Nevermind, we still need to deal dynamic workers, might have chance to calculate more concurrent threads than parallel threads (?) I withdraw this RFR for now. But will see if possible to enforce the same constraint with dynamic workers. -Zhengyu On 09/06/2018 04:03 PM, Zhengyu Gu wrote: > > > On 09/06/2018 03:32 PM, Roman Kennke wrote: >> Am 06.09.2018 um 21:25 schrieb Aleksey Shipilev: >>> On 09/06/2018 08:53 PM, Zhengyu Gu wrote: >>>> CMS and G1 enforce GC worker constraint: >>>> ?? Parallel workers >= Concurrent workers >>>> >>>> Shenandoah should probably do so. >>>> >>>> Webrev: >>>> http://cr.openjdk.java.net/~zgu/shenandoah/gc_worker_constraints/webrev.00/ >>>> >>> >>> The patch is okay, and probably sensible. But do we need to do this? >>> Does it allow for any >>> convenience in our code? I can mind-wrestle the example where having >>> more concurrent threads (e.g. >>> 4) than parallel (e.g. 2) is beneficial. Seems inconvenient to tie >>> them together without the reason. >>> > Well, do we really have cases that want to have more concurrent threads > than parallel? If not, this constraint does help eliminate some code to > balance queues in parallel phases. > >> >> I was thinking the same. >> >> The issues are probably: >> - we need to keep testing this weird case to ensure it doesn't get broken >> - IIRC, we have some extra code block to deal with that case and >> re-balance the task queues when going from more conc-TQs to fewer >> par-TQs at the beginning of final-mark/final-traversal. We could wipe >> those blocks I think. Zhengyu probably knows better about this. However, >> if this is the case, those code blocks should be wiped together with the >> rest of the patch. > > In case of concurrent threads always <= parallel threads, then we can > eliminate queue reservation and extra queue claiming, which all done in > parallel phases. > > Thanks, > > -Zhengyu > > >> >> Roman >> From shade at redhat.com Thu Sep 6 20:31:53 2018 From: shade at redhat.com (Aleksey Shipilev) Date: Thu, 6 Sep 2018 22:31:53 +0200 Subject: RFR: Grand heuristics and tests rehash In-Reply-To: <51a9e5af-7f5b-5fed-5555-2cdf12dcedac@redhat.com> References: <627380da-ef83-e804-5827-30be25a9777d@redhat.com> <51a9e5af-7f5b-5fed-5555-2cdf12dcedac@redhat.com> Message-ID: On 09/06/2018 09:37 PM, Aleksey Shipilev wrote: > Therefore, I vote for removing all partial heuristics and the associated matrix code. Removing that > code simplifies our development, testing, and backporting significantly. There is even less need to > drag this thing upstream. If we ever need matrix stuff back, we can revert it from the Mercurial > history. My dirty removal patch recovers >2 KLOC: 49 files changed, 85 insertions(+), 2097 deletions(-) It would probably remove more once I search for unused methods. -Aleksey From rkennke at redhat.com Thu Sep 6 20:42:28 2018 From: rkennke at redhat.com (Roman Kennke) Date: Thu, 6 Sep 2018 22:42:28 +0200 Subject: RFR: Grand heuristics and tests rehash In-Reply-To: References: <627380da-ef83-e804-5827-30be25a9777d@redhat.com> <51a9e5af-7f5b-5fed-5555-2cdf12dcedac@redhat.com> Message-ID: <7e4f18b6-4421-f1bb-3204-a4270dce2eea@redhat.com> > On 09/06/2018 09:37 PM, Aleksey Shipilev wrote: >> Therefore, I vote for removing all partial heuristics and the associated matrix code. Removing that >> code simplifies our development, testing, and backporting significantly. There is even less need to >> drag this thing upstream. If we ever need matrix stuff back, we can revert it from the Mercurial >> history. > > My dirty removal patch recovers >2 KLOC: > 49 files changed, 85 insertions(+), 2097 deletions(-) > > It would probably remove more once I search for unused methods. > > -Aleksey > Great! I'm also for removing it. We can revive the matrix stuff if we ever need it back. Roman From zgu at redhat.com Thu Sep 6 21:20:31 2018 From: zgu at redhat.com (Zhengyu Gu) Date: Thu, 6 Sep 2018 17:20:31 -0400 Subject: RFR: Enforce GC workers constraint In-Reply-To: <9be5ca0c-9f93-6283-c754-f98deec2cfba@redhat.com> References: <44e31b83-47fb-3d87-bd21-86e428c86e2a@redhat.com> <21e2054f-3d79-b7fc-dbcf-a9761c9c807b@redhat.com> <653af342-e345-10b1-f12f-4fc0d1024e9c@redhat.com> <45ceb18f-ee57-160e-a80c-2b21b91abb27@redhat.com> <9be5ca0c-9f93-6283-c754-f98deec2cfba@redhat.com> Message-ID: <7aa4b058-22ae-e8ed-6b14-511616a9b59a@redhat.com> > I can imagine such a case. It is based on idea that we'd need to cut down the number of parallel > threads to avoid scheduling overheads during pause where there is no need for too many threads. This > is different from having lots of concurrent threads that share the work during longer concurrent phases. > > Let me think about this for a while. Meanwhile, maybe you can estimate how much Shenandoah code goes > away with this? I guess we can not cut down those code, cause in concurrent phases, we still need to process all queues seeded by parallel phases. I am curious about how can you estimate works for lesser workers. I am experimenting dynamic workers calculation algorithm - current sizing algorithm pretty much dictated heap size, e.g. 32M per GC thread, which only takes 256M to max out 8 workers on my laptop. Thanks, -Zhengyu > > -Aleksey > > From shade at redhat.com Fri Sep 7 07:42:15 2018 From: shade at redhat.com (Aleksey Shipilev) Date: Fri, 7 Sep 2018 09:42:15 +0200 Subject: Potential ShTraversalGC::weak_refs_work_doit bug Message-ID: <67abf23c-b502-2e58-5d58-5569cb18af9f@redhat.com> Hey, This block has some weirdness: http://hg.openjdk.java.net/shenandoah/jdk/file/e60d7f4b3ba9/src/hotspot/share/gc/shenandoah/shenandoahTraversalGC.cpp#l1164 *) is_alive is redefined -- to the same value? *) complete_gc is not used? Shouldn't we call it to pick up new stuff from weak_oops_do? Thanks, -Aleksey From shade at redhat.com Fri Sep 7 08:21:43 2018 From: shade at redhat.com (Aleksey Shipilev) Date: Fri, 7 Sep 2018 10:21:43 +0200 Subject: RFR: Purge partial heuristics and connection matrix infrastructure Message-ID: <24c08c1c-78ed-f2ff-459e-eb067c7fce9c@redhat.com> http://cr.openjdk.java.net/~shade/shenandoah/remove-partial/webrev.01/ As discussed earlier [1], this patch removes partial heuristics and associated matrix machinery. This greatly simplifies the codebase. Testing: x86_64 tier3_gc_shenandoah {fastdebug|release}, aarch64 build [1] http://mail.openjdk.java.net/pipermail/shenandoah-dev/2018-September/007385.html From shade at redhat.com Fri Sep 7 10:03:10 2018 From: shade at redhat.com (Aleksey Shipilev) Date: Fri, 7 Sep 2018 12:03:10 +0200 Subject: Heads-up: multiple crashes on AArch64 Message-ID: http://cr.openjdk.java.net/~shade/shenandoah/crashes/aarch64/ hs_errs above, the command lines are there too. This seems to only happen with Shenandoah, and only on aarch64. It looks like there are two issues: a) Some instruction gets too large with C1. This happens on all versions: sh/jdk, sh/jdk11, sh/jdk10, sh/jdk8. b) Some locking code is broken with C2. This happens with sh/jdk, but not anywhere else. Roman, can you take a look, please? Thanks, -Aleksey From rkennke at redhat.com Fri Sep 7 10:56:35 2018 From: rkennke at redhat.com (Roman Kennke) Date: Fri, 07 Sep 2018 12:56:35 +0200 Subject: Heads-up: multiple crashes on AArch64 In-Reply-To: References: Message-ID: Am 7. September 2018 12:03:10 MESZ schrieb Aleksey Shipilev : >http://cr.openjdk.java.net/~shade/shenandoah/crashes/aarch64/ > >hs_errs above, the command lines are there too. This seems to only >happen with Shenandoah, and only >on aarch64. > >It looks like there are two issues: >a) Some instruction gets too large with C1. This happens on all >versions: sh/jdk, sh/jdk11, >sh/jdk10, sh/jdk8. >b) Some locking code is broken with C2. This happens with sh/jdk, but >not anywhere else. > >Roman, can you take a look, please? Yes, but next Monday earliest. Roman > >Thanks, >-Aleksey From zgu at redhat.com Fri Sep 7 16:48:42 2018 From: zgu at redhat.com (Zhengyu Gu) Date: Fri, 7 Sep 2018 12:48:42 -0400 Subject: RFR: Cleanup: remove unused root processor's sub tasks Message-ID: <9ed445d7-4b3c-6334-4928-1b6645367330@redhat.com> Those sub tasks are not used anymore, some are depreciated, some are processed by all workers. Webrev: http://cr.openjdk.java.net/~zgu/shenandoah/rm_unused_subtasks/webrev.00/ Test: tier2_gc_shenandoah (release and fastdebug) Thanks, -Zhengyu From shade at redhat.com Fri Sep 7 16:51:11 2018 From: shade at redhat.com (Aleksey Shipilev) Date: Fri, 7 Sep 2018 18:51:11 +0200 Subject: RFR: Cleanup: remove unused root processor's sub tasks In-Reply-To: <9ed445d7-4b3c-6334-4928-1b6645367330@redhat.com> References: <9ed445d7-4b3c-6334-4928-1b6645367330@redhat.com> Message-ID: <2d934edf-554b-c147-b8a7-daf25eb9fdea@redhat.com> On 09/07/2018 06:48 PM, Zhengyu Gu wrote: > Those sub tasks are not used anymore, some are depreciated, some are processed by all workers. > > Webrev: http://cr.openjdk.java.net/~zgu/shenandoah/rm_unused_subtasks/webrev.00/ Looks good. -Aleksey From zgu at redhat.com Fri Sep 7 16:56:52 2018 From: zgu at redhat.com (zgu at redhat.com) Date: Fri, 07 Sep 2018 16:56:52 +0000 Subject: hg: shenandoah/jdk: Cleanup: remove unused root processor's sub tasks Message-ID: <201809071656.w87GuqgI015891@aojmv0008.oracle.com> Changeset: 96802db391ff Author: zgu Date: 2018-09-07 12:56 -0400 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/96802db391ff Cleanup: remove unused root processor's sub tasks ! src/hotspot/share/gc/shenandoah/shenandoahRootProcessor.hpp From shade at redhat.com Sat Sep 8 09:38:25 2018 From: shade at redhat.com (Aleksey Shipilev) Date: Sat, 8 Sep 2018 11:38:25 +0200 Subject: RFR [10]: Allocation path should not touch GC barriers for metadata Message-ID: http://cr.openjdk.java.net/~shade/shenandoah/10-alloc-barriers/webrev.01/ Found this during backports. The allocation path touches Shenandoah WB, which is bad enough in itself. It fails with new asserts that verify class fields, because allocation path calls those barriers on incomplete objects, for example *before* the klass is initialized. sh/jdk11 onward do this correctly with raw accesses. We need to do the same in lower JDKs. Testing: tier3_gc_shenandoah for sh/jdk10 and sh/jdk8u Thanks, -Aleksey From rkennke at redhat.com Sat Sep 8 09:42:40 2018 From: rkennke at redhat.com (Roman Kennke) Date: Sat, 08 Sep 2018 11:42:40 +0200 Subject: RFR [10]: Allocation path should not touch GC barriers for metadata In-Reply-To: References: Message-ID: OK. Thanks! Am 8. September 2018 11:38:25 MESZ schrieb Aleksey Shipilev : >http://cr.openjdk.java.net/~shade/shenandoah/10-alloc-barriers/webrev.01/ > >Found this during backports. The allocation path touches Shenandoah WB, >which is bad enough in >itself. It fails with new asserts that verify class fields, because >allocation path calls those >barriers on incomplete objects, for example *before* the klass is >initialized. > >sh/jdk11 onward do this correctly with raw accesses. We need to do the >same in lower JDKs. > >Testing: tier3_gc_shenandoah for sh/jdk10 and sh/jdk8u > >Thanks, >-Aleksey From shade at redhat.com Sat Sep 8 10:20:45 2018 From: shade at redhat.com (shade at redhat.com) Date: Sat, 08 Sep 2018 10:20:45 +0000 Subject: hg: shenandoah/jdk10: Allocation path should not touch GC barriers for metadata Message-ID: <201809081020.w88AKjqY020954@aojmv0008.oracle.com> Changeset: 4a3754d5285e Author: shade Date: 2018-09-08 12:18 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk10/rev/4a3754d5285e Allocation path should not touch GC barriers for metadata ! src/hotspot/share/classfile/javaClasses.cpp ! src/hotspot/share/gc/shared/collectedHeap.inline.hpp ! src/hotspot/share/oops/oop.hpp ! src/hotspot/share/oops/oop.inline.hpp From shade at redhat.com Sat Sep 8 12:46:58 2018 From: shade at redhat.com (Aleksey Shipilev) Date: Sat, 8 Sep 2018 14:46:58 +0200 Subject: RFR: EvilSyncBug test is too slow Message-ID: <2edd125b-89f7-c13d-62e6-4a6c96a6ee8d@redhat.com> This test never failed for years. Seems odd to stress use it with very long runs (takes ~10 minutes in sh/jdk8u with new asserts). Let's trim its run time down: diff -r 96802db391ff test/hotspot/jtreg/gc/shenandoah/EvilSyncBug.java --- a/test/hotspot/jtreg/gc/shenandoah/EvilSyncBug.java Fri Sep 07 12:56:42 2018 -0400 +++ b/test/hotspot/jtreg/gc/shenandoah/EvilSyncBug.java Sat Sep 08 14:33:01 2018 +0200 @@ -41,5 +41,5 @@ public class EvilSyncBug { - private static final int NUM_RUNS = 200; + private static final int NUM_RUNS = 20; static Thread[] hooks = new MyHook[10000]; Testing: EvilSyncBug with sh/jdk8u -Aleksey From rkennke at redhat.com Sat Sep 8 13:16:13 2018 From: rkennke at redhat.com (Roman Kennke) Date: Sat, 08 Sep 2018 15:16:13 +0200 Subject: RFR: EvilSyncBug test is too slow In-Reply-To: <2edd125b-89f7-c13d-62e6-4a6c96a6ee8d@redhat.com> References: <2edd125b-89f7-c13d-62e6-4a6c96a6ee8d@redhat.com> Message-ID: <4402B4DC-E897-4370-BC3B-3E8E4B357529@redhat.com> Not sure. Back then I needed to crank up the number of runs to make the test fail at least somewhat reliably. The risk is that something gets changed in thread termination and this thread coming back. This one haunted us for some weeks, and it was an actual customer/early adopters bug. The test prevents that from coming back. Still not sure... Am 8. September 2018 14:46:58 MESZ schrieb Aleksey Shipilev : >This test never failed for years. Seems odd to stress use it with very >long runs (takes ~10 minutes >in sh/jdk8u with new asserts). Let's trim its run time down: > >diff -r 96802db391ff test/hotspot/jtreg/gc/shenandoah/EvilSyncBug.java >--- a/test/hotspot/jtreg/gc/shenandoah/EvilSyncBug.java Fri Sep 07 >12:56:42 2018 -0400 >+++ b/test/hotspot/jtreg/gc/shenandoah/EvilSyncBug.java Sat Sep 08 >14:33:01 2018 +0200 >@@ -41,5 +41,5 @@ > public class EvilSyncBug { > >- private static final int NUM_RUNS = 200; >+ private static final int NUM_RUNS = 20; > > static Thread[] hooks = new MyHook[10000]; > >Testing: EvilSyncBug with sh/jdk8u > >-Aleksey From shade at redhat.com Sat Sep 8 14:12:53 2018 From: shade at redhat.com (Aleksey Shipilev) Date: Sat, 8 Sep 2018 16:12:53 +0200 Subject: RFR: Purge partial heuristics and connection matrix infrastructure In-Reply-To: <24c08c1c-78ed-f2ff-459e-eb067c7fce9c@redhat.com> References: <24c08c1c-78ed-f2ff-459e-eb067c7fce9c@redhat.com> Message-ID: <9bbad941-dd12-1652-6e8c-d592a33f41d1@redhat.com> Friendly reminder: please review. The patch is not small, and there is a chance it would rot. -Aleksey On 09/07/2018 10:21 AM, Aleksey Shipilev wrote: > http://cr.openjdk.java.net/~shade/shenandoah/remove-partial/webrev.01/ > > As discussed earlier [1], this patch removes partial heuristics and associated matrix machinery. > This greatly simplifies the codebase. > > Testing: x86_64 tier3_gc_shenandoah {fastdebug|release}, aarch64 build > > [1] http://mail.openjdk.java.net/pipermail/shenandoah-dev/2018-September/007385.html > From shade at redhat.com Sat Sep 8 14:18:33 2018 From: shade at redhat.com (Aleksey Shipilev) Date: Sat, 8 Sep 2018 16:18:33 +0200 Subject: RFR: EvilSyncBug test is too slow In-Reply-To: <4402B4DC-E897-4370-BC3B-3E8E4B357529@redhat.com> References: <2edd125b-89f7-c13d-62e6-4a6c96a6ee8d@redhat.com> <4402B4DC-E897-4370-BC3B-3E8E4B357529@redhat.com> Message-ID: <257e0797-0eab-0fc5-88df-511ec77aafba@redhat.com> On 09/08/2018 03:16 PM, Roman Kennke wrote: > Not sure. Back then I needed to crank up the number of runs to make the test fail at least > somewhat reliably. The risk is that something gets changed in thread termination and this thread > coming back. > This one haunted us for some weeks, and it was an actual customer/early adopters bug. The test > prevents that from coming back. IIRC, it was a jcstress bug found by us. I think we have enough safety net now: we have gc-state that is verified/asserted specially, we have oom-evac thing that has its own test configurations, we even have VerifyJCStress test that is derived from jcstress test. This is why I propose to trim the test down, not to remove it. The bugs, if any not captured by the safety net above, would show up in continuous testing, without prolonging the usual tier3 too much. -Aleksey From rkennke at redhat.com Sat Sep 8 14:27:44 2018 From: rkennke at redhat.com (Roman Kennke) Date: Sat, 08 Sep 2018 16:27:44 +0200 Subject: RFR: EvilSyncBug test is too slow In-Reply-To: <257e0797-0eab-0fc5-88df-511ec77aafba@redhat.com> References: <2edd125b-89f7-c13d-62e6-4a6c96a6ee8d@redhat.com> <4402B4DC-E897-4370-BC3B-3E8E4B357529@redhat.com> <257e0797-0eab-0fc5-88df-511ec77aafba@redhat.com> Message-ID: <09F64398-13C2-49B4-9BBE-501D2F0B4C84@redhat.com> OK then. Am 8. September 2018 16:18:33 MESZ schrieb Aleksey Shipilev : >On 09/08/2018 03:16 PM, Roman Kennke wrote: >> Not sure. Back then I needed to crank up the number of runs to make >the test fail at least >> somewhat reliably. The risk is that something gets changed in thread >termination and this thread >> coming back. > >> This one haunted us for some weeks, and it was an actual >customer/early adopters bug. The test >> prevents that from coming back. > >IIRC, it was a jcstress bug found by us. > >I think we have enough safety net now: we have gc-state that is >verified/asserted specially, we have >oom-evac thing that has its own test configurations, we even have >VerifyJCStress test that is >derived from jcstress test. > >This is why I propose to trim the test down, not to remove it. The >bugs, if any not captured by the >safety net above, would show up in continuous testing, without >prolonging the usual tier3 too much. > >-Aleksey From rkennke at redhat.com Sat Sep 8 14:29:17 2018 From: rkennke at redhat.com (Roman Kennke) Date: Sat, 08 Sep 2018 16:29:17 +0200 Subject: RFR: Purge partial heuristics and connection matrix infrastructure In-Reply-To: <9bbad941-dd12-1652-6e8c-d592a33f41d1@redhat.com> References: <24c08c1c-78ed-f2ff-459e-eb067c7fce9c@redhat.com> <9bbad941-dd12-1652-6e8c-d592a33f41d1@redhat.com> Message-ID: <4B80F373-5567-42FF-ACA7-6964AEADF37D@redhat.com> I'm traveling and can review it Monday. Am 8. September 2018 16:12:53 MESZ schrieb Aleksey Shipilev : >Friendly reminder: please review. The patch is not small, and there is >a chance it would rot. > >-Aleksey > >On 09/07/2018 10:21 AM, Aleksey Shipilev wrote: >> >http://cr.openjdk.java.net/~shade/shenandoah/remove-partial/webrev.01/ >> >> As discussed earlier [1], this patch removes partial heuristics and >associated matrix machinery. >> This greatly simplifies the codebase. >> >> Testing: x86_64 tier3_gc_shenandoah {fastdebug|release}, aarch64 >build >> >> [1] >http://mail.openjdk.java.net/pipermail/shenandoah-dev/2018-September/007385.html >> From shade at redhat.com Sat Sep 8 14:54:16 2018 From: shade at redhat.com (shade at redhat.com) Date: Sat, 08 Sep 2018 14:54:16 +0000 Subject: hg: shenandoah/jdk: EvilSyncBug test is too slow Message-ID: <201809081454.w88EsGqR003484@aojmv0008.oracle.com> Changeset: 2cc523a06e14 Author: shade Date: 2018-09-08 16:53 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/2cc523a06e14 EvilSyncBug test is too slow ! test/hotspot/jtreg/gc/shenandoah/EvilSyncBug.java From rkennke at redhat.com Mon Sep 10 08:53:52 2018 From: rkennke at redhat.com (Roman Kennke) Date: Mon, 10 Sep 2018 10:53:52 +0200 Subject: RFR: Purge partial heuristics and connection matrix infrastructure In-Reply-To: <9bbad941-dd12-1652-6e8c-d592a33f41d1@redhat.com> References: <24c08c1c-78ed-f2ff-459e-eb067c7fce9c@redhat.com> <9bbad941-dd12-1652-6e8c-d592a33f41d1@redhat.com> Message-ID: <86723925-3629-aec2-faa9-4d7db9ee056b@redhat.com> The patch looks good. Thanks! Roman > Friendly reminder: please review. The patch is not small, and there is a chance it would rot. > > -Aleksey > > On 09/07/2018 10:21 AM, Aleksey Shipilev wrote: >> http://cr.openjdk.java.net/~shade/shenandoah/remove-partial/webrev.01/ >> >> As discussed earlier [1], this patch removes partial heuristics and associated matrix machinery. >> This greatly simplifies the codebase. >> >> Testing: x86_64 tier3_gc_shenandoah {fastdebug|release}, aarch64 build >> >> [1] http://mail.openjdk.java.net/pipermail/shenandoah-dev/2018-September/007385.html >> > > From shade at redhat.com Mon Sep 10 08:54:47 2018 From: shade at redhat.com (shade at redhat.com) Date: Mon, 10 Sep 2018 08:54:47 +0000 Subject: hg: shenandoah/jdk: Purge partial heuristics and connection matrix infrastructure Message-ID: <201809100854.w8A8slWK010563@aojmv0008.oracle.com> Changeset: 551c72da087a Author: shade Date: 2018-09-10 10:27 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/551c72da087a Purge partial heuristics and connection matrix infrastructure ! src/hotspot/cpu/aarch64/gc/shenandoah/shenandoahBarrierSetAssembler_aarch64.cpp ! src/hotspot/cpu/aarch64/gc/shenandoah/shenandoahBarrierSetAssembler_aarch64.hpp ! src/hotspot/cpu/x86/gc/shenandoah/shenandoahBarrierSetAssembler_x86.cpp ! src/hotspot/cpu/x86/gc/shenandoah/shenandoahBarrierSetAssembler_x86.hpp ! src/hotspot/share/gc/shenandoah/c1/shenandoahBarrierSetC1.cpp ! src/hotspot/share/gc/shenandoah/c1/shenandoahBarrierSetC1.hpp ! src/hotspot/share/gc/shenandoah/c2/shenandoahBarrierSetC2.cpp ! src/hotspot/share/gc/shenandoah/c2/shenandoahBarrierSetC2.hpp ! src/hotspot/share/gc/shenandoah/c2/shenandoahSupport.cpp - src/hotspot/share/gc/shenandoah/heuristics/shenandoahPartialConnectedHeuristics.cpp - src/hotspot/share/gc/shenandoah/heuristics/shenandoahPartialConnectedHeuristics.hpp - src/hotspot/share/gc/shenandoah/heuristics/shenandoahPartialGenerationalHeuristics.cpp - src/hotspot/share/gc/shenandoah/heuristics/shenandoahPartialGenerationalHeuristics.hpp - src/hotspot/share/gc/shenandoah/heuristics/shenandoahPartialHeuristics.cpp - src/hotspot/share/gc/shenandoah/heuristics/shenandoahPartialHeuristics.hpp - src/hotspot/share/gc/shenandoah/heuristics/shenandoahPartialLRUHeuristics.cpp - src/hotspot/share/gc/shenandoah/heuristics/shenandoahPartialLRUHeuristics.hpp ! src/hotspot/share/gc/shenandoah/heuristics/shenandoahPassiveHeuristics.cpp ! src/hotspot/share/gc/shenandoah/heuristics/shenandoahTraversalHeuristics.cpp ! src/hotspot/share/gc/shenandoah/heuristics/shenandoahTraversalHeuristics.hpp ! src/hotspot/share/gc/shenandoah/shenandoahArguments.cpp ! src/hotspot/share/gc/shenandoah/shenandoahAsserts.cpp ! src/hotspot/share/gc/shenandoah/shenandoahBarrierSet.cpp ! src/hotspot/share/gc/shenandoah/shenandoahBarrierSet.hpp ! src/hotspot/share/gc/shenandoah/shenandoahBarrierSet.inline.hpp ! src/hotspot/share/gc/shenandoah/shenandoahCollectorPolicy.cpp ! src/hotspot/share/gc/shenandoah/shenandoahCollectorPolicy.hpp - src/hotspot/share/gc/shenandoah/shenandoahConnectionMatrix.cpp - src/hotspot/share/gc/shenandoah/shenandoahConnectionMatrix.hpp - src/hotspot/share/gc/shenandoah/shenandoahConnectionMatrix.inline.hpp ! src/hotspot/share/gc/shenandoah/shenandoahControlThread.cpp ! src/hotspot/share/gc/shenandoah/shenandoahHeap.cpp ! src/hotspot/share/gc/shenandoah/shenandoahHeap.hpp ! src/hotspot/share/gc/shenandoah/shenandoahHeap.inline.hpp ! src/hotspot/share/gc/shenandoah/shenandoahHeapRegion.cpp ! src/hotspot/share/gc/shenandoah/shenandoahHeapRegionCounters.cpp ! src/hotspot/share/gc/shenandoah/shenandoahHeapRegionCounters.hpp ! src/hotspot/share/gc/shenandoah/shenandoahHeuristics.cpp ! src/hotspot/share/gc/shenandoah/shenandoahHeuristics.hpp ! src/hotspot/share/gc/shenandoah/shenandoahMarkCompact.cpp ! src/hotspot/share/gc/shenandoah/shenandoahOopClosures.hpp ! src/hotspot/share/gc/shenandoah/shenandoahOopClosures.inline.hpp ! src/hotspot/share/gc/shenandoah/shenandoahPacer.hpp ! src/hotspot/share/gc/shenandoah/shenandoahPacer.inline.hpp ! src/hotspot/share/gc/shenandoah/shenandoahTraversalGC.cpp ! src/hotspot/share/gc/shenandoah/shenandoahTraversalGC.hpp ! src/hotspot/share/gc/shenandoah/shenandoahTraversalGC.inline.hpp ! src/hotspot/share/gc/shenandoah/shenandoahVerifier.cpp ! src/hotspot/share/gc/shenandoah/shenandoahVerifier.hpp ! src/hotspot/share/gc/shenandoah/shenandoah_globals.hpp ! src/hotspot/share/opto/arraycopynode.cpp ! src/hotspot/share/opto/compile.cpp ! src/hotspot/share/opto/compile.hpp - test/hotspot/jtreg/gc/shenandoah/TestPartialHeuristics.java ! test/hotspot/jtreg/gc/shenandoah/TestRegionSampling.java ! test/hotspot/jtreg/gc/shenandoah/options/TestHeuristicsUnlock.java From rkennke at redhat.com Mon Sep 10 09:38:49 2018 From: rkennke at redhat.com (Roman Kennke) Date: Mon, 10 Sep 2018 11:38:49 +0200 Subject: Potential ShTraversalGC::weak_refs_work_doit bug In-Reply-To: <67abf23c-b502-2e58-5d58-5569cb18af9f@redhat.com> References: <67abf23c-b502-2e58-5d58-5569cb18af9f@redhat.com> Message-ID: > This block has some weirdness: > > http://hg.openjdk.java.net/shenandoah/jdk/file/e60d7f4b3ba9/src/hotspot/share/gc/shenandoah/shenandoahTraversalGC.cpp#l1164 > > *) is_alive is redefined -- to the same value? Where do you see is_alive redefined? It is defined once here: http://hg.openjdk.java.net/shenandoah/jdk/file/e60d7f4b3ba9/src/hotspot/share/gc/shenandoah/shenandoahTraversalGC.cpp#l1172 > *) complete_gc is not used? Shouldn't we call it to pick up new stuff from weak_oops_do? It is used in WeakProcessor::weak_oops_do() calls, isn't it? Or maybe I misunderstand your questions? Roman From shade at redhat.com Mon Sep 10 09:46:55 2018 From: shade at redhat.com (Aleksey Shipilev) Date: Mon, 10 Sep 2018 11:46:55 +0200 Subject: Potential ShTraversalGC::weak_refs_work_doit bug In-Reply-To: References: <67abf23c-b502-2e58-5d58-5569cb18af9f@redhat.com> Message-ID: On 09/10/2018 11:38 AM, Roman Kennke wrote: >> This block has some weirdness: >> >> http://hg.openjdk.java.net/shenandoah/jdk/file/e60d7f4b3ba9/src/hotspot/share/gc/shenandoah/shenandoahTraversalGC.cpp#l1164 >> >> *) is_alive is redefined -- to the same value? > > Where do you see is_alive redefined? It is defined once here: > http://hg.openjdk.java.net/shenandoah/jdk/file/e60d7f4b3ba9/src/hotspot/share/gc/shenandoah/shenandoahTraversalGC.cpp#l1172 > > >> *) complete_gc is not used? Shouldn't we call it to pick up new stuff from weak_oops_do? > > It is used in WeakProcessor::weak_oops_do() calls, isn't it? > > Or maybe I misunderstand your questions? It really helps to use the proper IDE that highlights those things ;) http://cr.openjdk.java.net/~shade/shenandoah/clion-traversal-rp.png -Aleksey From rkennke at redhat.com Mon Sep 10 10:50:32 2018 From: rkennke at redhat.com (Roman Kennke) Date: Mon, 10 Sep 2018 12:50:32 +0200 Subject: Potential ShTraversalGC::weak_refs_work_doit bug In-Reply-To: References: <67abf23c-b502-2e58-5d58-5569cb18af9f@redhat.com> Message-ID: Am 10.09.2018 um 11:46 schrieb Aleksey Shipilev: > On 09/10/2018 11:38 AM, Roman Kennke wrote: >>> This block has some weirdness: >>> >>> http://hg.openjdk.java.net/shenandoah/jdk/file/e60d7f4b3ba9/src/hotspot/share/gc/shenandoah/shenandoahTraversalGC.cpp#l1164 >>> >>> *) is_alive is redefined -- to the same value? >> >> Where do you see is_alive redefined? It is defined once here: >> http://hg.openjdk.java.net/shenandoah/jdk/file/e60d7f4b3ba9/src/hotspot/share/gc/shenandoah/shenandoahTraversalGC.cpp#l1172 >> >> >>> *) complete_gc is not used? Shouldn't we call it to pick up new stuff from weak_oops_do? >> >> It is used in WeakProcessor::weak_oops_do() calls, isn't it? >> >> Or maybe I misunderstand your questions? > > It really helps to use the proper IDE that highlights those things ;) > http://cr.openjdk.java.net/~shade/shenandoah/clion-traversal-rp.png > > -Aleksey > > Oook. So yeah, we only need 1 of the is_alive. I am not sure about complete_gc. The interfaces in WeakProcessor don't seem to require it, so either this is really not needed, or the complete-closure is expected to be piggy-backed on keep_alive, or the GC is expected to run an extra complete-gc phase afterwards. We should figure that out. Also, we really should switch to use parallel WeakProcessor. Roman From rkennke at redhat.com Mon Sep 10 12:39:13 2018 From: rkennke at redhat.com (Roman Kennke) Date: Mon, 10 Sep 2018 14:39:13 +0200 Subject: RFR: Add missing SBSA::resolve() to AArch64 ShBarrierSetAssembler Message-ID: <9ca040af-5878-c1f4-c327-aedbe0137408@redhat.com> We're lacking the ShBSA::resolve() in AArch64 and that is responsible for some of the failures we see in AArch64. http://cr.openjdk.java.net/~rkennke/aarch64-resolve/webrev.00/ Testing: Manual tests that failed before with -Xint. Can't run tier3_gc_shenandoah yet due to other failures Roman From shade at redhat.com Mon Sep 10 13:37:37 2018 From: shade at redhat.com (Aleksey Shipilev) Date: Mon, 10 Sep 2018 15:37:37 +0200 Subject: RFR: Add missing SBSA::resolve() to AArch64 ShBarrierSetAssembler In-Reply-To: <9ca040af-5878-c1f4-c327-aedbe0137408@redhat.com> References: <9ca040af-5878-c1f4-c327-aedbe0137408@redhat.com> Message-ID: <79a5da41-0b4a-e0db-d605-06ccbd870c83@redhat.com> On 09/10/2018 02:39 PM, Roman Kennke wrote: > We're lacking the ShBSA::resolve() in AArch64 and that is responsible > for some of the failures we see in AArch64. > > http://cr.openjdk.java.net/~rkennke/aarch64-resolve/webrev.00/ Looks good. -Aleksey From roman at kennke.org Mon Sep 10 13:42:00 2018 From: roman at kennke.org (roman at kennke.org) Date: Mon, 10 Sep 2018 13:42:00 +0000 Subject: hg: shenandoah/jdk: Add missing SBSA::resolve() to AArch64 ShBarrierSetAssembler Message-ID: <201809101342.w8ADg1Zb010106@aojmv0008.oracle.com> Changeset: 8c5a133f5b58 Author: rkennke Date: 2018-09-10 08:36 -0400 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/8c5a133f5b58 Add missing SBSA::resolve() to AArch64 ShBarrierSetAssembler ! src/hotspot/cpu/aarch64/gc/shenandoah/shenandoahBarrierSetAssembler_aarch64.cpp ! src/hotspot/cpu/aarch64/gc/shenandoah/shenandoahBarrierSetAssembler_aarch64.hpp From shade at redhat.com Mon Sep 10 15:56:24 2018 From: shade at redhat.com (Aleksey Shipilev) Date: Mon, 10 Sep 2018 17:56:24 +0200 Subject: RFR: Remove NMethodSizeLimit adjustment for Shenandoah Message-ID: <5a6bfdb1-12a2-36a0-1d1e-9996c6f7de00@redhat.com> Turns out, this is not a good idea. AArch64 asserts later because some instructions become non-encodable on C1 paths. diff -r 551c72da087a src/hotspot/share/gc/shenandoah/shenandoahArguments.cpp --- a/src/hotspot/share/gc/shenandoah/shenandoahArguments.cpp Mon Sep 10 10:27:14 2018 +0200 +++ b/src/hotspot/share/gc/shenandoah/shenandoahArguments.cpp Mon Sep 10 17:55:24 2018 +0200 @@ -179,10 +179,2 @@ - // Shenandoah needs more space in generated code to put barriers in. - // TODO: NMethodSizeLimit should not be develop. -#ifdef ASSERT - if (FLAG_IS_DEFAULT(NMethodSizeLimit)) { - FLAG_SET_DEFAULT(NMethodSizeLimit, NMethodSizeLimit * 3); - } -#endif - // Shenandoah needs more C2 nodes to compile some methods with lots of barriers. Testing: tier3_gc_shenandoah (running) Thanks, -Aleksey From rkennke at redhat.com Mon Sep 10 15:58:43 2018 From: rkennke at redhat.com (Roman Kennke) Date: Mon, 10 Sep 2018 17:58:43 +0200 Subject: RFR: Remove NMethodSizeLimit adjustment for Shenandoah In-Reply-To: <5a6bfdb1-12a2-36a0-1d1e-9996c6f7de00@redhat.com> References: <5a6bfdb1-12a2-36a0-1d1e-9996c6f7de00@redhat.com> Message-ID: Yes, thank you! This does indeed fix my C1 woes on aarch64. Roman > Turns out, this is not a good idea. AArch64 asserts later because some instructions become > non-encodable on C1 paths. > > diff -r 551c72da087a src/hotspot/share/gc/shenandoah/shenandoahArguments.cpp > --- a/src/hotspot/share/gc/shenandoah/shenandoahArguments.cpp Mon Sep 10 10:27:14 2018 +0200 > +++ b/src/hotspot/share/gc/shenandoah/shenandoahArguments.cpp Mon Sep 10 17:55:24 2018 +0200 > @@ -179,10 +179,2 @@ > > - // Shenandoah needs more space in generated code to put barriers in. > - // TODO: NMethodSizeLimit should not be develop. > -#ifdef ASSERT > - if (FLAG_IS_DEFAULT(NMethodSizeLimit)) { > - FLAG_SET_DEFAULT(NMethodSizeLimit, NMethodSizeLimit * 3); > - } > -#endif > - > // Shenandoah needs more C2 nodes to compile some methods with lots of barriers. > > > Testing: tier3_gc_shenandoah (running) > > Thanks, > -Aleksey > From shade at redhat.com Mon Sep 10 16:26:22 2018 From: shade at redhat.com (shade at redhat.com) Date: Mon, 10 Sep 2018 16:26:22 +0000 Subject: hg: shenandoah/jdk: Remove NMethodSizeLimit adjustment for Shenandoah Message-ID: <201809101626.w8AGQMPI001423@aojmv0008.oracle.com> Changeset: 5d035e4eb822 Author: shade Date: 2018-09-10 17:56 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/5d035e4eb822 Remove NMethodSizeLimit adjustment for Shenandoah ! src/hotspot/share/gc/shenandoah/shenandoahArguments.cpp From shade at redhat.com Mon Sep 10 17:23:16 2018 From: shade at redhat.com (Aleksey Shipilev) Date: Mon, 10 Sep 2018 19:23:16 +0200 Subject: RFR [11], 2018-09-10, Bulk backports to sh/jdk11 Message-ID: http://cr.openjdk.java.net/~shade/shenandoah/backports/jdk11-20180910/webrev.01/ This backports recent work to sh/jdk11: [backport] Soft refs should be purged reliably on allocation failure, or with compact heuristics [backport] shenandoah_assert_correct should verify classes before claiming _safe_oop [backport] Tests should use -XX:+ShenandoahVerify in some OOM-evac configurations [backport] Degenerated evacuation [backport] Soft-refs policy needs reliable heap usage data after the GC cycle [backport] Unreachable assert in ShenandoahCodeRoots::acquire_lock [backport] Prune undefined and unused methods [backport] Remove unused ShPacer::setup_for_partial [backport] Print the log message for minor Traversal cycle [backport] Remove partial heuristics from regular testing [backport] Passive heuristics should enter degen GC, not full GC [backport] Reshuffle tests: verify STW GC is working first, then verify under aggressive, then the rest [backport] TestHeapDump runs much faster with small heap [backport] Cleanup: remove unused root processor's sub tasks [backport] EvilSyncBug test is too slow [backport] Purge partial heuristics and connection matrix infrastructure [backport] Add missing SBSA::resolve() to AArch64 ShBarrierSetAssembler [backport] Remove NMethodSizeLimit adjustment for Shenandoah Testing: tier3_gc_shenandoah {fastdebug|release} Thanks, -Aleksey From shade at redhat.com Mon Sep 10 17:23:26 2018 From: shade at redhat.com (Aleksey Shipilev) Date: Mon, 10 Sep 2018 19:23:26 +0200 Subject: RFR [10], 2018-09-10, Bulk backports to sh/jdk10 Message-ID: <3c4fc94c-6381-d8b4-5ff8-c7f61b1179b1@redhat.com> http://cr.openjdk.java.net/~shade/shenandoah/backports/jdk10-20180910/webrev.01/ This backports recent work to sh/jdk10: [backport] Soft refs should be purged reliably on allocation failure, or with compact heuristics [backport] shenandoah_assert_correct should verify classes before claiming _safe_oop [backport] Tests should use -XX:+ShenandoahVerify in some OOM-evac configurations [backport] Degenerated evacuation [backport] Soft-refs policy needs reliable heap usage data after the GC cycle [backport] Unreachable assert in ShenandoahCodeRoots::acquire_lock [backport] Prune undefined and unused methods [backport] Remove unused ShPacer::setup_for_partial [backport] Print the log message for minor Traversal cycle [backport] Remove partial heuristics from regular testing [backport] Passive heuristics should enter degen GC, not full GC [backport] Reshuffle tests: verify STW GC is working first, then verify under aggressive, then the rest [backport] TestHeapDump runs much faster with small heap [backport] Cleanup: remove unused root processor's sub tasks [backport] EvilSyncBug test is too slow [backport] Purge partial heuristics and connection matrix infrastructure [backport] Remove NMethodSizeLimit adjustment for Shenandoah Testing: tier3_gc_shenandoah {fastdebug|release} Thanks, -Aleksey From shade at redhat.com Mon Sep 10 17:23:31 2018 From: shade at redhat.com (Aleksey Shipilev) Date: Mon, 10 Sep 2018 19:23:31 +0200 Subject: RFR [8], 2018-09-10, Bulk backports to sh/jdk8 Message-ID: <4c821656-bb6b-3a0f-c94a-be1844a4530a@redhat.com> http://cr.openjdk.java.net/~shade/shenandoah/backports/jdk8u-20180910/webrev.01/ This backports recent work to sh/jdk8: [backport] Allocation path should not touch GC barriers for metadata [backport] Soft refs should be purged reliably on allocation failure, or with compact heuristics [backport] shenandoah_assert_correct should verify classes before claiming _safe_oop [backport] Tests should use -XX:+ShenandoahVerify in some OOM-evac configurations [backport] Degenerated evacuation [backport] Soft-refs policy needs reliable heap usage data after the GC cycle [backport] Unreachable assert in ShenandoahCodeRoots::acquire_lock [backport] Prune undefined and unused methods [backport] Passive heuristics should enter degen GC, not full GC [backport] Reshuffle tests: verify STW GC is working first, then verify under aggressive, then the rest [backport] TestHeapDump runs much faster with small heap [backport] Cleanup: remove unused root processor's sub tasks [backport] EvilSyncBug test is too slow [backport] Purge partial heuristics and connection matrix infrastructure [backport] Remove NMethodSizeLimit adjustment for Shenandoah Testing: hotspot_tier3_gc_shenandoah {fastdebug|release} Thanks, -Aleksey From rkennke at redhat.com Mon Sep 10 19:23:01 2018 From: rkennke at redhat.com (Roman Kennke) Date: Mon, 10 Sep 2018 21:23:01 +0200 Subject: RFR [11], 2018-09-10, Bulk backports to sh/jdk11 In-Reply-To: References: Message-ID: Great! Go! Thanks, Roman > http://cr.openjdk.java.net/~shade/shenandoah/backports/jdk11-20180910/webrev.01/ > > This backports recent work to sh/jdk11: > > [backport] Soft refs should be purged reliably on allocation failure, or with compact heuristics > [backport] shenandoah_assert_correct should verify classes before claiming _safe_oop > [backport] Tests should use -XX:+ShenandoahVerify in some OOM-evac configurations > [backport] Degenerated evacuation > [backport] Soft-refs policy needs reliable heap usage data after the GC cycle > [backport] Unreachable assert in ShenandoahCodeRoots::acquire_lock > [backport] Prune undefined and unused methods > [backport] Remove unused ShPacer::setup_for_partial > [backport] Print the log message for minor Traversal cycle > [backport] Remove partial heuristics from regular testing > [backport] Passive heuristics should enter degen GC, not full GC > [backport] Reshuffle tests: verify STW GC is working first, then verify under aggressive, then the rest > [backport] TestHeapDump runs much faster with small heap > [backport] Cleanup: remove unused root processor's sub tasks > [backport] EvilSyncBug test is too slow > [backport] Purge partial heuristics and connection matrix infrastructure > [backport] Add missing SBSA::resolve() to AArch64 ShBarrierSetAssembler > [backport] Remove NMethodSizeLimit adjustment for Shenandoah > > Testing: tier3_gc_shenandoah {fastdebug|release} > > Thanks, > -Aleksey > From rkennke at redhat.com Mon Sep 10 19:35:40 2018 From: rkennke at redhat.com (Roman Kennke) Date: Mon, 10 Sep 2018 21:35:40 +0200 Subject: RFR: AArch64: Don't generate CAS barrier when -XX:-ShenandoahCASBarrier Message-ID: Some tests are failing in aarch64 because we generate CAS barrier even when passing -XX:-ShenandoahCASBarrier in ShBSA: http://cr.openjdk.java.net/~rkennke/aarch64-fixcas/webrev.00/ Testing: manually checking failing tests Ok? Roman From rkennke at redhat.com Mon Sep 10 19:38:14 2018 From: rkennke at redhat.com (Roman Kennke) Date: Mon, 10 Sep 2018 21:38:14 +0200 Subject: RFR [10], 2018-09-10, Bulk backports to sh/jdk10 In-Reply-To: <3c4fc94c-6381-d8b4-5ff8-c7f61b1179b1@redhat.com> References: <3c4fc94c-6381-d8b4-5ff8-c7f61b1179b1@redhat.com> Message-ID: <301da002-e2d3-4eaf-3303-55d658f62cbe@redhat.com> Looks good. Thanks, Roman > http://cr.openjdk.java.net/~shade/shenandoah/backports/jdk10-20180910/webrev.01/ > > This backports recent work to sh/jdk10: > > [backport] Soft refs should be purged reliably on allocation failure, or with compact heuristics > [backport] shenandoah_assert_correct should verify classes before claiming _safe_oop > [backport] Tests should use -XX:+ShenandoahVerify in some OOM-evac configurations > [backport] Degenerated evacuation > [backport] Soft-refs policy needs reliable heap usage data after the GC cycle > [backport] Unreachable assert in ShenandoahCodeRoots::acquire_lock > [backport] Prune undefined and unused methods > [backport] Remove unused ShPacer::setup_for_partial > [backport] Print the log message for minor Traversal cycle > [backport] Remove partial heuristics from regular testing > [backport] Passive heuristics should enter degen GC, not full GC > [backport] Reshuffle tests: verify STW GC is working first, then verify under aggressive, then the rest > [backport] TestHeapDump runs much faster with small heap > [backport] Cleanup: remove unused root processor's sub tasks > [backport] EvilSyncBug test is too slow > [backport] Purge partial heuristics and connection matrix infrastructure > [backport] Remove NMethodSizeLimit adjustment for Shenandoah > > Testing: tier3_gc_shenandoah {fastdebug|release} > > Thanks, > -Aleksey > From shade at redhat.com Mon Sep 10 19:56:05 2018 From: shade at redhat.com (Aleksey Shipilev) Date: Mon, 10 Sep 2018 21:56:05 +0200 Subject: RFR: AArch64: Don't generate CAS barrier when -XX:-ShenandoahCASBarrier In-Reply-To: References: Message-ID: On 09/10/2018 09:35 PM, Roman Kennke wrote: > Some tests are failing in aarch64 because we generate CAS barrier even > when passing -XX:-ShenandoahCASBarrier in ShBSA: > > http://cr.openjdk.java.net/~rkennke/aarch64-fixcas/webrev.00/ Looks good. -Aleksey From rkennke at redhat.com Mon Sep 10 21:41:48 2018 From: rkennke at redhat.com (Roman Kennke) Date: Mon, 10 Sep 2018 23:41:48 +0200 Subject: RFR: Disable ShHeapUncommit on too-large large-pages Message-ID: <335e4a2d-2fb4-3296-6e8a-e08736484856@redhat.com> On my aarch64-test-box I get large pages of 512MB. When running the HeapUncommit test with just -Xmx1g and -XX:+UseLargePages we attempt to have at least large-page-size-sized regions, which would result in just 2 regions, which is not possible (and rightly trips an assert). The reason why we need to do this is for heap-region-uncommit: if we had regions smaller than page size, we would accidently uncommit adjacent regions too. After some discussions with Aleksey off-list, I propose to disable heap region uncommit if large-page-size is too large: http://cr.openjdk.java.net/~rkennke/disable-uncommit/webrev.00/ Testing: tier3_gc_shenandoah/aarch64 (except 1 remaining test that fails for other reasons) Good? Roman From roman at kennke.org Mon Sep 10 21:42:59 2018 From: roman at kennke.org (roman at kennke.org) Date: Mon, 10 Sep 2018 21:42:59 +0000 Subject: hg: shenandoah/jdk: AArch64: Don't generate CAS barrier when -XX:-ShenandoahCASBarrier Message-ID: <201809102142.w8ALgxXJ001560@aojmv0008.oracle.com> Changeset: 2e332acde956 Author: rkennke Date: 2018-09-10 17:42 -0400 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/2e332acde956 AArch64: Don't generate CAS barrier when -XX:-ShenandoahCASBarrier ! src/hotspot/cpu/aarch64/gc/shenandoah/shenandoahBarrierSetAssembler_aarch64.cpp From rkennke at redhat.com Mon Sep 10 21:45:47 2018 From: rkennke at redhat.com (Roman Kennke) Date: Mon, 10 Sep 2018 23:45:47 +0200 Subject: RFR: Disable ShHeapUncommit on too-large large-pages In-Reply-To: <335e4a2d-2fb4-3296-6e8a-e08736484856@redhat.com> References: <335e4a2d-2fb4-3296-6e8a-e08736484856@redhat.com> Message-ID: <7ff99625-579b-0adf-6c15-1fb8c2d7e5a4@redhat.com> OMG, the webrev was totally garbled. Look at this one: cr.openjdk.java.net/~rkennke/disable-uncommit/webrev.01/ > On my aarch64-test-box I get large pages of 512MB. When running the > HeapUncommit test with just -Xmx1g and -XX:+UseLargePages we attempt to > have at least large-page-size-sized regions, which would result in just > 2 regions, which is not possible (and rightly trips an assert). > > The reason why we need to do this is for heap-region-uncommit: if we had > regions smaller than page size, we would accidently uncommit adjacent > regions too. > > After some discussions with Aleksey off-list, I propose to disable heap > region uncommit if large-page-size is too large: > > http://cr.openjdk.java.net/~rkennke/disable-uncommit/webrev.00/ > > Testing: tier3_gc_shenandoah/aarch64 (except 1 remaining test that fails > for other reasons) > > Good? > > Roman > From shade at redhat.com Tue Sep 11 07:08:16 2018 From: shade at redhat.com (Aleksey Shipilev) Date: Tue, 11 Sep 2018 09:08:16 +0200 Subject: RFR: Disable ShHeapUncommit on too-large large-pages In-Reply-To: <7ff99625-579b-0adf-6c15-1fb8c2d7e5a4@redhat.com> References: <335e4a2d-2fb4-3296-6e8a-e08736484856@redhat.com> <7ff99625-579b-0adf-6c15-1fb8c2d7e5a4@redhat.com> Message-ID: On 09/10/2018 11:45 PM, Roman Kennke wrote: > OMG, the webrev was totally garbled. Look at this one: > cr.openjdk.java.net/~rkennke/disable-uncommit/webrev.01/ *) I'd say the condition in ShenandoahHeapRegion::setup_sizes should be "if (ShenandoahUncommit)"? This way it captures the intent clearly. And the comment before it should mention uncommit, not mem-protection. Otherwise looks okay. Thanks, -Aleksey From rkennke at redhat.com Tue Sep 11 07:08:19 2018 From: rkennke at redhat.com (Roman Kennke) Date: Tue, 11 Sep 2018 09:08:19 +0200 Subject: Potential ShTraversalGC::weak_refs_work_doit bug In-Reply-To: References: <67abf23c-b502-2e58-5d58-5569cb18af9f@redhat.com> Message-ID: > On 09/10/2018 11:38 AM, Roman Kennke wrote: >>> This block has some weirdness: >>> >>> http://hg.openjdk.java.net/shenandoah/jdk/file/e60d7f4b3ba9/src/hotspot/share/gc/shenandoah/shenandoahTraversalGC.cpp#l1164 >>> >>> *) is_alive is redefined -- to the same value? >> >> Where do you see is_alive redefined? It is defined once here: >> http://hg.openjdk.java.net/shenandoah/jdk/file/e60d7f4b3ba9/src/hotspot/share/gc/shenandoah/shenandoahTraversalGC.cpp#l1172 >> >> >>> *) complete_gc is not used? Shouldn't we call it to pick up new stuff from weak_oops_do? >> >> It is used in WeakProcessor::weak_oops_do() calls, isn't it? >> >> Or maybe I misunderstand your questions? > > It really helps to use the proper IDE that highlights those things ;) > http://cr.openjdk.java.net/~shade/shenandoah/clion-traversal-rp.png > > -Aleksey > > The answer is that the objects processed by WeakProcessor don't span any new object sub-graph that require additional marking, and hence no complete_gc closure is needed. Even the keep_alive closure is mis-understood by us: Stuff processed by WeakProcessor is 'weak' in the sense that after marking is completed (i.e. all strong, weakrefs, etc are traversed), it is decided based on the is_alive closure, which objects/refs to keep and which to clean. The keep_alive closure is not meant to make the GC keep objects alive (e.g. by marking), but only as callback to let the GC know that the object has been kept alive, in case the GC need to take action on this. For Shenandoah this only means to update the reference to point to to-space when we're marking+updating-refs in single phase, otherwise it can do nothing. Traversal also needs to update-refs there. Aleksey: can you look at streamlining this? Also, can you make it use the MT-version of WeakProcessor? Thanks, Roman From rkennke at redhat.com Tue Sep 11 07:10:44 2018 From: rkennke at redhat.com (Roman Kennke) Date: Tue, 11 Sep 2018 09:10:44 +0200 Subject: RFR [8], 2018-09-10, Bulk backports to sh/jdk8 In-Reply-To: <4c821656-bb6b-3a0f-c94a-be1844a4530a@redhat.com> References: <4c821656-bb6b-3a0f-c94a-be1844a4530a@redhat.com> Message-ID: <846ab557-e9ee-cffd-a10b-edd2a08a09bd@redhat.com> Looks good, thank you! Roman > http://cr.openjdk.java.net/~shade/shenandoah/backports/jdk8u-20180910/webrev.01/ > > This backports recent work to sh/jdk8: > > [backport] Allocation path should not touch GC barriers for metadata > [backport] Soft refs should be purged reliably on allocation failure, or with compact heuristics > [backport] shenandoah_assert_correct should verify classes before claiming _safe_oop > [backport] Tests should use -XX:+ShenandoahVerify in some OOM-evac configurations > [backport] Degenerated evacuation > [backport] Soft-refs policy needs reliable heap usage data after the GC cycle > [backport] Unreachable assert in ShenandoahCodeRoots::acquire_lock > [backport] Prune undefined and unused methods > [backport] Passive heuristics should enter degen GC, not full GC > [backport] Reshuffle tests: verify STW GC is working first, then verify under aggressive, then the rest > [backport] TestHeapDump runs much faster with small heap > [backport] Cleanup: remove unused root processor's sub tasks > [backport] EvilSyncBug test is too slow > [backport] Purge partial heuristics and connection matrix infrastructure > [backport] Remove NMethodSizeLimit adjustment for Shenandoah > > Testing: hotspot_tier3_gc_shenandoah {fastdebug|release} > > Thanks, > -Aleksey > From rkennke at redhat.com Tue Sep 11 07:22:07 2018 From: rkennke at redhat.com (Roman Kennke) Date: Tue, 11 Sep 2018 09:22:07 +0200 Subject: RFR: Disable ShHeapUncommit on too-large large-pages In-Reply-To: References: <335e4a2d-2fb4-3296-6e8a-e08736484856@redhat.com> <7ff99625-579b-0adf-6c15-1fb8c2d7e5a4@redhat.com> Message-ID: Am 11.09.2018 um 09:08 schrieb Aleksey Shipilev: > On 09/10/2018 11:45 PM, Roman Kennke wrote: >> OMG, the webrev was totally garbled. Look at this one: >> cr.openjdk.java.net/~rkennke/disable-uncommit/webrev.01/ > > *) I'd say the condition in ShenandoahHeapRegion::setup_sizes should be "if (ShenandoahUncommit)"? > This way it captures the intent clearly. And the comment before it should mention uncommit, not > mem-protection. > > Otherwise looks okay. > > Thanks, > -Aleksey > > Like this? Incremental: http://cr.openjdk.java.net/~rkennke/disable-uncommit/webrev.01.diff/ Full: http://cr.openjdk.java.net/~rkennke/disable-uncommit/webrev.01/ Roman From shade at redhat.com Tue Sep 11 07:24:21 2018 From: shade at redhat.com (Aleksey Shipilev) Date: Tue, 11 Sep 2018 09:24:21 +0200 Subject: RFR: Disable ShHeapUncommit on too-large large-pages In-Reply-To: References: <335e4a2d-2fb4-3296-6e8a-e08736484856@redhat.com> <7ff99625-579b-0adf-6c15-1fb8c2d7e5a4@redhat.com> Message-ID: <4038d455-7c41-a996-4895-092e2af81c87@redhat.com> On 09/11/2018 09:22 AM, Roman Kennke wrote: > Am 11.09.2018 um 09:08 schrieb Aleksey Shipilev: >> On 09/10/2018 11:45 PM, Roman Kennke wrote: >>> OMG, the webrev was totally garbled. Look at this one: >>> cr.openjdk.java.net/~rkennke/disable-uncommit/webrev.01/ >> >> *) I'd say the condition in ShenandoahHeapRegion::setup_sizes should be "if (ShenandoahUncommit)"? >> This way it captures the intent clearly. And the comment before it should mention uncommit, not >> mem-protection. >> >> Otherwise looks okay. >> >> Thanks, >> -Aleksey >> >> > > Like this? > > Incremental: > http://cr.openjdk.java.net/~rkennke/disable-uncommit/webrev.01.diff/ Yes, like that. Does it still pass tier3 with uber-large pages? Thanks, -Aleksey From rkennke at redhat.com Tue Sep 11 07:29:21 2018 From: rkennke at redhat.com (Roman Kennke) Date: Tue, 11 Sep 2018 09:29:21 +0200 Subject: RFR: Disable ShHeapUncommit on too-large large-pages In-Reply-To: <4038d455-7c41-a996-4895-092e2af81c87@redhat.com> References: <335e4a2d-2fb4-3296-6e8a-e08736484856@redhat.com> <7ff99625-579b-0adf-6c15-1fb8c2d7e5a4@redhat.com> <4038d455-7c41-a996-4895-092e2af81c87@redhat.com> Message-ID: <9a0e6920-783b-b491-888a-93e269c994a8@redhat.com> Am 11.09.2018 um 09:24 schrieb Aleksey Shipilev: > On 09/11/2018 09:22 AM, Roman Kennke wrote: >> Am 11.09.2018 um 09:08 schrieb Aleksey Shipilev: >>> On 09/10/2018 11:45 PM, Roman Kennke wrote: >>>> OMG, the webrev was totally garbled. Look at this one: >>>> cr.openjdk.java.net/~rkennke/disable-uncommit/webrev.01/ >>> >>> *) I'd say the condition in ShenandoahHeapRegion::setup_sizes should be "if (ShenandoahUncommit)"? >>> This way it captures the intent clearly. And the comment before it should mention uncommit, not >>> mem-protection. >>> >>> Otherwise looks okay. >>> >>> Thanks, >>> -Aleksey >>> >>> >> >> Like this? >> >> Incremental: >> http://cr.openjdk.java.net/~rkennke/disable-uncommit/webrev.01.diff/ > > Yes, like that. Does it still pass tier3 with uber-large pages? > No. Of course this is a mistake: diff -r 03c6138dd68c src/hotspot/share/gc/shenandoah/shenandoahHeapRegion.cpp --- a/src/hotspot/share/gc/shenandoah/shenandoahHeapRegion.cpp Tue Sep 11 03:15:46 2018 -0400 +++ b/src/hotspot/share/gc/shenandoah/shenandoahHeapRegion.cpp Tue Sep 11 03:29:01 2018 -0400 @@ -618,7 +618,7 @@ // Otherwise, uncommitting one region may falsely uncommit the adjacent // regions too. // Also see shenandoahArguments.cpp, where it handles UseLargePages. - if (ShenandoahUncommit) { + if (UseLargePages && ShenandoahUncommit) { region_size = MAX2(region_size, os::large_page_size()); } Ok? Roman From shade at redhat.com Tue Sep 11 07:33:12 2018 From: shade at redhat.com (Aleksey Shipilev) Date: Tue, 11 Sep 2018 09:33:12 +0200 Subject: RFR: Disable ShHeapUncommit on too-large large-pages In-Reply-To: <9a0e6920-783b-b491-888a-93e269c994a8@redhat.com> References: <335e4a2d-2fb4-3296-6e8a-e08736484856@redhat.com> <7ff99625-579b-0adf-6c15-1fb8c2d7e5a4@redhat.com> <4038d455-7c41-a996-4895-092e2af81c87@redhat.com> <9a0e6920-783b-b491-888a-93e269c994a8@redhat.com> Message-ID: <82dc5b0a-3d27-5586-5418-82a78ba95bd5@redhat.com> On 09/11/2018 09:29 AM, Roman Kennke wrote: >> Yes, like that. Does it still pass tier3 with uber-large pages? > > No. Of course this is a mistake: > > diff -r 03c6138dd68c > src/hotspot/share/gc/shenandoah/shenandoahHeapRegion.cpp > --- a/src/hotspot/share/gc/shenandoah/shenandoahHeapRegion.cpp Tue Sep > 11 03:15:46 2018 -0400 > +++ b/src/hotspot/share/gc/shenandoah/shenandoahHeapRegion.cpp Tue Sep > 11 03:29:01 2018 -0400 > @@ -618,7 +618,7 @@ > // Otherwise, uncommitting one region may falsely uncommit the adjacent > // regions too. > // Also see shenandoahArguments.cpp, where it handles UseLargePages. > - if (ShenandoahUncommit) { > + if (UseLargePages && ShenandoahUncommit) { > region_size = MAX2(region_size, os::large_page_size()); > } > > Ok? Right. That makes more sense. -Aleksey From shade at redhat.com Tue Sep 11 07:37:16 2018 From: shade at redhat.com (shade at redhat.com) Date: Tue, 11 Sep 2018 07:37:16 +0000 Subject: hg: shenandoah/jdk11: 18 new changesets Message-ID: <201809110737.w8B7bIP8002869@aojmv0008.oracle.com> Changeset: 5309e610c95f Author: shade Date: 2018-09-03 20:24 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk11/rev/5309e610c95f [backport] Soft refs should be purged reliably on allocation failure, or with compact heuristics ! src/hotspot/share/gc/shenandoah/heuristics/shenandoahCompactHeuristics.cpp ! src/hotspot/share/gc/shenandoah/shenandoahConcurrentMark.cpp ! src/hotspot/share/gc/shenandoah/shenandoahControlThread.cpp ! src/hotspot/share/gc/shenandoah/shenandoahMarkCompact.cpp ! src/hotspot/share/gc/shenandoah/shenandoahTraversalGC.cpp ! src/hotspot/share/gc/shenandoah/shenandoah_globals.hpp Changeset: 0195f22d4b93 Author: shade Date: 2018-09-04 12:01 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk11/rev/0195f22d4b93 [backport] shenandoah_assert_correct should verify classes before claiming _safe_oop ! src/hotspot/share/gc/shenandoah/shenandoahAsserts.cpp Changeset: 2ee05cc073e5 Author: shade Date: 2018-09-04 12:08 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk11/rev/2ee05cc073e5 [backport] Tests should use -XX:+ShenandoahVerify in some OOM-evac configurations ! test/hotspot/jtreg/gc/shenandoah/acceptance/AllocHumongousFragment.java ! test/hotspot/jtreg/gc/shenandoah/acceptance/AllocIntArrays.java ! test/hotspot/jtreg/gc/shenandoah/acceptance/AllocObjectArrays.java ! test/hotspot/jtreg/gc/shenandoah/acceptance/AllocObjects.java Changeset: c4bd36131b19 Author: shade Date: 2018-09-04 12:08 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk11/rev/c4bd36131b19 [backport] Degenerated evacuation ! src/hotspot/share/gc/shenandoah/shenandoahControlThread.cpp ! src/hotspot/share/gc/shenandoah/shenandoahHeap.cpp ! src/hotspot/share/gc/shenandoah/shenandoahHeap.inline.hpp Changeset: 94e601dd3ee2 Author: shade Date: 2018-09-04 17:11 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk11/rev/94e601dd3ee2 [backport] Soft-refs policy needs reliable heap usage data after the GC cycle ! src/hotspot/share/gc/shenandoah/shenandoahControlThread.cpp ! src/hotspot/share/gc/shenandoah/shenandoahHeap.cpp Changeset: 9eb964083842 Author: shade Date: 2018-09-05 10:20 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk11/rev/9eb964083842 [backport] Unreachable assert in ShenandoahCodeRoots::acquire_lock ! src/hotspot/share/gc/shenandoah/shenandoahCodeRoots.hpp Changeset: 3eb82d2361dc Author: shade Date: 2018-09-05 10:20 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk11/rev/3eb82d2361dc [backport] Prune undefined and unused methods ! src/hotspot/share/gc/shenandoah/c1/shenandoahBarrierSetC1.hpp ! src/hotspot/share/gc/shenandoah/shenandoahHeap.hpp ! src/hotspot/share/gc/shenandoah/shenandoahHeapRegion.hpp Changeset: 4cbc51dcfff8 Author: shade Date: 2018-09-05 11:13 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk11/rev/4cbc51dcfff8 [backport] Remove unused ShPacer::setup_for_partial ! src/hotspot/share/gc/shenandoah/shenandoahPacer.cpp ! src/hotspot/share/gc/shenandoah/shenandoahPacer.hpp Changeset: a3ba7c9c94b3 Author: shade Date: 2018-09-05 12:46 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk11/rev/a3ba7c9c94b3 [backport] Print the log message for minor Traversal cycle ! src/hotspot/share/gc/shenandoah/shenandoahHeap.cpp ! src/hotspot/share/gc/shenandoah/shenandoahHeap.hpp Changeset: 5c8ec30895e0 Author: shade Date: 2018-09-06 12:44 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk11/rev/5c8ec30895e0 [backport] Remove partial heuristics from regular testing ! test/hotspot/jtreg/gc/shenandoah/LotsOfCycles.java ! test/hotspot/jtreg/gc/shenandoah/ShenandoahStrDedupStress.java ! test/hotspot/jtreg/gc/shenandoah/TestGCThreadGroups.java + test/hotspot/jtreg/gc/shenandoah/TestPartialHeuristics.java ! test/hotspot/jtreg/gc/shenandoah/TestPeriodicGC.java ! test/hotspot/jtreg/gc/shenandoah/TestShenandoahStrDedup.java ! test/hotspot/jtreg/gc/shenandoah/acceptance/AllocHumongousFragment.java ! test/hotspot/jtreg/gc/shenandoah/acceptance/AllocIntArrays.java ! test/hotspot/jtreg/gc/shenandoah/acceptance/AllocObjectArrays.java ! test/hotspot/jtreg/gc/shenandoah/acceptance/AllocObjects.java ! test/hotspot/jtreg/gc/shenandoah/acceptance/HeapUncommit.java ! test/hotspot/jtreg/gc/shenandoah/acceptance/RetainObjects.java ! test/hotspot/jtreg/gc/shenandoah/acceptance/SieveObjects.java ! test/hotspot/jtreg/gc/shenandoah/acceptance/StringInternCleanup.java ! test/hotspot/jtreg/gc/shenandoah/acceptance/VerifyJCStressTest.java ! test/hotspot/jtreg/gc/shenandoah/mxbeans/ChurnNotifications.java ! test/hotspot/jtreg/gc/shenandoah/mxbeans/PauseNotifications.java ! test/hotspot/jtreg/gc/shenandoah/oom/TestClassLoaderLeak.java ! test/hotspot/jtreg/gc/stress/gcbasher/TestGCBasherWithShenandoah.java ! test/hotspot/jtreg/gc/stress/gcold/TestGCOldWithShenandoah.java Changeset: 1647bf2069e1 Author: shade Date: 2018-09-06 12:44 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk11/rev/1647bf2069e1 [backport] Passive heuristics should enter degen GC, not full GC ! src/hotspot/share/gc/shenandoah/heuristics/shenandoahPassiveHeuristics.cpp ! src/hotspot/share/gc/shenandoah/heuristics/shenandoahPassiveHeuristics.hpp ! test/hotspot/jtreg/gc/shenandoah/CriticalNativeArgs.java ! test/hotspot/jtreg/gc/shenandoah/CriticalNativeStress.java ! test/hotspot/jtreg/gc/shenandoah/LotsOfCycles.java ! test/hotspot/jtreg/gc/shenandoah/PinnedGarbage.java ! test/hotspot/jtreg/gc/shenandoah/ShenandoahStrDedupStress.java ! test/hotspot/jtreg/gc/shenandoah/TestRegionSampling.java ! test/hotspot/jtreg/gc/shenandoah/TestShenandoahStrDedup.java ! test/hotspot/jtreg/gc/shenandoah/acceptance/AllocHumongousFragment.java ! test/hotspot/jtreg/gc/shenandoah/acceptance/AllocIntArrays.java ! test/hotspot/jtreg/gc/shenandoah/acceptance/AllocObjectArrays.java ! test/hotspot/jtreg/gc/shenandoah/acceptance/AllocObjects.java ! test/hotspot/jtreg/gc/shenandoah/acceptance/HeapUncommit.java ! test/hotspot/jtreg/gc/shenandoah/acceptance/RetainObjects.java ! test/hotspot/jtreg/gc/shenandoah/acceptance/SieveObjects.java ! test/hotspot/jtreg/gc/shenandoah/acceptance/StringInternCleanup.java ! test/hotspot/jtreg/gc/shenandoah/acceptance/VerifyJCStressTest.java ! test/hotspot/jtreg/gc/shenandoah/mxbeans/ChurnNotifications.java ! test/hotspot/jtreg/gc/shenandoah/mxbeans/PauseNotifications.java ! test/hotspot/jtreg/gc/stress/gcbasher/TestGCBasherWithShenandoah.java ! test/hotspot/jtreg/gc/stress/gcold/TestGCOldWithShenandoah.java Changeset: 1adbe3b1285a Author: shade Date: 2018-09-06 12:44 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk11/rev/1adbe3b1285a [backport] Reshuffle tests: verify STW GC is working first, then verify under aggressive, then the rest ! test/hotspot/jtreg/gc/shenandoah/CriticalNativeArgs.java ! test/hotspot/jtreg/gc/shenandoah/CriticalNativeStress.java ! test/hotspot/jtreg/gc/shenandoah/LotsOfCycles.java ! test/hotspot/jtreg/gc/shenandoah/PinnedGarbage.java ! test/hotspot/jtreg/gc/shenandoah/TestShenandoahStrDedup.java ! test/hotspot/jtreg/gc/shenandoah/acceptance/AllocHumongousFragment.java ! test/hotspot/jtreg/gc/shenandoah/acceptance/AllocIntArrays.java ! test/hotspot/jtreg/gc/shenandoah/acceptance/AllocObjectArrays.java ! test/hotspot/jtreg/gc/shenandoah/acceptance/AllocObjects.java ! test/hotspot/jtreg/gc/shenandoah/acceptance/HeapUncommit.java ! test/hotspot/jtreg/gc/shenandoah/acceptance/RetainObjects.java ! test/hotspot/jtreg/gc/shenandoah/acceptance/SieveObjects.java ! test/hotspot/jtreg/gc/shenandoah/acceptance/StringInternCleanup.java ! test/hotspot/jtreg/gc/shenandoah/mxbeans/ChurnNotifications.java ! test/hotspot/jtreg/gc/shenandoah/mxbeans/PauseNotifications.java ! test/hotspot/jtreg/gc/stress/gcbasher/TestGCBasherWithShenandoah.java ! test/hotspot/jtreg/gc/stress/gcold/TestGCOldWithShenandoah.java Changeset: e1efa6d36046 Author: shade Date: 2018-09-06 13:25 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk11/rev/e1efa6d36046 [backport] TestHeapDump runs much faster with small heap ! test/hotspot/jtreg/gc/shenandoah/jvmti/TestHeapDump.java Changeset: 569e21606593 Author: zgu Date: 2018-09-07 12:56 -0400 URL: http://hg.openjdk.java.net/shenandoah/jdk11/rev/569e21606593 [backport] Cleanup: remove unused root processor's sub tasks ! src/hotspot/share/gc/shenandoah/shenandoahRootProcessor.hpp Changeset: 5ddfb4e4263b Author: shade Date: 2018-09-08 16:53 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk11/rev/5ddfb4e4263b [backport] EvilSyncBug test is too slow ! test/hotspot/jtreg/gc/shenandoah/EvilSyncBug.java Changeset: 67b4eeed491b Author: shade Date: 2018-09-10 18:27 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk11/rev/67b4eeed491b [backport] Purge partial heuristics and connection matrix infrastructure ! src/hotspot/cpu/aarch64/gc/shenandoah/shenandoahBarrierSetAssembler_aarch64.cpp ! src/hotspot/cpu/aarch64/gc/shenandoah/shenandoahBarrierSetAssembler_aarch64.hpp ! src/hotspot/cpu/x86/gc/shenandoah/shenandoahBarrierSetAssembler_x86.cpp ! src/hotspot/cpu/x86/gc/shenandoah/shenandoahBarrierSetAssembler_x86.hpp ! src/hotspot/share/gc/shenandoah/c1/shenandoahBarrierSetC1.cpp ! src/hotspot/share/gc/shenandoah/c1/shenandoahBarrierSetC1.hpp ! src/hotspot/share/gc/shenandoah/c2/shenandoahBarrierSetC2.cpp ! src/hotspot/share/gc/shenandoah/c2/shenandoahBarrierSetC2.hpp ! src/hotspot/share/gc/shenandoah/c2/shenandoahSupport.cpp - src/hotspot/share/gc/shenandoah/heuristics/shenandoahPartialConnectedHeuristics.cpp - src/hotspot/share/gc/shenandoah/heuristics/shenandoahPartialConnectedHeuristics.hpp - src/hotspot/share/gc/shenandoah/heuristics/shenandoahPartialGenerationalHeuristics.cpp - src/hotspot/share/gc/shenandoah/heuristics/shenandoahPartialGenerationalHeuristics.hpp - src/hotspot/share/gc/shenandoah/heuristics/shenandoahPartialHeuristics.cpp - src/hotspot/share/gc/shenandoah/heuristics/shenandoahPartialHeuristics.hpp - src/hotspot/share/gc/shenandoah/heuristics/shenandoahPartialLRUHeuristics.cpp - src/hotspot/share/gc/shenandoah/heuristics/shenandoahPartialLRUHeuristics.hpp ! src/hotspot/share/gc/shenandoah/heuristics/shenandoahPassiveHeuristics.cpp ! src/hotspot/share/gc/shenandoah/heuristics/shenandoahTraversalHeuristics.cpp ! src/hotspot/share/gc/shenandoah/heuristics/shenandoahTraversalHeuristics.hpp ! src/hotspot/share/gc/shenandoah/shenandoahArguments.cpp ! src/hotspot/share/gc/shenandoah/shenandoahAsserts.cpp ! src/hotspot/share/gc/shenandoah/shenandoahBarrierSet.cpp ! src/hotspot/share/gc/shenandoah/shenandoahBarrierSet.hpp ! src/hotspot/share/gc/shenandoah/shenandoahBarrierSet.inline.hpp ! src/hotspot/share/gc/shenandoah/shenandoahCollectorPolicy.cpp ! src/hotspot/share/gc/shenandoah/shenandoahCollectorPolicy.hpp - src/hotspot/share/gc/shenandoah/shenandoahConnectionMatrix.cpp - src/hotspot/share/gc/shenandoah/shenandoahConnectionMatrix.hpp - src/hotspot/share/gc/shenandoah/shenandoahConnectionMatrix.inline.hpp ! src/hotspot/share/gc/shenandoah/shenandoahControlThread.cpp ! src/hotspot/share/gc/shenandoah/shenandoahHeap.cpp ! src/hotspot/share/gc/shenandoah/shenandoahHeap.hpp ! src/hotspot/share/gc/shenandoah/shenandoahHeap.inline.hpp ! src/hotspot/share/gc/shenandoah/shenandoahHeapRegion.cpp ! src/hotspot/share/gc/shenandoah/shenandoahHeapRegionCounters.cpp ! src/hotspot/share/gc/shenandoah/shenandoahHeapRegionCounters.hpp ! src/hotspot/share/gc/shenandoah/shenandoahHeuristics.cpp ! src/hotspot/share/gc/shenandoah/shenandoahHeuristics.hpp ! src/hotspot/share/gc/shenandoah/shenandoahMarkCompact.cpp ! src/hotspot/share/gc/shenandoah/shenandoahOopClosures.hpp ! src/hotspot/share/gc/shenandoah/shenandoahOopClosures.inline.hpp ! src/hotspot/share/gc/shenandoah/shenandoahPacer.hpp ! src/hotspot/share/gc/shenandoah/shenandoahPacer.inline.hpp ! src/hotspot/share/gc/shenandoah/shenandoahTraversalGC.cpp ! src/hotspot/share/gc/shenandoah/shenandoahTraversalGC.hpp ! src/hotspot/share/gc/shenandoah/shenandoahTraversalGC.inline.hpp ! src/hotspot/share/gc/shenandoah/shenandoahVerifier.cpp ! src/hotspot/share/gc/shenandoah/shenandoahVerifier.hpp ! src/hotspot/share/gc/shenandoah/shenandoah_globals.hpp ! src/hotspot/share/opto/arraycopynode.cpp ! src/hotspot/share/opto/compile.cpp ! src/hotspot/share/opto/compile.hpp - test/hotspot/jtreg/gc/shenandoah/TestPartialHeuristics.java ! test/hotspot/jtreg/gc/shenandoah/TestRegionSampling.java ! test/hotspot/jtreg/gc/shenandoah/options/TestHeuristicsUnlock.java Changeset: e9f2ac39a5e3 Author: rkennke Date: 2018-09-10 08:36 -0400 URL: http://hg.openjdk.java.net/shenandoah/jdk11/rev/e9f2ac39a5e3 [backport] Add missing SBSA::resolve() to AArch64 ShBarrierSetAssembler ! src/hotspot/cpu/aarch64/gc/shenandoah/shenandoahBarrierSetAssembler_aarch64.cpp ! src/hotspot/cpu/aarch64/gc/shenandoah/shenandoahBarrierSetAssembler_aarch64.hpp Changeset: 7f19158276ab Author: shade Date: 2018-09-10 17:56 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk11/rev/7f19158276ab [backport] Remove NMethodSizeLimit adjustment for Shenandoah ! src/hotspot/share/gc/shenandoah/shenandoahArguments.cpp From shade at redhat.com Tue Sep 11 07:37:50 2018 From: shade at redhat.com (shade at redhat.com) Date: Tue, 11 Sep 2018 07:37:50 +0000 Subject: hg: shenandoah/jdk10: 17 new changesets Message-ID: <201809110737.w8B7bqZZ003058@aojmv0008.oracle.com> Changeset: 92c452d8377e Author: shade Date: 2018-09-03 20:24 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk10/rev/92c452d8377e [backport] Soft refs should be purged reliably on allocation failure, or with compact heuristics ! src/hotspot/share/gc/shenandoah/heuristics/shenandoahCompactHeuristics.cpp ! src/hotspot/share/gc/shenandoah/shenandoahConcurrentMark.cpp ! src/hotspot/share/gc/shenandoah/shenandoahControlThread.cpp ! src/hotspot/share/gc/shenandoah/shenandoahMarkCompact.cpp ! src/hotspot/share/gc/shenandoah/shenandoahTraversalGC.cpp ! src/hotspot/share/gc/shenandoah/shenandoah_globals.hpp Changeset: 0de892d07f5d Author: shade Date: 2018-09-04 12:01 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk10/rev/0de892d07f5d [backport] shenandoah_assert_correct should verify classes before claiming _safe_oop ! src/hotspot/share/gc/shenandoah/shenandoahAsserts.cpp Changeset: cce69f40dabc Author: shade Date: 2018-09-04 12:08 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk10/rev/cce69f40dabc [backport] Tests should use -XX:+ShenandoahVerify in some OOM-evac configurations ! test/hotspot/jtreg/gc/shenandoah/acceptance/AllocHumongousFragment.java ! test/hotspot/jtreg/gc/shenandoah/acceptance/AllocIntArrays.java ! test/hotspot/jtreg/gc/shenandoah/acceptance/AllocObjectArrays.java ! test/hotspot/jtreg/gc/shenandoah/acceptance/AllocObjects.java Changeset: 1a22c257a26d Author: shade Date: 2018-09-04 12:08 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk10/rev/1a22c257a26d [backport] Degenerated evacuation ! src/hotspot/share/gc/shenandoah/shenandoahControlThread.cpp ! src/hotspot/share/gc/shenandoah/shenandoahHeap.cpp ! src/hotspot/share/gc/shenandoah/shenandoahHeap.inline.hpp Changeset: bfa424b4157d Author: shade Date: 2018-09-04 17:11 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk10/rev/bfa424b4157d [backport] Soft-refs policy needs reliable heap usage data after the GC cycle ! src/hotspot/share/gc/shenandoah/shenandoahControlThread.cpp ! src/hotspot/share/gc/shenandoah/shenandoahHeap.cpp Changeset: b42fb7a988cb Author: shade Date: 2018-09-05 10:20 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk10/rev/b42fb7a988cb [backport] Unreachable assert in ShenandoahCodeRoots::acquire_lock ! src/hotspot/share/gc/shenandoah/shenandoahCodeRoots.hpp Changeset: c801f3d48cff Author: shade Date: 2018-09-05 10:20 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk10/rev/c801f3d48cff [backport] Prune undefined and unused methods ! src/hotspot/share/gc/shenandoah/shenandoahHeap.hpp ! src/hotspot/share/gc/shenandoah/shenandoahHeapRegion.hpp Changeset: 9d1332c0bcba Author: shade Date: 2018-09-05 11:13 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk10/rev/9d1332c0bcba [backport] Remove unused ShPacer::setup_for_partial ! src/hotspot/share/gc/shenandoah/shenandoahPacer.cpp ! src/hotspot/share/gc/shenandoah/shenandoahPacer.hpp Changeset: f4908a35efc8 Author: shade Date: 2018-09-05 12:46 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk10/rev/f4908a35efc8 [backport] Print the log message for minor Traversal cycle ! src/hotspot/share/gc/shenandoah/shenandoahHeap.cpp ! src/hotspot/share/gc/shenandoah/shenandoahHeap.hpp Changeset: 563d067d860f Author: shade Date: 2018-09-06 12:44 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk10/rev/563d067d860f [backport] Remove partial heuristics from regular testing ! test/hotspot/jtreg/gc/shenandoah/LotsOfCycles.java ! test/hotspot/jtreg/gc/shenandoah/ShenandoahStrDedupStress.java ! test/hotspot/jtreg/gc/shenandoah/TestGCThreadGroups.java + test/hotspot/jtreg/gc/shenandoah/TestPartialHeuristics.java ! test/hotspot/jtreg/gc/shenandoah/TestPeriodicGC.java ! test/hotspot/jtreg/gc/shenandoah/TestShenandoahStrDedup.java ! test/hotspot/jtreg/gc/shenandoah/acceptance/AllocHumongousFragment.java ! test/hotspot/jtreg/gc/shenandoah/acceptance/AllocIntArrays.java ! test/hotspot/jtreg/gc/shenandoah/acceptance/AllocObjectArrays.java ! test/hotspot/jtreg/gc/shenandoah/acceptance/AllocObjects.java ! test/hotspot/jtreg/gc/shenandoah/acceptance/HeapUncommit.java ! test/hotspot/jtreg/gc/shenandoah/acceptance/RetainObjects.java ! test/hotspot/jtreg/gc/shenandoah/acceptance/SieveObjects.java ! test/hotspot/jtreg/gc/shenandoah/acceptance/StringInternCleanup.java ! test/hotspot/jtreg/gc/shenandoah/acceptance/VerifyJCStressTest.java ! test/hotspot/jtreg/gc/shenandoah/mxbeans/ChurnNotifications.java ! test/hotspot/jtreg/gc/shenandoah/mxbeans/PauseNotifications.java ! test/hotspot/jtreg/gc/shenandoah/oom/TestClassLoaderLeak.java ! test/hotspot/jtreg/gc/stress/gcbasher/TestGCBasherWithShenandoah.java ! test/hotspot/jtreg/gc/stress/gcold/TestGCOldWithShenandoah.java Changeset: 706152fc824f Author: shade Date: 2018-09-06 12:44 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk10/rev/706152fc824f [backport] Passive heuristics should enter degen GC, not full GC ! src/hotspot/share/gc/shenandoah/heuristics/shenandoahPassiveHeuristics.cpp ! src/hotspot/share/gc/shenandoah/heuristics/shenandoahPassiveHeuristics.hpp ! test/hotspot/jtreg/gc/shenandoah/CriticalNativeArgs.java ! test/hotspot/jtreg/gc/shenandoah/CriticalNativeStress.java ! test/hotspot/jtreg/gc/shenandoah/LotsOfCycles.java ! test/hotspot/jtreg/gc/shenandoah/PinnedGarbage.java ! test/hotspot/jtreg/gc/shenandoah/ShenandoahStrDedupStress.java ! test/hotspot/jtreg/gc/shenandoah/TestRegionSampling.java ! test/hotspot/jtreg/gc/shenandoah/TestShenandoahStrDedup.java ! test/hotspot/jtreg/gc/shenandoah/acceptance/AllocHumongousFragment.java ! test/hotspot/jtreg/gc/shenandoah/acceptance/AllocIntArrays.java ! test/hotspot/jtreg/gc/shenandoah/acceptance/AllocObjectArrays.java ! test/hotspot/jtreg/gc/shenandoah/acceptance/AllocObjects.java ! test/hotspot/jtreg/gc/shenandoah/acceptance/HeapUncommit.java ! test/hotspot/jtreg/gc/shenandoah/acceptance/RetainObjects.java ! test/hotspot/jtreg/gc/shenandoah/acceptance/SieveObjects.java ! test/hotspot/jtreg/gc/shenandoah/acceptance/StringInternCleanup.java ! test/hotspot/jtreg/gc/shenandoah/acceptance/VerifyJCStressTest.java ! test/hotspot/jtreg/gc/shenandoah/mxbeans/ChurnNotifications.java ! test/hotspot/jtreg/gc/shenandoah/mxbeans/PauseNotifications.java ! test/hotspot/jtreg/gc/stress/gcbasher/TestGCBasherWithShenandoah.java ! test/hotspot/jtreg/gc/stress/gcold/TestGCOldWithShenandoah.java Changeset: 440f98b0e3f6 Author: shade Date: 2018-09-06 12:44 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk10/rev/440f98b0e3f6 [backport] Reshuffle tests: verify STW GC is working first, then verify under aggressive, then the rest ! test/hotspot/jtreg/gc/shenandoah/CriticalNativeArgs.java ! test/hotspot/jtreg/gc/shenandoah/CriticalNativeStress.java ! test/hotspot/jtreg/gc/shenandoah/LotsOfCycles.java ! test/hotspot/jtreg/gc/shenandoah/PinnedGarbage.java ! test/hotspot/jtreg/gc/shenandoah/TestShenandoahStrDedup.java ! test/hotspot/jtreg/gc/shenandoah/acceptance/AllocHumongousFragment.java ! test/hotspot/jtreg/gc/shenandoah/acceptance/AllocIntArrays.java ! test/hotspot/jtreg/gc/shenandoah/acceptance/AllocObjectArrays.java ! test/hotspot/jtreg/gc/shenandoah/acceptance/AllocObjects.java ! test/hotspot/jtreg/gc/shenandoah/acceptance/HeapUncommit.java ! test/hotspot/jtreg/gc/shenandoah/acceptance/RetainObjects.java ! test/hotspot/jtreg/gc/shenandoah/acceptance/SieveObjects.java ! test/hotspot/jtreg/gc/shenandoah/acceptance/StringInternCleanup.java ! test/hotspot/jtreg/gc/shenandoah/mxbeans/ChurnNotifications.java ! test/hotspot/jtreg/gc/shenandoah/mxbeans/PauseNotifications.java ! test/hotspot/jtreg/gc/stress/gcbasher/TestGCBasherWithShenandoah.java ! test/hotspot/jtreg/gc/stress/gcold/TestGCOldWithShenandoah.java Changeset: f8668b98c0ea Author: shade Date: 2018-09-06 13:25 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk10/rev/f8668b98c0ea [backport] TestHeapDump runs much faster with small heap ! test/hotspot/jtreg/gc/shenandoah/jvmti/TestHeapDump.java Changeset: eb062740fd9b Author: zgu Date: 2018-09-07 12:56 -0400 URL: http://hg.openjdk.java.net/shenandoah/jdk10/rev/eb062740fd9b [backport] Cleanup: remove unused root processor's sub tasks ! src/hotspot/share/gc/shenandoah/shenandoahRootProcessor.hpp Changeset: 018d04da7bf0 Author: shade Date: 2018-09-08 16:53 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk10/rev/018d04da7bf0 [backport] EvilSyncBug test is too slow ! test/hotspot/jtreg/gc/shenandoah/EvilSyncBug.java Changeset: 64b3df077c85 Author: shade Date: 2018-09-08 16:55 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk10/rev/64b3df077c85 [backport] Purge partial heuristics and connection matrix infrastructure ! src/hotspot/cpu/aarch64/macroAssembler_aarch64.cpp ! src/hotspot/cpu/aarch64/macroAssembler_aarch64.hpp ! src/hotspot/cpu/aarch64/templateTable_aarch64.cpp ! src/hotspot/cpu/x86/macroAssembler_x86.cpp ! src/hotspot/cpu/x86/macroAssembler_x86.hpp ! src/hotspot/cpu/x86/templateTable_x86.cpp ! src/hotspot/share/c1/c1_LIRGenerator.cpp ! src/hotspot/share/c1/c1_LIRGenerator.hpp ! src/hotspot/share/gc/shared/referenceProcessor.cpp - src/hotspot/share/gc/shenandoah/heuristics/shenandoahPartialConnectedHeuristics.cpp - src/hotspot/share/gc/shenandoah/heuristics/shenandoahPartialConnectedHeuristics.hpp - src/hotspot/share/gc/shenandoah/heuristics/shenandoahPartialGenerationalHeuristics.cpp - src/hotspot/share/gc/shenandoah/heuristics/shenandoahPartialGenerationalHeuristics.hpp - src/hotspot/share/gc/shenandoah/heuristics/shenandoahPartialHeuristics.cpp - src/hotspot/share/gc/shenandoah/heuristics/shenandoahPartialHeuristics.hpp - src/hotspot/share/gc/shenandoah/heuristics/shenandoahPartialLRUHeuristics.cpp - src/hotspot/share/gc/shenandoah/heuristics/shenandoahPartialLRUHeuristics.hpp ! src/hotspot/share/gc/shenandoah/heuristics/shenandoahPassiveHeuristics.cpp ! src/hotspot/share/gc/shenandoah/heuristics/shenandoahTraversalHeuristics.cpp ! src/hotspot/share/gc/shenandoah/heuristics/shenandoahTraversalHeuristics.hpp ! src/hotspot/share/gc/shenandoah/shenandoahArguments.cpp ! src/hotspot/share/gc/shenandoah/shenandoahAsserts.cpp ! src/hotspot/share/gc/shenandoah/shenandoahBarrierSet.cpp ! src/hotspot/share/gc/shenandoah/shenandoahBarrierSet.hpp ! src/hotspot/share/gc/shenandoah/shenandoahBarrierSet.inline.hpp ! src/hotspot/share/gc/shenandoah/shenandoahCollectorPolicy.cpp ! src/hotspot/share/gc/shenandoah/shenandoahCollectorPolicy.hpp - src/hotspot/share/gc/shenandoah/shenandoahConnectionMatrix.cpp - src/hotspot/share/gc/shenandoah/shenandoahConnectionMatrix.hpp - src/hotspot/share/gc/shenandoah/shenandoahConnectionMatrix.inline.hpp ! src/hotspot/share/gc/shenandoah/shenandoahControlThread.cpp ! src/hotspot/share/gc/shenandoah/shenandoahHeap.cpp ! src/hotspot/share/gc/shenandoah/shenandoahHeap.hpp ! src/hotspot/share/gc/shenandoah/shenandoahHeap.inline.hpp ! src/hotspot/share/gc/shenandoah/shenandoahHeapRegion.cpp ! src/hotspot/share/gc/shenandoah/shenandoahHeapRegionCounters.cpp ! src/hotspot/share/gc/shenandoah/shenandoahHeapRegionCounters.hpp ! src/hotspot/share/gc/shenandoah/shenandoahHeuristics.cpp ! src/hotspot/share/gc/shenandoah/shenandoahHeuristics.hpp ! src/hotspot/share/gc/shenandoah/shenandoahMarkCompact.cpp ! src/hotspot/share/gc/shenandoah/shenandoahOopClosures.hpp ! src/hotspot/share/gc/shenandoah/shenandoahOopClosures.inline.hpp ! src/hotspot/share/gc/shenandoah/shenandoahPacer.hpp ! src/hotspot/share/gc/shenandoah/shenandoahPacer.inline.hpp ! src/hotspot/share/gc/shenandoah/shenandoahTraversalGC.cpp ! src/hotspot/share/gc/shenandoah/shenandoahTraversalGC.hpp ! src/hotspot/share/gc/shenandoah/shenandoahTraversalGC.inline.hpp ! src/hotspot/share/gc/shenandoah/shenandoahVerifier.cpp ! src/hotspot/share/gc/shenandoah/shenandoahVerifier.hpp ! src/hotspot/share/gc/shenandoah/shenandoah_globals.hpp ! src/hotspot/share/gc/shenandoah/shenandoah_specialized_oop_closures.hpp ! src/hotspot/share/opto/arraycopynode.cpp ! src/hotspot/share/opto/graphKit.cpp ! src/hotspot/share/opto/graphKit.hpp - test/hotspot/jtreg/gc/shenandoah/TestPartialHeuristics.java ! test/hotspot/jtreg/gc/shenandoah/TestRegionSampling.java ! test/hotspot/jtreg/gc/shenandoah/options/TestHeuristicsUnlock.java Changeset: 82f1eec5affa Author: shade Date: 2018-09-10 17:56 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk10/rev/82f1eec5affa [backport] Remove NMethodSizeLimit adjustment for Shenandoah ! src/hotspot/share/gc/shenandoah/shenandoahArguments.cpp From rkennke at redhat.com Tue Sep 11 07:39:06 2018 From: rkennke at redhat.com (Roman Kennke) Date: Tue, 11 Sep 2018 09:39:06 +0200 Subject: RFR: Disable ShHeapUncommit on too-large large-pages In-Reply-To: <82dc5b0a-3d27-5586-5418-82a78ba95bd5@redhat.com> References: <335e4a2d-2fb4-3296-6e8a-e08736484856@redhat.com> <7ff99625-579b-0adf-6c15-1fb8c2d7e5a4@redhat.com> <4038d455-7c41-a996-4895-092e2af81c87@redhat.com> <9a0e6920-783b-b491-888a-93e269c994a8@redhat.com> <82dc5b0a-3d27-5586-5418-82a78ba95bd5@redhat.com> Message-ID: <47048d36-da6b-def3-a67b-96f34d27d4f3@redhat.com> Am 11.09.2018 um 09:33 schrieb Aleksey Shipilev: > On 09/11/2018 09:29 AM, Roman Kennke wrote: >>> Yes, like that. Does it still pass tier3 with uber-large pages? >> >> No. Of course this is a mistake: >> >> diff -r 03c6138dd68c >> src/hotspot/share/gc/shenandoah/shenandoahHeapRegion.cpp >> --- a/src/hotspot/share/gc/shenandoah/shenandoahHeapRegion.cpp Tue Sep >> 11 03:15:46 2018 -0400 >> +++ b/src/hotspot/share/gc/shenandoah/shenandoahHeapRegion.cpp Tue Sep >> 11 03:29:01 2018 -0400 >> @@ -618,7 +618,7 @@ >> // Otherwise, uncommitting one region may falsely uncommit the adjacent >> // regions too. >> // Also see shenandoahArguments.cpp, where it handles UseLargePages. >> - if (ShenandoahUncommit) { >> + if (UseLargePages && ShenandoahUncommit) { >> region_size = MAX2(region_size, os::large_page_size()); >> } >> >> Ok? > > Right. That makes more sense. The fricking thing still gets me in trouble. Hold on. Roman From shade at redhat.com Tue Sep 11 07:39:53 2018 From: shade at redhat.com (shade at redhat.com) Date: Tue, 11 Sep 2018 07:39:53 +0000 Subject: hg: shenandoah/jdk8u/hotspot: 15 new changesets Message-ID: <201809110739.w8B7drMA003810@aojmv0008.oracle.com> Changeset: c1fcc2c79bed Author: shade Date: 2018-09-08 12:21 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/hotspot/rev/c1fcc2c79bed [backport] Allocation path should not touch GC barriers for metadata ! src/share/vm/classfile/javaClasses.cpp ! src/share/vm/gc_interface/collectedHeap.inline.hpp ! src/share/vm/oops/oop.hpp ! src/share/vm/oops/oop.inline.hpp Changeset: 8ec26e5b1804 Author: shade Date: 2018-09-03 20:24 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/hotspot/rev/8ec26e5b1804 [backport] Soft refs should be purged reliably on allocation failure, or with compact heuristics ! src/share/vm/gc_implementation/shenandoah/heuristics/shenandoahCompactHeuristics.cpp ! src/share/vm/gc_implementation/shenandoah/shenandoahConcurrentMark.cpp ! src/share/vm/gc_implementation/shenandoah/shenandoahControlThread.cpp ! src/share/vm/gc_implementation/shenandoah/shenandoahMarkCompact.cpp ! src/share/vm/gc_implementation/shenandoah/shenandoah_globals.hpp Changeset: a5351aa87d9c Author: shade Date: 2018-09-04 12:01 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/hotspot/rev/a5351aa87d9c [backport] shenandoah_assert_correct should verify classes before claiming _safe_oop ! src/share/vm/gc_implementation/shenandoah/shenandoahAsserts.cpp Changeset: 1daa8d6ac5b2 Author: shade Date: 2018-09-04 12:08 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/hotspot/rev/1daa8d6ac5b2 [backport] Tests should use -XX:+ShenandoahVerify in some OOM-evac configurations ! test/gc/shenandoah/acceptance/AllocHumongousFragment.java ! test/gc/shenandoah/acceptance/AllocIntArrays.java ! test/gc/shenandoah/acceptance/AllocObjectArrays.java ! test/gc/shenandoah/acceptance/AllocObjects.java Changeset: a138cfed2408 Author: shade Date: 2018-09-04 12:08 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/hotspot/rev/a138cfed2408 [backport] Degenerated evacuation ! src/share/vm/gc_implementation/shenandoah/shenandoahControlThread.cpp ! src/share/vm/gc_implementation/shenandoah/shenandoahHeap.cpp ! src/share/vm/gc_implementation/shenandoah/shenandoahHeap.inline.hpp Changeset: 7f50c3bec825 Author: shade Date: 2018-09-04 17:11 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/hotspot/rev/7f50c3bec825 [backport] Soft-refs policy needs reliable heap usage data after the GC cycle ! src/share/vm/gc_implementation/shenandoah/shenandoahControlThread.cpp ! src/share/vm/gc_implementation/shenandoah/shenandoahHeap.cpp Changeset: 79294229bfe8 Author: shade Date: 2018-09-05 10:20 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/hotspot/rev/79294229bfe8 [backport] Unreachable assert in ShenandoahCodeRoots::acquire_lock ! src/share/vm/gc_implementation/shenandoah/shenandoahCodeRoots.hpp Changeset: 2374a4b18857 Author: shade Date: 2018-09-05 10:20 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/hotspot/rev/2374a4b18857 [backport] Prune undefined and unused methods ! src/share/vm/gc_implementation/shenandoah/shenandoahHeap.hpp Changeset: 8c74e978f270 Author: shade Date: 2018-09-06 12:44 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/hotspot/rev/8c74e978f270 [backport] Passive heuristics should enter degen GC, not full GC ! src/share/vm/gc_implementation/shenandoah/heuristics/shenandoahPassiveHeuristics.cpp ! src/share/vm/gc_implementation/shenandoah/heuristics/shenandoahPassiveHeuristics.hpp ! test/gc/shenandoah/CriticalNativeArgs.sh ! test/gc/shenandoah/CriticalNativeStress.sh ! test/gc/shenandoah/LotsOfCycles.java ! test/gc/shenandoah/PinnedGarbage.sh ! test/gc/shenandoah/ShenandoahStrDedupStress.java ! test/gc/shenandoah/TestRegionSampling.java ! test/gc/shenandoah/TestShenandoahStrDedup.java ! test/gc/shenandoah/acceptance/AllocHumongousFragment.java ! test/gc/shenandoah/acceptance/AllocIntArrays.java ! test/gc/shenandoah/acceptance/AllocObjectArrays.java ! test/gc/shenandoah/acceptance/AllocObjects.java ! test/gc/shenandoah/acceptance/HeapUncommit.java ! test/gc/shenandoah/acceptance/RetainObjects.java ! test/gc/shenandoah/acceptance/SieveObjects.java ! test/gc/shenandoah/acceptance/StringInternCleanup.java ! test/gc/shenandoah/acceptance/VerifyJCStressTest.java ! test/gc/shenandoah/mxbeans/ChurnNotifications.java ! test/gc/shenandoah/mxbeans/PauseNotifications.java Changeset: 07751257e866 Author: shade Date: 2018-09-06 12:44 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/hotspot/rev/07751257e866 [backport] Reshuffle tests: verify STW GC is working first, then verify under aggressive, then the rest ! test/gc/shenandoah/CriticalNativeArgs.sh ! test/gc/shenandoah/CriticalNativeStress.sh ! test/gc/shenandoah/LotsOfCycles.java ! test/gc/shenandoah/PinnedGarbage.sh ! test/gc/shenandoah/TestShenandoahStrDedup.java ! test/gc/shenandoah/acceptance/AllocHumongousFragment.java ! test/gc/shenandoah/acceptance/AllocIntArrays.java ! test/gc/shenandoah/acceptance/AllocObjectArrays.java ! test/gc/shenandoah/acceptance/AllocObjects.java ! test/gc/shenandoah/acceptance/HeapUncommit.java ! test/gc/shenandoah/acceptance/RetainObjects.java ! test/gc/shenandoah/acceptance/SieveObjects.java ! test/gc/shenandoah/acceptance/StringInternCleanup.java ! test/gc/shenandoah/mxbeans/ChurnNotifications.java ! test/gc/shenandoah/mxbeans/PauseNotifications.java Changeset: fc6a5495997a Author: shade Date: 2018-09-06 13:25 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/hotspot/rev/fc6a5495997a [backport] TestHeapDump runs much faster with small heap ! test/gc/shenandoah/jvmti/TestHeapDump.sh Changeset: 074e37ad07fb Author: zgu Date: 2018-09-07 12:56 -0400 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/hotspot/rev/074e37ad07fb [backport] Cleanup: remove unused root processor's sub tasks ! src/share/vm/gc_implementation/shenandoah/shenandoahRootProcessor.hpp Changeset: c34455a440cd Author: shade Date: 2018-09-08 16:53 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/hotspot/rev/c34455a440cd [backport] EvilSyncBug test is too slow ! test/gc/shenandoah/EvilSyncBug.java Changeset: c3e0faf2239f Author: shade Date: 2018-09-10 12:38 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/hotspot/rev/c3e0faf2239f [backport] Purge partial heuristics and connection matrix infrastructure ! src/share/vm/gc_implementation/shenandoah/shenandoahAsserts.cpp ! src/share/vm/gc_implementation/shenandoah/shenandoahCollectorPolicy.cpp ! src/share/vm/gc_implementation/shenandoah/shenandoahCollectorPolicy.hpp ! src/share/vm/gc_implementation/shenandoah/shenandoahHeap.cpp ! src/share/vm/gc_implementation/shenandoah/shenandoahHeap.hpp ! src/share/vm/gc_implementation/shenandoah/shenandoahHeuristics.cpp ! src/share/vm/gc_implementation/shenandoah/shenandoahHeuristics.hpp ! src/share/vm/gc_implementation/shenandoah/shenandoahPhaseTimings.cpp ! src/share/vm/gc_implementation/shenandoah/shenandoahPhaseTimings.hpp ! src/share/vm/gc_implementation/shenandoah/shenandoahVerifier.cpp ! src/share/vm/gc_implementation/shenandoah/shenandoahVerifier.hpp ! src/share/vm/gc_implementation/shenandoah/shenandoahWorkerPolicy.cpp ! src/share/vm/gc_implementation/shenandoah/shenandoahWorkerPolicy.hpp ! src/share/vm/gc_implementation/shenandoah/shenandoah_globals.hpp Changeset: 97449e335acd Author: shade Date: 2018-09-10 17:56 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/hotspot/rev/97449e335acd [backport] Remove NMethodSizeLimit adjustment for Shenandoah ! src/share/vm/runtime/arguments.cpp From rkennke at redhat.com Tue Sep 11 08:22:09 2018 From: rkennke at redhat.com (Roman Kennke) Date: Tue, 11 Sep 2018 10:22:09 +0200 Subject: RFR: Disable ShHeapUncommit on too-large large-pages In-Reply-To: <82dc5b0a-3d27-5586-5418-82a78ba95bd5@redhat.com> References: <335e4a2d-2fb4-3296-6e8a-e08736484856@redhat.com> <7ff99625-579b-0adf-6c15-1fb8c2d7e5a4@redhat.com> <4038d455-7c41-a996-4895-092e2af81c87@redhat.com> <9a0e6920-783b-b491-888a-93e269c994a8@redhat.com> <82dc5b0a-3d27-5586-5418-82a78ba95bd5@redhat.com> Message-ID: Am 11.09.2018 um 09:33 schrieb Aleksey Shipilev: > On 09/11/2018 09:29 AM, Roman Kennke wrote: >>> Yes, like that. Does it still pass tier3 with uber-large pages? >> >> No. Of course this is a mistake: >> >> diff -r 03c6138dd68c >> src/hotspot/share/gc/shenandoah/shenandoahHeapRegion.cpp >> --- a/src/hotspot/share/gc/shenandoah/shenandoahHeapRegion.cpp Tue Sep >> 11 03:15:46 2018 -0400 >> +++ b/src/hotspot/share/gc/shenandoah/shenandoahHeapRegion.cpp Tue Sep >> 11 03:29:01 2018 -0400 >> @@ -618,7 +618,7 @@ >> // Otherwise, uncommitting one region may falsely uncommit the adjacent >> // regions too. >> // Also see shenandoahArguments.cpp, where it handles UseLargePages. >> - if (ShenandoahUncommit) { >> + if (UseLargePages && ShenandoahUncommit) { >> region_size = MAX2(region_size, os::large_page_size()); >> } >> >> Ok? > > Right. That makes more sense. > > -Aleksey > I also need the following fixes to heap alignment to make it work for real: Incremental: http://cr.openjdk.java.net/~rkennke/disable-uncommit/webrev.02.diff/ Full: http://cr.openjdk.java.net/~rkennke/disable-uncommit/webrev.02/ This passes tier3_gc_shenandoah except for the remaining TAMS failure. Ok? Roman From shade at redhat.com Tue Sep 11 10:37:43 2018 From: shade at redhat.com (Aleksey Shipilev) Date: Tue, 11 Sep 2018 12:37:43 +0200 Subject: RFR: Disable ShHeapUncommit on too-large large-pages In-Reply-To: References: <335e4a2d-2fb4-3296-6e8a-e08736484856@redhat.com> <7ff99625-579b-0adf-6c15-1fb8c2d7e5a4@redhat.com> <4038d455-7c41-a996-4895-092e2af81c87@redhat.com> <9a0e6920-783b-b491-888a-93e269c994a8@redhat.com> <82dc5b0a-3d27-5586-5418-82a78ba95bd5@redhat.com> Message-ID: <54516db6-ac5c-0d69-a641-4936af2d2ba3@redhat.com> On 09/11/2018 10:22 AM, Roman Kennke wrote: > Incremental: > http://cr.openjdk.java.net/~rkennke/disable-uncommit/webrev.02.diff/ > Full: > http://cr.openjdk.java.net/~rkennke/disable-uncommit/webrev.02/ Still looks good. I guess we could make the unconditional conservative estimate, e.g. MAX2(SHR::region_size, os::large_page_size(), without having the special path for UseLargePages, but this is fine too. -Aleksey From roman at kennke.org Tue Sep 11 11:08:36 2018 From: roman at kennke.org (roman at kennke.org) Date: Tue, 11 Sep 2018 11:08:36 +0000 Subject: hg: shenandoah/jdk: Disable ShHeapUncommit on too-large large-pages Message-ID: <201809111108.w8BB8aAW005323@aojmv0008.oracle.com> Changeset: a391e22f381e Author: rkennke Date: 2018-09-11 04:20 -0400 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/a391e22f381e Disable ShHeapUncommit on too-large large-pages ! src/hotspot/share/gc/shenandoah/shenandoahArguments.cpp ! src/hotspot/share/gc/shenandoah/shenandoahCollectorPolicy.cpp ! src/hotspot/share/gc/shenandoah/shenandoahHeapRegion.cpp ! src/hotspot/share/gc/shenandoah/shenandoahHeapRegion.hpp From rkennke at redhat.com Tue Sep 11 12:06:22 2018 From: rkennke at redhat.com (Roman Kennke) Date: Tue, 11 Sep 2018 14:06:22 +0200 Subject: RFR: Remove racy assert in ShenandoahResetNextMarkBitmapTraversalTask Message-ID: The assert in ShenandoahResetNextMarkBitmapTraversalTask that is racily checking TAMS against top. Racy because other manipulations (e.g. recycle-assist) happen under HeapLock, but not this check. This sometimes blows up. I don't know how to fix that except removing it. We could acquire the HeapLock under #ifdef ASSERT but that seems like overkill. With this patch, aarch64 passes tier3_gc_shenandoah Notice that the whole thing is still somewhat racy, but seems conservatively ok. Getting this right without serializing the reset-bitmaps-stuff would require to use per-region-locks for this sort of thing. Ok? Roman # HG changeset patch # User rkennke # Date 1536667335 -7200 # Tue Sep 11 14:02:15 2018 +0200 # Node ID 088a07bcf78aa6b020b7cc1c60231bb2dacc39b7 # Parent a391e22f381ea337ed647b4da4fd3c26def6c03f Remove racy assert in ShenandoahResetNextMarkBitmapTraversalTask diff --git a/src/hotspot/share/gc/shenandoah/shenandoahHeap.cpp b/src/hotspot/share/gc/shenandoah/shenandoahHeap.cpp --- a/src/hotspot/share/gc/shenandoah/shenandoahHeap.cpp +++ b/src/hotspot/share/gc/shenandoah/shenandoahHeap.cpp @@ -471,9 +471,6 @@ assert(heap->is_bitmap_slice_committed(region), "sanity"); HeapWord* bottom = region->bottom(); HeapWord* top = next_ctx->top_at_mark_start(region->region_number()); - assert(top <= region->top(), - "TAMS must smaller/equals than top: TAMS: "PTR_FORMAT", top: "PTR_FORMAT, - p2i(top), p2i(region->top())); if (top > bottom) { compl_ctx->mark_bit_map()->copy_from(next_ctx->mark_bit_map(), MemRegion(bottom, top)); compl_ctx->set_top_at_mark_start(region->region_number(), top); From zgu at redhat.com Tue Sep 11 13:27:06 2018 From: zgu at redhat.com (Zhengyu Gu) Date: Tue, 11 Sep 2018 09:27:06 -0400 Subject: RFR: Remove racy assert in ShenandoahResetNextMarkBitmapTraversalTask In-Reply-To: References: Message-ID: On 09/11/2018 08:06 AM, Roman Kennke wrote: > The assert in ShenandoahResetNextMarkBitmapTraversalTask that is racily > checking TAMS against top. Racy because other manipulations (e.g. > recycle-assist) happen under HeapLock, but not this check. This > sometimes blows up. I don't know how to fix that except removing it. We > could acquire the HeapLock under #ifdef ASSERT but that seems like overkill. > > Hmmm... I am not sure this ShenandoahResetNextBitmapTraversalTask is safe at all. The region status races against mutator's allocation, e.g. region->is_trash() can race against FreeSet's recycle_trash(), now you have memory ordering issues to worry about. Am I wrong? Thanks, -Zhengyu > With this patch, aarch64 passes tier3_gc_shenandoah > > Notice that the whole thing is still somewhat racy, but seems > conservatively ok. Getting this right without serializing the > reset-bitmaps-stuff would require to use per-region-locks for this sort > of thing. > > Ok? > > Roman > > > # HG changeset patch > # User rkennke > # Date 1536667335 -7200 > # Tue Sep 11 14:02:15 2018 +0200 > # Node ID 088a07bcf78aa6b020b7cc1c60231bb2dacc39b7 > # Parent a391e22f381ea337ed647b4da4fd3c26def6c03f > Remove racy assert in ShenandoahResetNextMarkBitmapTraversalTask > > diff --git a/src/hotspot/share/gc/shenandoah/shenandoahHeap.cpp > b/src/hotspot/share/gc/shenandoah/shenandoahHeap.cpp > --- a/src/hotspot/share/gc/shenandoah/shenandoahHeap.cpp > +++ b/src/hotspot/share/gc/shenandoah/shenandoahHeap.cpp > @@ -471,9 +471,6 @@ > assert(heap->is_bitmap_slice_committed(region), "sanity"); > HeapWord* bottom = region->bottom(); > HeapWord* top = > next_ctx->top_at_mark_start(region->region_number()); > - assert(top <= region->top(), > - "TAMS must smaller/equals than top: TAMS: "PTR_FORMAT", > top: "PTR_FORMAT, > - p2i(top), p2i(region->top())); > if (top > bottom) { > > compl_ctx->mark_bit_map()->copy_from(next_ctx->mark_bit_map(), > MemRegion(bottom, top)); > compl_ctx->set_top_at_mark_start(region->region_number(), top); > From shade at redhat.com Tue Sep 11 13:32:30 2018 From: shade at redhat.com (Aleksey Shipilev) Date: Tue, 11 Sep 2018 15:32:30 +0200 Subject: RFR: Remove racy assert in ShenandoahResetNextMarkBitmapTraversalTask In-Reply-To: References: Message-ID: <5cb891cd-3275-78d4-5d86-d270acde21bc@redhat.com> On 09/11/2018 03:27 PM, Zhengyu Gu wrote: > On 09/11/2018 08:06 AM, Roman Kennke wrote: >> The assert in ShenandoahResetNextMarkBitmapTraversalTask that is racily >> checking TAMS against top. Racy because other manipulations (e.g. >> recycle-assist) happen under HeapLock, but not this check. This >> sometimes blows up. I don't know how to fix that except removing it. We >> could acquire the HeapLock under #ifdef ASSERT but that seems like overkill. >> >> > Hmmm... I am not sure this ShenandoahResetNextBitmapTraversalTask is safe at all. > > The region status races against mutator's allocation, e.g. region->is_trash() can race against > FreeSet's recycle_trash(), now you have memory ordering issues to worry about. Am I wrong? I am with Zhengyu here: this does not look safe at all. Maybe we should instead swap the cleanup order in ShenandoahHeap::op_cleanup_traversal(): first recycle all the trash, and *then* reset the bitmaps. Then we don't have to test for region->is_trash() in ShResetNextBitmapTraversal at all (we should still assert it), resolving the original race. Thanks, -Aleksey From rkennke at redhat.com Tue Sep 11 14:09:20 2018 From: rkennke at redhat.com (Roman Kennke) Date: Tue, 11 Sep 2018 16:09:20 +0200 Subject: RFR: Simpler obj equals barrier for C2 Message-ID: <13547f74-9606-dd3f-3cae-f1d497f87a42@redhat.com> This greatly simplifies the object equals barrier for C2. Instead of 3 somewhat complex entry points, this only has 1, and it's very similar to the same entries that we have in runtime and interpreter. That entry point replaces the call to 'new CmpP(a, b)' with access_object_equals(a, b). Shenandoah does generate the WB-based acmp-barrier there. We have found in earlier experiments that this is not significantly worse than the RB-based acmp-barriers. The patch also reverts a whole lot of stuff related to the old RB-based acmp-barriers. There's probably more to revert that I don't quickly see (Roland?). http://cr.openjdk.java.net/~rkennke/c2-obj-eq-barrier/webrev.01/ Testing: tier3_gc_shenandoah WDYT? Roman From rwestrel at redhat.com Tue Sep 11 14:25:20 2018 From: rwestrel at redhat.com (Roland Westrelin) Date: Tue, 11 Sep 2018 16:25:20 +0200 Subject: RFR: Simpler obj equals barrier for C2 In-Reply-To: <13547f74-9606-dd3f-3cae-f1d497f87a42@redhat.com> References: <13547f74-9606-dd3f-3cae-f1d497f87a42@redhat.com> Message-ID: > http://cr.openjdk.java.net/~rkennke/c2-obj-eq-barrier/webrev.01/ I doubt the changes in library_call.cpp are ok. WB produces memory. So dropping the mem phis and moving the WBs at a different location is likely to break something. Roland. From rkennke at redhat.com Tue Sep 11 14:30:21 2018 From: rkennke at redhat.com (Roman Kennke) Date: Tue, 11 Sep 2018 16:30:21 +0200 Subject: RFR: Simpler obj equals barrier for C2 In-Reply-To: References: <13547f74-9606-dd3f-3cae-f1d497f87a42@redhat.com> Message-ID: <4bb5169f-efe0-b8e0-e442-f369c578944e@redhat.com> >> http://cr.openjdk.java.net/~rkennke/c2-obj-eq-barrier/webrev.01/ > > I doubt the changes in library_call.cpp are ok. WB produces memory. So > dropping the mem phis and moving the WBs at a different location is > likely to break something. > > Roland. Ok. But how would I notice? The test suite works ok. I'll also run some other stuff (e.g. specjvm/jbb). Also, the WB code only produces memory in the Shenandoah brooks pointer slice(s), and it takes care of producing the memphis as needed. Maybe this is good enough? Roman From rwestrel at redhat.com Tue Sep 11 14:36:57 2018 From: rwestrel at redhat.com (Roland Westrelin) Date: Tue, 11 Sep 2018 16:36:57 +0200 Subject: RFR: Simpler obj equals barrier for C2 In-Reply-To: <4bb5169f-efe0-b8e0-e442-f369c578944e@redhat.com> References: <13547f74-9606-dd3f-3cae-f1d497f87a42@redhat.com> <4bb5169f-efe0-b8e0-e442-f369c578944e@redhat.com> Message-ID: > Ok. But how would I notice? The test suite works ok. I'll also run some > other stuff (e.g. specjvm/jbb). The test suite must not test those intrinsics then. > Also, the WB code only produces memory in the Shenandoah brooks pointer > slice(s), and it takes care of producing the memphis as needed. Maybe > this is good enough? It doesn't take care of producing memphis. if (some_condition) { a = wb(a); b = wb(b); if (a == b) { // do something } } // need a mem phi here A way around this is to do this, instead: a = wb(a); b = wb(b); if (some_condition) { if (a == b) { // do something } } The library_call.cpp code either adds the required mem phis or adds the barrier so there's no need for phis (they are in some cases tricky to add because of the way the code is structured). Can we go back to what we had before? Roland. From rkennke at redhat.com Tue Sep 11 14:44:47 2018 From: rkennke at redhat.com (Roman Kennke) Date: Tue, 11 Sep 2018 16:44:47 +0200 Subject: RFR: Simpler obj equals barrier for C2 In-Reply-To: References: <13547f74-9606-dd3f-3cae-f1d497f87a42@redhat.com> <4bb5169f-efe0-b8e0-e442-f369c578944e@redhat.com> Message-ID: <57cf8307-3f54-ea56-ac08-4e52b40d2762@redhat.com> >> Ok. But how would I notice? The test suite works ok. I'll also run some >> other stuff (e.g. specjvm/jbb). > > The test suite must not test those intrinsics then. There's 3 affected intrinsics: - isInterrupted: this one did not actually change - subtype-check: this seems likely to trigger, and in-fact I have seen it trigger because I had a bug in my barrier - aes-crypt: this one will likely not trigger by the test-suite, but by specjvm. I'm running it now. >> Also, the WB code only produces memory in the Shenandoah brooks pointer >> slice(s), and it takes care of producing the memphis as needed. Maybe >> this is good enough? > > It doesn't take care of producing memphis. > > if (some_condition) { > a = wb(a); > b = wb(b); > if (a == b) { > // do something > } > } // need a mem phi here > > A way around this is to do this, instead: > > a = wb(a); > b = wb(b); > > if (some_condition) { > if (a == b) { > // do something > } > } > > The library_call.cpp code either adds the required mem phis or adds the > barrier so there's no need for phis (they are in some cases tricky to > add because of the way the code is structured). WBs work in all other places, and produces the memphis that it needs, afaik. I don't really understand why it wouldn't here. > Can we go back to what we had before? To what? This change hasn't been pushed yet. Do you mean the access_resolve_for_cmpoop() applied to all the places? To be honest, only if we can't make this here work ;-) Roman From rwestrel at redhat.com Tue Sep 11 14:49:26 2018 From: rwestrel at redhat.com (Roland Westrelin) Date: Tue, 11 Sep 2018 16:49:26 +0200 Subject: RFR: Simpler obj equals barrier for C2 In-Reply-To: <57cf8307-3f54-ea56-ac08-4e52b40d2762@redhat.com> References: <13547f74-9606-dd3f-3cae-f1d497f87a42@redhat.com> <4bb5169f-efe0-b8e0-e442-f369c578944e@redhat.com> <57cf8307-3f54-ea56-ac08-4e52b40d2762@redhat.com> Message-ID: > There's 3 affected intrinsics: > - isInterrupted: this one did not actually change > - subtype-check: this seems likely to trigger, and in-fact I have seen > it trigger because I had a bug in my barrier > - aes-crypt: this one will likely not trigger by the test-suite, but by > specjvm. I'm running it now. java -XX:-TieredCompilation -XX:+CompileTheWorld -XX:+UseShenandoahGC -version will stress test everything. > WBs work in all other places, and produces the memphis that it needs, > afaik. I don't really understand why it wouldn't here. In other places, parsing builds the control flow and adds the phis. With intrinsics, we add explicit control flow and so we must add phis ourselves because nothing else does it for us. Roland. From rkennke at redhat.com Tue Sep 11 16:01:50 2018 From: rkennke at redhat.com (Roman Kennke) Date: Tue, 11 Sep 2018 18:01:50 +0200 Subject: RFR: Simpler obj equals barrier for C2 In-Reply-To: References: <13547f74-9606-dd3f-3cae-f1d497f87a42@redhat.com> <4bb5169f-efe0-b8e0-e442-f369c578944e@redhat.com> <57cf8307-3f54-ea56-ac08-4e52b40d2762@redhat.com> Message-ID: > >> There's 3 affected intrinsics: >> - isInterrupted: this one did not actually change >> - subtype-check: this seems likely to trigger, and in-fact I have seen >> it trigger because I had a bug in my barrier >> - aes-crypt: this one will likely not trigger by the test-suite, but by >> specjvm. I'm running it now. > > java -XX:-TieredCompilation -XX:+CompileTheWorld -XX:+UseShenandoahGC -version > > will stress test everything. Alright, that failed in CipherBlockChaining::decrypt() :-) >> WBs work in all other places, and produces the memphis that it needs, >> afaik. I don't really understand why it wouldn't here. > > In other places, parsing builds the control flow and adds the phis. With > intrinsics, we add explicit control flow and so we must add phis > ourselves because nothing else does it for us. The next best thing to try is to do resolve_for_obj_equals(a, b) approach, right? Or is there a way to get this simpler/better(IMO) API to work without too much messing about? Roman From rkennke at redhat.com Tue Sep 11 16:04:40 2018 From: rkennke at redhat.com (Roman Kennke) Date: Tue, 11 Sep 2018 18:04:40 +0200 Subject: RFR: Remove racy assert in ShenandoahResetNextMarkBitmapTraversalTask In-Reply-To: <5cb891cd-3275-78d4-5d86-d270acde21bc@redhat.com> References: <5cb891cd-3275-78d4-5d86-d270acde21bc@redhat.com> Message-ID: > On 09/11/2018 03:27 PM, Zhengyu Gu wrote: >> On 09/11/2018 08:06 AM, Roman Kennke wrote: >>> The assert in ShenandoahResetNextMarkBitmapTraversalTask that is racily >>> checking TAMS against top. Racy because other manipulations (e.g. >>> recycle-assist) happen under HeapLock, but not this check. This >>> sometimes blows up. I don't know how to fix that except removing it. We >>> could acquire the HeapLock under #ifdef ASSERT but that seems like overkill. >>> >>> >> Hmmm... I am not sure this ShenandoahResetNextBitmapTraversalTask is safe at all. >> >> The region status races against mutator's allocation, e.g. region->is_trash() can race against >> FreeSet's recycle_trash(), now you have memory ordering issues to worry about. Am I wrong? > > I am with Zhengyu here: this does not look safe at all. > > Maybe we should instead swap the cleanup order in ShenandoahHeap::op_cleanup_traversal(): first > recycle all the trash, and *then* reset the bitmaps. Then we don't have to test for > region->is_trash() in ShResetNextBitmapTraversal at all (we should still assert it), resolving the > original race. > Right. The following makes both the order in cleanup and the reset-next-markbitmap loop consistent with adaptive: Incremental: http://cr.openjdk.java.net/~rkennke/fixtamsassert/webrev.01.diff/ Full: http://cr.openjdk.java.net/~rkennke/fixtamsassert/webrev.01/ Testing: passes tier3_gc_shenandoah Roman From rkennke at redhat.com Tue Sep 11 17:49:50 2018 From: rkennke at redhat.com (Roman Kennke) Date: Tue, 11 Sep 2018 19:49:50 +0200 Subject: RFR: Simpler obj equals barrier for C2 In-Reply-To: References: <13547f74-9606-dd3f-3cae-f1d497f87a42@redhat.com> <4bb5169f-efe0-b8e0-e442-f369c578944e@redhat.com> <57cf8307-3f54-ea56-ac08-4e52b40d2762@redhat.com> Message-ID: <25b5197c-e0f7-d5c9-7421-b369247eddc6@redhat.com> Am 11.09.2018 um 16:49 schrieb Roland Westrelin: > >> There's 3 affected intrinsics: >> - isInterrupted: this one did not actually change >> - subtype-check: this seems likely to trigger, and in-fact I have seen >> it trigger because I had a bug in my barrier >> - aes-crypt: this one will likely not trigger by the test-suite, but by >> specjvm. I'm running it now. > > java -XX:-TieredCompilation -XX:+CompileTheWorld -XX:+UseShenandoahGC -version > > will stress test everything. > >> WBs work in all other places, and produces the memphis that it needs, >> afaik. I don't really understand why it wouldn't here. > > In other places, parsing builds the control flow and adds the phis. With > intrinsics, we add explicit control flow and so we must add phis > ourselves because nothing else does it for us. > > Roland. > Does this look better? http://cr.openjdk.java.net/~rkennke/c2-obj-eq-barrier/webrev.02/ Roman From rkennke at redhat.com Tue Sep 11 19:43:42 2018 From: rkennke at redhat.com (Roman Kennke) Date: Tue, 11 Sep 2018 21:43:42 +0200 Subject: RFR: Upstream merge jdk/jdk -> shenandoah/jdk 2018-09-11 Message-ID: <8501994d-a575-8d2b-11d6-6516a72973c5@redhat.com> Merging from upstream jdk/jdk up to tag jdk-12+10. Nothing spectacular happened. List of changes: http://cr.openjdk.java.net/~rkennke/upstream-jdk12-merge-2018-09-11/outgoing.txt Merged trivially. Testing: tier3_gc_shenandoah ok Roman From zgu at redhat.com Tue Sep 11 19:52:05 2018 From: zgu at redhat.com (Zhengyu Gu) Date: Tue, 11 Sep 2018 15:52:05 -0400 Subject: RFR: Upstream merge jdk/jdk -> shenandoah/jdk 2018-09-11 In-Reply-To: <8501994d-a575-8d2b-11d6-6516a72973c5@redhat.com> References: <8501994d-a575-8d2b-11d6-6516a72973c5@redhat.com> Message-ID: <55420b35-a51f-4a0d-d279-b243878ab49f@redhat.com> Okay. -Zhengyu On 09/11/2018 03:43 PM, Roman Kennke wrote: > Merging from upstream jdk/jdk up to tag jdk-12+10. Nothing spectacular > happened. > > List of changes: > http://cr.openjdk.java.net/~rkennke/upstream-jdk12-merge-2018-09-11/outgoing.txt > > Merged trivially. > > Testing: tier3_gc_shenandoah ok > > Roman > From roman at kennke.org Tue Sep 11 20:07:01 2018 From: roman at kennke.org (roman at kennke.org) Date: Tue, 11 Sep 2018 20:07:01 +0000 Subject: hg: shenandoah/jdk: 73 new changesets Message-ID: <201809112007.w8BK775J015646@aojmv0008.oracle.com> Changeset: d7fc38d3fc8d Author: mikael Date: 2018-08-29 13:04 -0700 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/d7fc38d3fc8d 8209856: Obsolete error reporter Reviewed-by: coleenp, stuefe ! make/nb_native/nbproject/configurations.xml ! src/hotspot/share/runtime/arguments.cpp ! src/hotspot/share/runtime/globals.hpp - src/hotspot/share/utilities/errorReporter.cpp - src/hotspot/share/utilities/errorReporter.hpp ! src/hotspot/share/utilities/vmError.cpp ! test/hotspot/jtreg/compiler/ciReplay/CiReplayBase.java ! test/hotspot/jtreg/runtime/ErrorHandling/CreateCoredumpOnCrash.java ! test/hotspot/jtreg/runtime/ErrorHandling/ErrorHandler.java ! test/hotspot/jtreg/runtime/ErrorHandling/ProblematicFrameTest.java ! test/hotspot/jtreg/runtime/ErrorHandling/TestOnError.java ! test/hotspot/jtreg/runtime/Safepoint/AssertSafepointCheckConsistency1.java ! test/hotspot/jtreg/runtime/Safepoint/AssertSafepointCheckConsistency2.java ! test/hotspot/jtreg/runtime/Safepoint/AssertSafepointCheckConsistency3.java ! test/hotspot/jtreg/runtime/Safepoint/AssertSafepointCheckConsistency4.java ! test/hotspot/jtreg/runtime/Unsafe/RangeCheck.java ! test/hotspot/jtreg/runtime/memory/ReserveMemory.java ! test/hotspot/jtreg/serviceability/sa/TestJmapCore.java ! test/jdk/jdk/jfr/jvm/TestDumpOnCrash.java Changeset: 0cd55d573893 Author: mikael Date: 2018-08-29 13:50 -0700 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/0cd55d573893 8210167: ProblemList vmTestbase/nsk/jvmti/scenarios/allocation/AP10/ap10t001/TestDescription.java Reviewed-by: coleenp ! test/hotspot/jtreg/ProblemList.txt Changeset: 8cae49105cbc Author: jwilhelm Date: 2018-08-30 03:49 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/8cae49105cbc Added tag jdk-12+9 for changeset 31b159f30fb2 ! .hgtags Changeset: 18ca918b4ed9 Author: ljiang Date: 2018-08-29 19:14 -0700 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/18ca918b4ed9 8210153: localized currency symbol of VES Reviewed-by: naoto ! src/jdk.localedata/share/classes/sun/util/resources/ext/CurrencyNames_es_VE.properties ! test/jdk/java/text/Format/NumberFormat/CurrencyFormat.java ! test/jdk/java/text/Format/NumberFormat/CurrencySymbols.properties Changeset: ad2224d4f346 Author: gadams Date: 2018-08-28 08:06 -0400 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/ad2224d4f346 8170089: nsk/jdi/EventSet/resume/resume008: ERROR: suspendCounts don't match for : Common-Cleaner Reviewed-by: cjplummer, sspitsyn ! test/hotspot/jtreg/vmTestbase/nsk/jdi/EventSet/resume/resume001.java ! test/hotspot/jtreg/vmTestbase/nsk/jdi/EventSet/resume/resume001a.java ! test/hotspot/jtreg/vmTestbase/nsk/jdi/EventSet/resume/resume002.java ! test/hotspot/jtreg/vmTestbase/nsk/jdi/EventSet/resume/resume002a.java ! test/hotspot/jtreg/vmTestbase/nsk/jdi/EventSet/resume/resume003.java ! test/hotspot/jtreg/vmTestbase/nsk/jdi/EventSet/resume/resume003a.java ! test/hotspot/jtreg/vmTestbase/nsk/jdi/EventSet/resume/resume004.java ! test/hotspot/jtreg/vmTestbase/nsk/jdi/EventSet/resume/resume004a.java ! test/hotspot/jtreg/vmTestbase/nsk/jdi/EventSet/resume/resume005.java ! test/hotspot/jtreg/vmTestbase/nsk/jdi/EventSet/resume/resume005a.java ! test/hotspot/jtreg/vmTestbase/nsk/jdi/EventSet/resume/resume006.java ! test/hotspot/jtreg/vmTestbase/nsk/jdi/EventSet/resume/resume006a.java ! test/hotspot/jtreg/vmTestbase/nsk/jdi/EventSet/resume/resume007.java ! test/hotspot/jtreg/vmTestbase/nsk/jdi/EventSet/resume/resume007a.java ! test/hotspot/jtreg/vmTestbase/nsk/jdi/EventSet/resume/resume008.java ! test/hotspot/jtreg/vmTestbase/nsk/jdi/EventSet/resume/resume008a.java ! test/hotspot/jtreg/vmTestbase/nsk/jdi/EventSet/resume/resume009.java ! test/hotspot/jtreg/vmTestbase/nsk/jdi/EventSet/resume/resume009a.java ! test/hotspot/jtreg/vmTestbase/nsk/jdi/EventSet/resume/resume010.java ! test/hotspot/jtreg/vmTestbase/nsk/jdi/EventSet/resume/resume010a.java Changeset: d395677d99f3 Author: cjplummer Date: 2018-08-29 20:13 -0700 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/d395677d99f3 8199811: com/sun/jdi/ProcessAttachTest.java fails intermittently: Remote thread failed for unknown reason Summary: give attach listener thread a chance to finish starting Reviewed-by: dholmes, gadams ! src/hotspot/os/solaris/attachListener_solaris.cpp ! src/hotspot/os/windows/attachListener_windows.cpp Changeset: c25f6c562bf5 Author: ihse Date: 2018-08-30 08:15 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/c25f6c562bf5 8210150: Allow custom-hook.m4 to include files from CUSTOM_CONFIG_DIR Reviewed-by: erikj ! make/autoconf/configure Changeset: eaa569eeb856 Author: ihse Date: 2018-08-30 08:19 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/eaa569eeb856 8210160: Remove deprecated configure arguments Reviewed-by: erikj ! make/autoconf/hotspot.m4 ! make/autoconf/jdk-options.m4 ! make/autoconf/jdk-version.m4 ! make/autoconf/libraries.m4 Changeset: b459c731901b Author: eosterlund Date: 2018-08-30 08:59 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/b459c731901b 8210061: ZGC: Remove STW weak processor mode Reviewed-by: pliden, kbarrett ! src/hotspot/share/gc/z/zRootsIterator.cpp ! src/hotspot/share/gc/z/zRootsIterator.hpp ! src/hotspot/share/gc/z/z_globals.hpp Changeset: f36e08f052b1 Author: eosterlund Date: 2018-08-30 09:12 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/f36e08f052b1 8210063: ZGC: Enable load barriers for IN_NATIVE runtime barriers Reviewed-by: pliden ! src/hotspot/share/gc/z/zBarrierSet.inline.hpp Changeset: 9aa7ac61e68c Author: mbaesken Date: 2018-08-29 10:11 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/9aa7ac61e68c 8210147: adjust some WSAGetLastError usages in windows network coding Reviewed-by: clanger, stuefe ! src/java.base/windows/native/libnet/Inet4AddressImpl.c ! src/java.base/windows/native/libnet/Inet6AddressImpl.c ! src/java.base/windows/native/libnet/SocketInputStream.c Changeset: 3aaf039a3636 Author: eosterlund Date: 2018-08-30 09:25 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/3aaf039a3636 8210065: ZGC: Remove mode for treating weaks as strong Reviewed-by: kbarrett, pliden ! src/hotspot/share/gc/z/zRootsIterator.cpp ! src/hotspot/share/gc/z/zRootsIterator.hpp ! src/hotspot/share/gc/z/z_globals.hpp Changeset: 9183040e34d8 Author: lucy Date: 2018-08-30 09:34 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/9183040e34d8 8209950: SIGBUS in CodeHeapState::print_names() Reviewed-by: thartmann, kvn ! src/hotspot/share/code/codeHeapState.cpp ! src/hotspot/share/code/compiledMethod.cpp ! src/hotspot/share/code/compiledMethod.hpp ! src/hotspot/share/runtime/sharedRuntime.cpp Changeset: 1ddd1ec04431 Author: hseigel Date: 2018-08-30 09:08 -0400 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/1ddd1ec04431 8210168: JCK test .vm.classfmt.ins.code__002.code__00201m1.code__00201m1 hangs with -noverify Summary: Check for 'bc_length > 0' to handle lengths of -1. Reviewed-by: coleenp ! src/hotspot/share/interpreter/rewriter.cpp Changeset: e6250a870739 Author: iklam Date: 2018-08-30 08:01 -0700 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/e6250a870739 8210194: [TESTBUG] jvmti_FollowRefObjects.cpp missing initializer for member _jvmtiHeapCallbacks::heap_reference_callback Reviewed-by: sspitsyn, iignatyev ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/unit/FollowReferences/followref001/followref001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/unit/FollowReferences/followref002/followref002.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/unit/FollowReferences/followref003/followref003.cpp ! test/hotspot/jtreg/vmTestbase/nsk/share/jvmti/jvmti_FollowRefObjects.cpp Changeset: dc79850e0254 Author: jcbeyler Date: 2018-08-30 09:47 -0700 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/dc79850e0254 8203356: VM Object Allocation Collector can infinite recurse Summary: VM Event callback do not provoke a VM alloc event Reviewed-by: sspitsyn, phh, amenkov, cjplummer ! make/nb_native/nbproject/configurations.xml ! src/hotspot/share/prims/jvmtiExport.cpp + test/hotspot/jtreg/serviceability/jvmti/VMEvent/MyPackage/VMEventRecursionTest.java + test/hotspot/jtreg/serviceability/jvmti/VMEvent/libVMEventTest.c Changeset: 02572bed95b6 Author: akolarkunnu Date: 2018-08-30 03:01 -0700 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/02572bed95b6 8209993: Create a test for SwingSet3 ToolTipDemo Reviewed-by: serb Contributed-by: abdul.kolarkunnu at oracle.com + test/jdk/sanity/client/SwingSet/src/ToolTipDemoTest.java + test/jdk/sanity/client/lib/SwingSet3/src/com/sun/swingset3/demos/tooltip/ToolTipDemo.java + test/jdk/sanity/client/lib/SwingSet3/src/com/sun/swingset3/demos/tooltip/resources/ToolTipDemo.properties + test/jdk/sanity/client/lib/SwingSet3/src/com/sun/swingset3/demos/tooltip/resources/images/ToolTipDemo.gif + test/jdk/sanity/client/lib/SwingSet3/src/com/sun/swingset3/demos/tooltip/resources/images/tooltip_background.png Changeset: b8eea2a7569a Author: amenkov Date: 2018-08-30 11:53 -0700 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/b8eea2a7569a 8209604: [TEST] rewrite com/sun/jdi shell tests to java version - step2 Reviewed-by: jcbeyler, sspitsyn, cjplummer ! test/jdk/com/sun/jdi/ArrayLengthDumpTest.java ! test/jdk/com/sun/jdi/BreakpointWithFullGC.java + test/jdk/com/sun/jdi/CatchAllTest.java - test/jdk/com/sun/jdi/CatchAllTest.sh + test/jdk/com/sun/jdi/CatchCaughtTest.java - test/jdk/com/sun/jdi/CatchCaughtTest.sh + test/jdk/com/sun/jdi/CommandCommentDelimiter.java - test/jdk/com/sun/jdi/CommandCommentDelimiter.sh + test/jdk/com/sun/jdi/DeoptimizeWalk.java - test/jdk/com/sun/jdi/DeoptimizeWalk.sh + test/jdk/com/sun/jdi/EvalArgs.java - test/jdk/com/sun/jdi/EvalArgs.sh + test/jdk/com/sun/jdi/EvalArraysAsList.java - test/jdk/com/sun/jdi/EvalArraysAsList.sh + test/jdk/com/sun/jdi/EvalInterfaceStatic.java - test/jdk/com/sun/jdi/EvalInterfaceStatic.sh + test/jdk/com/sun/jdi/GetLocalVariables3Test.java - test/jdk/com/sun/jdi/GetLocalVariables3Test.sh ! test/jdk/com/sun/jdi/JdbExprTest.java ! test/jdk/com/sun/jdi/JdbMethodExitTest.java ! test/jdk/com/sun/jdi/lib/jdb/Jdb.java ! test/jdk/com/sun/jdi/lib/jdb/JdbCommand.java ! test/jdk/com/sun/jdi/lib/jdb/JdbTest.java Changeset: 4c78f4fd8370 Author: bpb Date: 2018-08-30 12:39 -0700 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/4c78f4fd8370 8207744: Clean up inconsistent use of opendir/closedir versus opendir64/closedir64 Reviewed-by: bsrbnd, mbaesken, bchristi, simonis ! src/java.base/share/native/libjli/wildcard.c ! src/java.base/unix/native/libjava/ProcessHandleImpl_unix.c ! src/java.base/unix/native/libjava/TimeZone_md.c ! src/java.base/unix/native/libjava/UnixFileSystem_md.c ! src/java.base/unix/native/libjava/childproc.c ! src/java.base/unix/native/libnio/fs/UnixNativeDispatcher.c ! src/jdk.management/unix/native/libmanagement_ext/OperatingSystemImpl.c Changeset: c88019b32bc4 Author: kbarrett Date: 2018-08-30 16:16 -0400 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/c88019b32bc4 8210119: Rename SubTasksDone::is_task_claimed Summary: Renamed to try_claim_task and inverted result. Reviewed-by: coleenp, sjohanss ! src/hotspot/share/gc/cms/cmsCardTable.cpp ! src/hotspot/share/gc/cms/cmsHeap.cpp ! src/hotspot/share/gc/cms/concurrentMarkSweepGeneration.cpp ! src/hotspot/share/gc/g1/g1RootProcessor.cpp ! src/hotspot/share/gc/shared/genCollectedHeap.cpp ! src/hotspot/share/gc/shared/preservedMarks.cpp ! src/hotspot/share/gc/shared/weakProcessor.inline.hpp ! src/hotspot/share/gc/shared/workgroup.cpp ! src/hotspot/share/gc/shared/workgroup.hpp ! src/hotspot/share/runtime/safepoint.cpp Changeset: 3198179d97fa Author: avoitylov Date: 2018-08-30 16:33 -0400 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/3198179d97fa 8210164: building Minimal VM fails with error: comparison of unsigned expression < 0 is always false [-Werror=type-limits] Summary: Conditionalize compare with serial_phase_count. Reviewed-by: kbarrett, shade ! src/hotspot/share/gc/shared/weakProcessorPhases.cpp Changeset: 56309b1b9d9b Author: kbarrett Date: 2018-08-30 17:03 -0400 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/56309b1b9d9b 8209975: Some GCThreadLocalData not initialized Summary: Perform deferred BarrierSet initializations for NonJavaThreads too. Reviewed-by: eosterlund, pliden ! src/hotspot/share/gc/shared/barrierSet.cpp ! src/hotspot/share/runtime/thread.cpp ! src/hotspot/share/runtime/thread.hpp Changeset: e469480420dc Author: cjplummer Date: 2018-08-30 17:59 -0700 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/e469480420dc 8210118: better jdb test diagnostics when getting "Prompt is not received during ... milliseconds" failures Summary: print pending reply when prompt is not recieved Reviewed-by: dholmes, gadams, sspitsyn, jcbeyler ! test/hotspot/jtreg/vmTestbase/nsk/share/jdb/Jdb.java Changeset: dbb0e798deeb Author: mli Date: 2018-08-31 10:00 +0800 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/dbb0e798deeb 8208280: java/nio/channels/Selector/RegisterDuringSelect.java fails with "key not removed from key set" Reviewed-by: alanb ! test/jdk/java/nio/channels/Selector/RegisterDuringSelect.java ! test/jdk/java/nio/channels/Selector/SelectAndClose.java + test/jdk/java/nio/channels/Selector/SelectorUtils.java Changeset: d0b71f6163e1 Author: jjiang Date: 2018-08-31 10:32 +0800 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/d0b71f6163e1 8209362: sun/security/ssl/SSLSocketImpl/ReuseAddr.java failed due to "BindException: Address already in use (Bind failed)" Summary: Refactor this test with SSLSocketTemplate Reviewed-by: xuelei ! test/jdk/javax/net/ssl/templates/SSLSocketTemplate.java ! test/jdk/sun/security/ssl/SSLSocketImpl/ReuseAddr.java Changeset: 72291a181f8d Author: mbaesken Date: 2018-08-30 13:12 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/72291a181f8d 8210205: build fails on AIX in hotspot cpp tests (for example getstacktr001.cpp) Reviewed-by: mdoerr, stuefe ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetStackTrace/getstacktr001/getstacktr001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetStackTrace/getstacktr003/getstacktr003.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetStackTrace/getstacktr004/getstacktr004.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetStackTrace/getstacktr005/getstacktr005.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetStackTrace/getstacktr006/getstacktr006.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetStackTrace/getstacktr007/getstacktr007.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetStackTrace/getstacktr008/getstacktr008.cpp Changeset: 2ca553d34949 Author: ihse Date: 2018-08-31 09:37 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/2ca553d34949 6657100: Rename sparcWorks to solstudio in HotSpot Reviewed-by: erikj, dcubed ! make/autoconf/toolchain.m4 ! make/nb_native/nbproject/configurations.xml ! src/hotspot/share/interpreter/bytecodeHistogram.hpp ! src/hotspot/share/runtime/vmStructs.hpp ! src/hotspot/share/utilities/count_trailing_zeros.hpp + src/hotspot/share/utilities/globalDefinitions_solstudio.hpp - src/hotspot/share/utilities/globalDefinitions_sparcWorks.hpp ! src/java.base/solaris/native/libjvm_db/libjvm_db.c ! src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/types/basic/BasicTypeDataBase.java Changeset: 18afb2097ada Author: dnsimon Date: 2018-08-31 11:43 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/18afb2097ada 8210066: [JVMCI] iterateFrames uses wrong GrowableArray API for appending Reviewed-by: dlong, twisti ! src/hotspot/share/jvmci/jvmciCompilerToVM.cpp ! test/hotspot/jtreg/compiler/jvmci/compilerToVM/MaterializeVirtualObjectTest.java Changeset: 5eb48e9d607a Author: hannesw Date: 2018-08-31 12:41 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/5eb48e9d607a 8176453: Javadoc search: there are issues with generics in parameters Reviewed-by: jjg, sundar ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/resources/search.js Changeset: 625a5bdde0c5 Author: coleenp Date: 2018-08-31 07:03 -0400 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/625a5bdde0c5 8210155: Lock ClassLoaderDataGraph Summary: In preparation for concurrent class unloading. Reviewed-by: hseigel, eosterlund ! src/hotspot/share/classfile/classLoaderData.cpp ! src/hotspot/share/classfile/classLoaderData.hpp ! src/hotspot/share/classfile/systemDictionary.cpp ! src/hotspot/share/gc/cms/concurrentMarkSweepGeneration.cpp ! src/hotspot/share/jfr/periodic/jfrModuleEvent.cpp ! src/hotspot/share/jfr/recorder/checkpoint/types/jfrTypeManager.cpp ! src/hotspot/share/jfr/recorder/repository/jfrEmergencyDump.cpp ! src/hotspot/share/memory/heapInspection.cpp ! src/hotspot/share/memory/heapInspection.hpp ! src/hotspot/share/memory/metaspaceShared.cpp ! src/hotspot/share/memory/universe.cpp ! src/hotspot/share/oops/klassVtable.cpp ! src/hotspot/share/prims/jvmtiEnvBase.cpp ! src/hotspot/share/prims/jvmtiGetLoadedClasses.cpp ! src/hotspot/share/prims/whitebox.cpp ! src/hotspot/share/runtime/java.cpp ! src/hotspot/share/runtime/mutexLocker.cpp ! src/hotspot/share/runtime/mutexLocker.hpp ! src/hotspot/share/services/heapDumper.cpp Changeset: 48a95b70d4af Author: coleenp Date: 2018-08-31 09:10 -0400 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/48a95b70d4af 8207793: [TESTBUG] runtime/Metaspace/FragmentMetaspace.java fails: heap needs to be increased Summary: Reduce test time and allow OOM. Reviewed-by: iklam, hseigel ! test/hotspot/jtreg/runtime/Metaspace/FragmentMetaspace.java ! test/hotspot/jtreg/runtime/testlibrary/GeneratedClassLoader.java Changeset: cdef4df6b0e7 Author: pchilanomate Date: 2018-08-31 10:22 -0400 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/cdef4df6b0e7 8206424: Use locking for cleaning ProtectionDomainTable Summary: ServiceThread is now in charge of cleaning ProtectionDomainTable entries Reviewed-by: coleenp, iklam ! src/hotspot/share/classfile/protectionDomainCache.cpp ! src/hotspot/share/classfile/protectionDomainCache.hpp ! src/hotspot/share/classfile/systemDictionary.cpp ! src/hotspot/share/classfile/systemDictionary.hpp ! src/hotspot/share/prims/whitebox.cpp ! src/hotspot/share/runtime/serviceThread.cpp + test/hotspot/jtreg/runtime/Dictionary/CleanProtectionDomain.java ! test/lib/sun/hotspot/WhiteBox.java Changeset: 2ef81feac8b8 Author: amenkov Date: 2018-08-31 09:53 -0700 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/2ef81feac8b8 8067354: com/sun/jdi/GetLocalVariables4Test.sh failed Reviewed-by: jcbeyler, sspitsyn ! test/jdk/ProblemList.txt + test/jdk/com/sun/jdi/GetLocalVariables4Test.java - test/jdk/com/sun/jdi/GetLocalVariables4Test.sh Changeset: bdac20c6c8dd Author: mcimadamore Date: 2018-08-31 18:01 +0100 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/bdac20c6c8dd 8210226: Add support for multiple project folders to idea.sh Summary: Overhaul templating logic for idea.sh; add support for -o option Reviewed-by: erikj, ihse ! bin/idea.sh ! make/idea/template/ant.xml ! make/idea/template/compiler.xml ! make/idea/template/jdk.iml ! make/idea/template/misc.xml ! make/idea/template/vcs.xml ! make/idea/template/workspace.xml ! make/langtools/intellij/build.xml ! make/langtools/intellij/template/ant.xml ! make/langtools/intellij/template/misc.xml Changeset: 3835dc32de5e Author: dtitov Date: 2018-08-31 11:56 -0700 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/3835dc32de5e 8209585: [Graal] vmTestbase/nsk/jvmti/scenarios/sampling tests fail with "Too small stack of resumed thread" Reviewed-by: sspitsyn, amenkov, cjplummer, jcbeyler ! test/hotspot/jtreg/ProblemList-graal.txt ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/sampling/SP02/sp02t001/TestDescription.java ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/sampling/SP02/sp02t001/sp02t001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/sampling/SP02/sp02t002/TestDescription.java ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/sampling/SP02/sp02t002/sp02t002.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/sampling/SP06/sp06t001/TestDescription.java ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/sampling/SP06/sp06t001/sp06t001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/sampling/SP06/sp06t002/TestDescription.java ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/sampling/SP06/sp06t002/sp06t002.cpp Changeset: 36773a4fe3e7 Author: kbarrett Date: 2018-08-31 16:29 -0400 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/36773a4fe3e7 8210235: JvmtiTrace::safe_get_current_thread_name is unsafe in debug builds Summary: Use Thread::current_or_null and handle NULL result. Reviewed-by: coleenp ! src/hotspot/share/prims/jvmtiTrace.cpp Changeset: afbb33428df7 Author: jjg Date: 2018-08-31 14:54 -0700 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/afbb33428df7 8208608: Update --module-source-path to allow explicit source paths for specific modules Reviewed-by: jlahoda ! src/jdk.compiler/share/classes/com/sun/tools/javac/file/Locations.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/main/Option.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/resources/compiler.properties ! test/langtools/tools/javac/diags/examples.not-yet.txt ! test/langtools/tools/javac/file/SetLocationForModule.java ! test/langtools/tools/javac/modules/ModuleSourcePathTest.java ! test/langtools/tools/javac/modules/PatchModulesTest.java Changeset: b071f4fff1f1 Author: goetz Date: 2018-09-01 18:15 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/b071f4fff1f1 8210259: [testbug] IncompatibleOptions.java fails if VM configured without ZGC Reviewed-by: pliden, kbarrett ! test/hotspot/jtreg/runtime/appcds/sharedStrings/IncompatibleOptions.java ! test/lib/sun/hotspot/gc/GC.java Changeset: 9720ad0a40b6 Author: iklam Date: 2018-09-01 12:02 -0700 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/9720ad0a40b6 8210246: NMTUtil::_memory_type_names should be in sync with MemoryType Reviewed-by: ccheung, jiangli, coleenp ! src/hotspot/share/memory/allocation.hpp ! src/hotspot/share/services/nmtCommon.cpp Changeset: 54b344d9dd4e Author: lucy Date: 2018-09-03 09:43 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/54b344d9dd4e 8207343: Automate vtable/itable stub size calculation Reviewed-by: kvn, mdoerr ! src/hotspot/cpu/aarch64/vtableStubs_aarch64.cpp ! src/hotspot/cpu/arm/vtableStubs_arm.cpp ! src/hotspot/cpu/ppc/vtableStubs_ppc_64.cpp ! src/hotspot/cpu/s390/vtableStubs_s390.cpp ! src/hotspot/cpu/sparc/vtableStubs_sparc.cpp ! src/hotspot/cpu/x86/vtableStubs_x86_32.cpp ! src/hotspot/cpu/x86/vtableStubs_x86_64.cpp ! src/hotspot/share/code/vtableStubs.cpp ! src/hotspot/share/code/vtableStubs.hpp ! src/hotspot/share/logging/logTag.hpp Changeset: dca697c71e5d Author: avoitylov Date: 2018-09-03 13:39 +0300 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/dca697c71e5d 8207247: AARCH64: Enable Minimal and Client VM builds Reviewed-by: aph ! src/hotspot/cpu/aarch64/macroAssembler_aarch64.cpp ! src/hotspot/cpu/aarch64/stubGenerator_aarch64.cpp ! src/hotspot/cpu/aarch64/vm_version_aarch64.cpp Changeset: 4871c2d2e97e Author: bulasevich Date: 2018-09-03 13:42 +0300 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/4871c2d2e97e 8209408: Primitive heap access for interpreter BarrierSetAssembler/arm32 Reviewed-by: rkennke ! src/hotspot/cpu/arm/gc/shared/barrierSetAssembler_arm.cpp ! src/hotspot/cpu/arm/interp_masm_arm.cpp ! src/hotspot/cpu/arm/methodHandles_arm.cpp ! src/hotspot/cpu/arm/templateTable_arm.cpp ! src/hotspot/cpu/arm/templateTable_arm.hpp Changeset: b0c81cfd4dc9 Author: stuefe Date: 2018-09-03 14:27 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/b0c81cfd4dc9 8210314: [aix] NMT does not show "Safepoint" memory type Reviewed-by: goetz, mbaesken ! src/hotspot/os/aix/safepointMechanism_aix.cpp Changeset: de1a82a239e2 Author: stuefe Date: 2018-09-04 08:06 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/de1a82a239e2 8210307: 8210246 broke NMT jtreg tests Reviewed-by: goetz, iklam ! src/hotspot/share/services/nmtCommon.cpp Changeset: 3ee917225506 Author: weijun Date: 2018-09-04 14:47 +0800 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/3ee917225506 8210338: Better output for GenerationTests.java Reviewed-by: xuelei ! test/jdk/javax/xml/crypto/dsig/GenerationTests.java Changeset: 7ed777a14094 Author: tschatzl Date: 2018-09-04 12:17 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/7ed777a14094 8210265: Crash in HSpaceCounters::update_used() Summary: Guard call to update HSpaceCounters with flag Reviewed-by: shade, sjohanss, kbarrett ! src/hotspot/share/gc/g1/g1MonitoringSupport.cpp + test/hotspot/jtreg/gc/TestNoPerfCounter.java Changeset: c265860d5d45 Author: tschatzl Date: 2018-09-04 12:18 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/c265860d5d45 8207200: Committed > max memory usage when getting MemoryUsage Summary: Make sure that modification of memory usage variables are synchronized with returning them to Java. Reviewed-by: sangheki, mchung ! src/hotspot/share/gc/g1/g1CollectedHeap.cpp ! src/hotspot/share/gc/g1/g1CollectedHeap.hpp ! src/hotspot/share/gc/g1/g1MemoryPool.cpp ! src/hotspot/share/gc/g1/g1MonitoringSupport.cpp ! src/hotspot/share/gc/g1/g1MonitoringSupport.hpp ! src/hotspot/share/gc/shared/collectedHeap.cpp ! src/hotspot/share/gc/shared/collectedHeap.hpp ! src/hotspot/share/runtime/mutexLocker.cpp ! src/hotspot/share/runtime/mutexLocker.hpp ! src/hotspot/share/services/management.cpp Changeset: 0514d4c30cf1 Author: alanb Date: 2018-09-04 11:35 +0100 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/0514d4c30cf1 8210341: (fs) Typos in PosixFileAttributeView javadoc Reviewed-by: dfuchs ! src/java.base/share/classes/java/nio/file/attribute/PosixFileAttributeView.java Changeset: d5ba88422499 Author: shade Date: 2018-09-04 13:19 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/d5ba88422499 8210355: Minimal and Zero non-PCH builds fail after JDK-8207343 (Automate vtable/itable stub size calculation) Reviewed-by: thartmann ! src/hotspot/share/code/vtableStubs.cpp Changeset: 507c72580842 Author: shade Date: 2018-09-04 13:19 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/507c72580842 8210357: Zero builds fail after JDK-8207343 (Automate vtable/itable stub size calculation) Reviewed-by: thartmann ! src/hotspot/cpu/zero/vtableStubs_zero.cpp Changeset: 78c7f0c7827d Author: gromero Date: 2018-09-04 11:46 -0400 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/78c7f0c7827d 8210320: PPC64: Fix uninitialized variable in C1 LIR assembler code Reviewed-by: mbaesken, shade, mdoerr ! src/hotspot/cpu/ppc/c1_LIRAssembler_ppc.cpp Changeset: 25606a4e6693 Author: bpb Date: 2018-09-04 09:07 -0700 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/25606a4e6693 8210279: (bf) Remove unused package private method java.nio.Buffer.truncate() Reviewed-by: alanb ! src/java.base/share/classes/java/nio/Buffer.java Changeset: f9773a631272 Author: alanb Date: 2018-09-04 18:03 +0100 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/f9773a631272 8210087: Classes in jdk.unsupported not accessible from jconsole plugin Reviewed-by: erikj ! make/launcher/Launcher-jdk.jconsole.gmk Changeset: ed04bc1ff453 Author: dfuchs Date: 2018-09-04 18:32 +0100 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/ed04bc1ff453 8210366: Typo in MethodHandles.Lookup: must be either be Reviewed-by: rriggs ! src/java.base/share/classes/java/lang/invoke/MethodHandles.java Changeset: 21154cb84d2a Author: kvn Date: 2018-09-04 12:44 -0700 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/21154cb84d2a 8209594: guarantee(this->is8bit(imm8)) failed: Short forward jump exceeds 8-bit offset Summary: replace short jumps and fix other issues when generated code exceed expected range. Reviewed-by: dlong, rasbold ! src/hotspot/cpu/aarch64/macroAssembler_aarch64.hpp ! src/hotspot/cpu/arm/macroAssembler_arm.hpp ! src/hotspot/cpu/arm/macroAssembler_arm.inline.hpp ! src/hotspot/cpu/ppc/macroAssembler_ppc.hpp ! src/hotspot/cpu/ppc/macroAssembler_ppc.inline.hpp ! src/hotspot/cpu/s390/macroAssembler_s390.cpp ! src/hotspot/cpu/s390/macroAssembler_s390.hpp ! src/hotspot/cpu/sparc/macroAssembler_sparc.hpp ! src/hotspot/cpu/sparc/macroAssembler_sparc.inline.hpp ! src/hotspot/cpu/x86/assembler_x86.cpp ! src/hotspot/cpu/x86/assembler_x86.hpp ! src/hotspot/cpu/x86/c1_LIRAssembler_x86.cpp ! src/hotspot/cpu/x86/macroAssembler_x86.cpp ! src/hotspot/cpu/x86/macroAssembler_x86.hpp ! src/hotspot/cpu/x86/templateInterpreterGenerator_x86.cpp ! src/hotspot/cpu/x86/templateTable_x86.cpp ! src/hotspot/cpu/x86/x86.ad ! src/hotspot/cpu/zero/assembler_zero.cpp ! src/hotspot/cpu/zero/assembler_zero.hpp ! src/hotspot/share/asm/assembler.cpp ! src/hotspot/share/asm/assembler.hpp ! src/hotspot/share/opto/compile.cpp Changeset: 3f189f451ff1 Author: jcbeyler Date: 2018-08-31 22:55 -0700 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/3f189f451ff1 8210182: Remove macros for C compilation from vmTestBase but non jvmti Summary: Remove the macros and update the code Reviewed-by: sspitsyn, cjplummer, amenkov ! test/hotspot/jtreg/vmTestbase/gc/g1/unloading/libdefine.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jdi/ThreadReference/forceEarlyReturn/forceEarlyReturn004/libforceEarlyReturn004a.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jdi/ThreadReference/forceEarlyReturn/forceEarlyReturn005/libforceEarlyReturn005a.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jdwp/ThreadReference/ForceEarlyReturn/forceEarlyReturn002/libforceEarlyReturn002a.cpp ! test/hotspot/jtreg/vmTestbase/nsk/share/jdi/MonitorEnterExecutor.cpp ! test/hotspot/jtreg/vmTestbase/nsk/share/jni/JNIreferences.cpp ! test/hotspot/jtreg/vmTestbase/nsk/share/jpda/libNativeMethodsTestThread.cpp ! test/hotspot/jtreg/vmTestbase/nsk/share/locks/JNIMonitorLocker.cpp ! test/hotspot/jtreg/vmTestbase/nsk/share/locks/LockingThread.cpp ! test/hotspot/jtreg/vmTestbase/vm/runtime/defmeth/shared/redefineClasses.cpp Changeset: 6ad495a34ac8 Author: jcbeyler Date: 2018-09-04 14:17 -0700 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/6ad495a34ac8 8210192: Hsperf counter ParNew::CMS should be ParNew:CMS Summary: Rename the counter back to ParNew:CMS and added a test Reviewed-by: sjohanss, tschatzl Contributed-by: manc at google.com ! src/hotspot/share/gc/cms/cmsHeap.cpp + test/hotspot/jtreg/gc/TestPolicyNamePerfCounter.java ! test/hotspot/jtreg/gc/testlibrary/PerfCounter.java Changeset: ab722555e66d Author: ccheung Date: 2018-09-04 15:00 -0700 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/ab722555e66d 8209736: runtime/RedefineTests/ModifyAnonymous.java fails with NullPointerException when running in CDS mode Summary: add logging of class names in the allLoadedClasses array; throw RuntimeException upon encountering of a null class. Reviewed-by: jiangli ! test/hotspot/jtreg/runtime/RedefineTests/ModifyAnonymous.java Changeset: e9177e7749e7 Author: iignatyev Date: 2018-09-04 14:35 -0700 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/e9177e7749e7 8210039: move OSInfo to top level testlibrary Reviewed-by: serb, chegar, alanb, dfuchs ! test/jdk/com/oracle/security/ucrypto/TestAES.java ! test/jdk/com/sun/management/OperatingSystemMXBean/TestTotalSwap.java ! test/jdk/java/awt/Choice/ItemStateChangeTest/ItemStateChangeTest.java ! test/jdk/java/awt/Choice/PopupPosTest/PopupPosTest.html ! test/jdk/java/awt/Choice/PopupPosTest/PopupPosTest.java ! test/jdk/java/awt/Choice/ResizeAutoClosesChoice/ResizeAutoClosesChoice.java ! test/jdk/java/awt/Cursor/MultiResolutionCursorTest/MultiResolutionCursorTest.java ! test/jdk/java/awt/Desktop/8064934/bug8064934.java ! test/jdk/java/awt/FileDialog/8003399/bug8003399.java ! test/jdk/java/awt/FileDialog/8017487/bug8017487.java ! test/jdk/java/awt/FileDialog/FileDialogForDirectories/FileDialogForDirectories.html ! test/jdk/java/awt/FileDialog/FileDialogForDirectories/FileDialogForDirectories.java ! test/jdk/java/awt/FileDialog/FileDialogForPackages/FileDialogForPackages.html ! test/jdk/java/awt/FileDialog/FileDialogForPackages/FileDialogForPackages.java ! test/jdk/java/awt/Focus/MouseClickRequestFocusRaceTest/MouseClickRequestFocusRaceTest.java ! test/jdk/java/awt/Frame/MaximizedByPlatform/MaximizedByPlatform.java ! test/jdk/java/awt/KeyboardFocusmanager/ConsumeNextMnemonicKeyTypedTest/ConsumeNextMnemonicKeyTypedTest.html ! test/jdk/java/awt/KeyboardFocusmanager/ConsumeNextMnemonicKeyTypedTest/ConsumeNextMnemonicKeyTypedTest.java ! test/jdk/java/awt/KeyboardFocusmanager/TypeAhead/SubMenuShowTest/SubMenuShowTest.html ! test/jdk/java/awt/KeyboardFocusmanager/TypeAhead/SubMenuShowTest/SubMenuShowTest.java ! test/jdk/java/awt/List/FirstItemRemoveTest/FirstItemRemoveTest.html ! test/jdk/java/awt/List/FirstItemRemoveTest/FirstItemRemoveTest.java ! test/jdk/java/awt/List/KeyEventsTest/KeyEventsTest.html ! test/jdk/java/awt/List/KeyEventsTest/KeyEventsTest.java ! test/jdk/java/awt/Menu/OpensWithNoGrab/OpensWithNoGrab.java ! test/jdk/java/awt/MenuBar/8007006/bug8007006.java ! test/jdk/java/awt/MenuBar/MenuBarSetFont/MenuBarSetFont.java ! test/jdk/java/awt/Mouse/MouseModifiersUnitTest/MouseModifiersUnitTest_Extra.java ! test/jdk/java/awt/Multiscreen/MultiScreenInsetsTest/MultiScreenInsetsTest.java ! test/jdk/java/awt/Robot/RobotWheelTest/RobotWheelTest.java ! test/jdk/java/awt/TextArea/ScrollbarIntersectionTest/ScrollbarIntersectionTest.java ! test/jdk/java/awt/Toolkit/ToolkitPropertyTest/bug7129133.java ! test/jdk/java/awt/TrayIcon/8072769/bug8072769.java ! test/jdk/java/awt/TrayIcon/DblClickActionEventTest/DblClickActionEventTest.html ! test/jdk/java/awt/TrayIcon/DblClickActionEventTest/DblClickActionEventTest.java ! test/jdk/java/awt/TrayIcon/DisposeInActionEventTest/DisposeInActionEventTest.html ! test/jdk/java/awt/TrayIcon/DisposeInActionEventTest/DisposeInActionEventTest.java ! test/jdk/java/awt/datatransfer/HTMLDataFlavors/HTMLDataFlavorTest.java ! test/jdk/java/awt/datatransfer/MissedHtmlAndRtfBug/MissedHtmlAndRtfBug.html ! test/jdk/java/awt/datatransfer/MissedHtmlAndRtfBug/MissedHtmlAndRtfBug.java ! test/jdk/java/awt/dnd/ImageTransferTest/ImageTransferTest.java ! test/jdk/java/awt/event/KeyEvent/8020209/bug8020209.java ! test/jdk/java/awt/event/KeyEvent/DeadKey/DeadKeyMacOSXInputText.java ! test/jdk/java/awt/event/KeyEvent/DeadKey/deadKeyMacOSX.java ! test/jdk/java/awt/event/KeyEvent/SwallowKeyEvents/SwallowKeyEvents.java ! test/jdk/java/awt/image/MultiResolutionImage/NSImageToMultiResolutionImageTest.java ! test/jdk/java/awt/image/multiresolution/MultiDisplayTest/MultiDisplayTest.java ! test/jdk/javax/swing/JButton/4796987/bug4796987.java ! test/jdk/javax/swing/JCheckBox/4449413/bug4449413.java ! test/jdk/javax/swing/JCheckBox/8032667/bug8032667_image_diff.java ! test/jdk/javax/swing/JComboBox/4199622/bug4199622.java ! test/jdk/javax/swing/JFileChooser/4150029/bug4150029.html ! test/jdk/javax/swing/JFileChooser/4150029/bug4150029.java ! test/jdk/javax/swing/JFileChooser/4524490/bug4524490.java ! test/jdk/javax/swing/JFileChooser/6840086/bug6840086.java ! test/jdk/javax/swing/JFileChooser/8041694/bug8041694.java ! test/jdk/javax/swing/JFileChooser/8046391/bug8046391.java ! test/jdk/javax/swing/JFileChooser/8062561/bug8062561.java ! test/jdk/javax/swing/JFrame/8016356/bug8016356.java ! test/jdk/javax/swing/JFrame/NSTexturedJFrame/NSTexturedJFrame.java ! test/jdk/javax/swing/JInternalFrame/4251301/bug4251301.java ! test/jdk/javax/swing/JLabel/6596966/bug6596966.java ! test/jdk/javax/swing/JMenu/6470128/bug6470128.java ! test/jdk/javax/swing/JMenuItem/ActionListenerCalledTwice/ActionListenerCalledTwiceTest.java ! test/jdk/javax/swing/JMenuItem/ShortcutNotDiplayed/ShortcutNotDisplayedTest.java ! test/jdk/javax/swing/JOptionPane/8024926/bug8024926.java ! test/jdk/javax/swing/JPopupMenu/6827786/bug6827786.java ! test/jdk/javax/swing/JPopupMenu/7154841/bug7154841.java ! test/jdk/javax/swing/JScrollBar/bug4202954/bug4202954.java ! test/jdk/javax/swing/JScrollPane/HorizontalMouseWheelOnShiftPressed/HorizontalMouseWheelOnShiftPressed.java ! test/jdk/javax/swing/JSlider/6579827/bug6579827.java ! test/jdk/javax/swing/JTabbedPane/4624207/bug4624207.java ! test/jdk/javax/swing/JTabbedPane/6416920/bug6416920.java ! test/jdk/javax/swing/JTextArea/6940863/bug6940863.java ! test/jdk/javax/swing/UITest/UITest.java ! test/jdk/javax/swing/plaf/aqua/CustomComboBoxFocusTest.java ! test/jdk/javax/swing/plaf/basic/BasicLabelUI/bug7172652.java ! test/jdk/jdk/net/Sockets/Test.java ! test/jdk/jdk/net/Sockets/policy.fail ! test/jdk/jdk/net/Sockets/policy.success - test/jdk/lib/testlibrary/jdk/testlibrary/OSInfo.java ! test/jdk/sun/awt/dnd/8024061/bug8024061.java + test/lib/jdk/test/lib/OSVersion.java ! test/lib/jdk/test/lib/Platform.java ! test/lib/jdk/test/lib/process/ProcessTools.java Changeset: 2e4cf4ca074c Author: sherman Date: 2018-09-04 17:04 -0700 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/2e4cf4ca074c 8197398: (zipfs) Files.walkFileTree walk indefinitelly while processing JAR file with "/" as a directory inside. Reviewed-by: alanb ! src/jdk.zipfs/share/classes/jdk/nio/zipfs/ZipFileSystem.java ! test/jdk/jdk/nio/zipfs/ZFSTests.java Changeset: d7df80487e30 Author: amlu Date: 2018-09-05 12:34 +0800 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/d7df80487e30 8209832: Refactor jdk/internal/reflect/Reflection/GetCallerClassTest.sh to plain java test Reviewed-by: alanb, mchung ! test/jdk/jdk/internal/reflect/Reflection/GetCallerClassTest.java - test/jdk/jdk/internal/reflect/Reflection/GetCallerClassTest.sh + test/jdk/jdk/internal/reflect/Reflection/SetupGetCallerClass.java Changeset: 58ea9afe0eb8 Author: pmuthuswamy Date: 2018-09-05 11:52 +0530 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/58ea9afe0eb8 8209052: Low contrast in docs/api/constant-values.html Reviewed-by: jjg ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/resources/stylesheet.css Changeset: 9ce4a0d718c7 Author: glaubitz Date: 2018-09-05 11:15 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/9ce4a0d718c7 8165440: Add Zero support for x86_64-linux-gnux32 target Reviewed-by: erikj, ihse ! make/autoconf/flags.m4 ! make/autoconf/platform.m4 ! src/hotspot/os/linux/os_linux.cpp Changeset: d4099c45f148 Author: alanb Date: 2018-09-05 11:52 +0100 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/d4099c45f148 8209152: (so) ServerSocketChannel::supportedOptions includes IP_TOS Reviewed-by: chegar ! src/java.base/share/classes/sun/nio/ch/ServerSocketChannelImpl.java + test/jdk/java/nio/channels/etc/PrintSupportedOptions.java Changeset: 8267d480566f Author: eosterlund Date: 2018-09-05 10:11 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/8267d480566f 8210158: Accessorize JFR getEventWriter() intrinsics Reviewed-by: kvn, neliasso, roland, rbackman ! src/hotspot/share/c1/c1_LIRGenerator.cpp ! src/hotspot/share/opto/library_call.cpp Changeset: 0df09dadd445 Author: ihse Date: 2018-09-05 14:00 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/0df09dadd445 8182733: aarch64 build documentation misleading Reviewed-by: shade, dholmes ! doc/building.html ! doc/building.md ! doc/testing.html Changeset: c5f700de5450 Author: mbaesken Date: 2018-09-05 12:48 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/c5f700de5450 8209942: [epsilon] range function for EpsilonTLABElasticity causes compiler warning Reviewed-by: shade, simonis Contributed-by: ralf.schmelter at sap.com ! src/hotspot/share/gc/epsilon/epsilon_globals.hpp Changeset: 364863505019 Author: sherman Date: 2018-09-05 09:12 -0700 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/364863505019 8210394: (zipfs) jdk/nio/zipfs/ZFSTests.java rootdir.zip: The process cannot access the file because it is being used by another process Reviewed-by: alanb, jlaskey ! test/jdk/jdk/nio/zipfs/ZFSTests.java Changeset: 11ad7d302a94 Author: jcbeyler Date: 2018-09-05 10:17 -0700 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/11ad7d302a94 8208186: SetHeapSamplingInterval handles 1 explicitly Summary: Explicitly test for the 0 case (sample everything) Reviewed-by: amenkov, sspitsyn ! src/hotspot/share/runtime/threadHeapSampler.cpp Changeset: b7b69bc93a2d Author: amenkov Date: 2018-09-05 10:39 -0700 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/b7b69bc93a2d 8210243: [TEST] rewrite com/sun/jdi shell tests to java version - step3 Reviewed-by: jcbeyler, cjplummer, sspitsyn ! test/jdk/com/sun/jdi/BreakpointWithFullGC.java ! test/jdk/com/sun/jdi/DeoptimizeWalk.java + test/jdk/com/sun/jdi/JdbArgTest.java - test/jdk/com/sun/jdi/JdbArgTest.sh + test/jdk/com/sun/jdi/JdbLockTest.java - test/jdk/com/sun/jdi/JdbLockTest.sh + test/jdk/com/sun/jdi/JdbMissStep.java - test/jdk/com/sun/jdi/JdbMissStep.sh + test/jdk/com/sun/jdi/JdbVarargsTest.java - test/jdk/com/sun/jdi/JdbVarargsTest.sh + test/jdk/com/sun/jdi/MixedSuspendTest.java - test/jdk/com/sun/jdi/MixedSuspendTest.sh + test/jdk/com/sun/jdi/NotAField.java - test/jdk/com/sun/jdi/NotAField.sh + test/jdk/com/sun/jdi/NullLocalVariable.java - test/jdk/com/sun/jdi/NullLocalVariable.sh ! test/jdk/com/sun/jdi/lib/jdb/Jdb.java ! test/jdk/com/sun/jdi/lib/jdb/JdbCommand.java ! test/jdk/com/sun/jdi/lib/jdb/JdbTest.java Changeset: 8f594f75e054 Author: dlong Date: 2018-09-05 13:10 -0700 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/8f594f75e054 8187078: -XX:+VerifyOops finds numerous problems when running JPRT Reviewed-by: kvn ! src/hotspot/share/c1/c1_LIRGenerator.cpp ! src/hotspot/share/gc/shared/c1/barrierSetC1.cpp ! src/hotspot/share/runtime/java.cpp Changeset: a0c807a14840 Author: rkennke Date: 2018-09-11 21:40 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/a0c807a14840 Merge ! .hgtags ! make/autoconf/hotspot.m4 ! src/hotspot/cpu/aarch64/macroAssembler_aarch64.cpp ! src/hotspot/cpu/aarch64/macroAssembler_aarch64.hpp ! src/hotspot/cpu/ppc/c1_LIRAssembler_ppc.cpp ! src/hotspot/cpu/x86/c1_LIRAssembler_x86.cpp ! src/hotspot/cpu/x86/macroAssembler_x86.cpp ! src/hotspot/cpu/x86/macroAssembler_x86.hpp ! src/hotspot/cpu/x86/templateInterpreterGenerator_x86.cpp ! src/hotspot/cpu/x86/templateTable_x86.cpp ! src/hotspot/os/linux/os_linux.cpp ! src/hotspot/share/asm/assembler.cpp ! src/hotspot/share/c1/c1_LIRGenerator.cpp ! src/hotspot/share/classfile/classLoaderData.cpp ! src/hotspot/share/classfile/classLoaderData.hpp ! src/hotspot/share/gc/g1/g1CollectedHeap.hpp ! src/hotspot/share/gc/shared/barrierSet.cpp ! src/hotspot/share/gc/shared/c1/barrierSetC1.cpp ! src/hotspot/share/gc/shared/collectedHeap.cpp ! src/hotspot/share/gc/shared/collectedHeap.hpp ! src/hotspot/share/gc/shenandoah/shenandoahRootProcessor.cpp ! src/hotspot/share/opto/compile.cpp ! src/hotspot/share/opto/library_call.cpp ! src/hotspot/share/prims/whitebox.cpp ! src/hotspot/share/runtime/mutexLocker.cpp ! src/hotspot/share/runtime/safepoint.cpp ! src/hotspot/share/runtime/sharedRuntime.cpp ! src/hotspot/share/runtime/thread.cpp ! src/hotspot/share/runtime/thread.hpp - src/hotspot/share/utilities/errorReporter.cpp - src/hotspot/share/utilities/errorReporter.hpp - src/hotspot/share/utilities/globalDefinitions_sparcWorks.hpp ! test/hotspot/jtreg/ProblemList.txt ! test/hotspot/jtreg/vmTestbase/gc/g1/unloading/libdefine.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jdi/ThreadReference/forceEarlyReturn/forceEarlyReturn004/libforceEarlyReturn004a.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jdi/ThreadReference/forceEarlyReturn/forceEarlyReturn005/libforceEarlyReturn005a.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jdwp/ThreadReference/ForceEarlyReturn/forceEarlyReturn002/libforceEarlyReturn002a.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetStackTrace/getstacktr001/getstacktr001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetStackTrace/getstacktr003/getstacktr003.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetStackTrace/getstacktr004/getstacktr004.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetStackTrace/getstacktr005/getstacktr005.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetStackTrace/getstacktr006/getstacktr006.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetStackTrace/getstacktr007/getstacktr007.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetStackTrace/getstacktr008/getstacktr008.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/sampling/SP02/sp02t001/sp02t001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/sampling/SP02/sp02t002/sp02t002.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/sampling/SP06/sp06t001/sp06t001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/sampling/SP06/sp06t002/sp06t002.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/unit/FollowReferences/followref001/followref001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/unit/FollowReferences/followref002/followref002.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/unit/FollowReferences/followref003/followref003.cpp ! test/hotspot/jtreg/vmTestbase/nsk/share/jdi/MonitorEnterExecutor.cpp ! test/hotspot/jtreg/vmTestbase/nsk/share/jni/JNIreferences.cpp ! test/hotspot/jtreg/vmTestbase/nsk/share/jpda/libNativeMethodsTestThread.cpp ! test/hotspot/jtreg/vmTestbase/nsk/share/jvmti/jvmti_FollowRefObjects.cpp ! test/hotspot/jtreg/vmTestbase/nsk/share/locks/JNIMonitorLocker.cpp ! test/hotspot/jtreg/vmTestbase/nsk/share/locks/LockingThread.cpp ! test/hotspot/jtreg/vmTestbase/vm/runtime/defmeth/shared/redefineClasses.cpp ! test/jdk/com/sun/jdi/ArrayLengthDumpTest.java ! test/jdk/com/sun/jdi/BreakpointWithFullGC.java - test/jdk/com/sun/jdi/CatchAllTest.sh - test/jdk/com/sun/jdi/CatchCaughtTest.sh - test/jdk/com/sun/jdi/CommandCommentDelimiter.sh - test/jdk/com/sun/jdi/DeoptimizeWalk.sh - test/jdk/com/sun/jdi/EvalArgs.sh - test/jdk/com/sun/jdi/EvalArraysAsList.sh - test/jdk/com/sun/jdi/EvalInterfaceStatic.sh - test/jdk/com/sun/jdi/GetLocalVariables3Test.sh - test/jdk/com/sun/jdi/GetLocalVariables4Test.sh - test/jdk/com/sun/jdi/JdbArgTest.sh ! test/jdk/com/sun/jdi/JdbExprTest.java - test/jdk/com/sun/jdi/JdbLockTest.sh ! test/jdk/com/sun/jdi/JdbMethodExitTest.java - test/jdk/com/sun/jdi/JdbMissStep.sh - test/jdk/com/sun/jdi/JdbVarargsTest.sh - test/jdk/com/sun/jdi/MixedSuspendTest.sh - test/jdk/com/sun/jdi/NotAField.sh - test/jdk/com/sun/jdi/NullLocalVariable.sh - test/jdk/jdk/internal/reflect/Reflection/GetCallerClassTest.sh - test/jdk/lib/testlibrary/jdk/testlibrary/OSInfo.java ! test/lib/sun/hotspot/gc/GC.java Changeset: 424866bd51c0 Author: rkennke Date: 2018-09-11 22:07 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/424866bd51c0 Added tag shenandoah-jdk-12+10 for changeset a0c807a14840 ! .hgtags From shade at redhat.com Tue Sep 11 20:12:14 2018 From: shade at redhat.com (Aleksey Shipilev) Date: Tue, 11 Sep 2018 22:12:14 +0200 Subject: Potential ShTraversalGC::weak_refs_work_doit bug In-Reply-To: References: <67abf23c-b502-2e58-5d58-5569cb18af9f@redhat.com> Message-ID: <2cc75304-8941-015b-1bbe-7e59547e846b@redhat.com> On 09/11/2018 09:08 AM, Roman Kennke wrote: > Aleksey: can you look at streamlining this? Also, can you make it use > the MT-version of WeakProcessor? Yes, I'll take care of it. I have a patch that almost does it, but it yields peculiar failures in tier3, that I need to resolve. -Aleksey From rkennke at redhat.com Tue Sep 11 20:13:47 2018 From: rkennke at redhat.com (Roman Kennke) Date: Tue, 11 Sep 2018 22:13:47 +0200 Subject: RFR: Purge some G1-related cruft in C2 Message-ID: <2302e13f-1488-b69d-86be-aaa4eb792f18@redhat.com> This gets rid of Node::is_g1_marking_load() and Node::is_g1_marking_if() .. some fairly obvious leftovers from GC-interface-ification, and fixed related call-sites. This is closer to upstream and arguably/hopefully more correct. http://cr.openjdk.java.net/~rkennke/purge-c2-cruft/webrev.00/ Testing: tier3_gc_shenandoah Ok? Roman From shade at redhat.com Tue Sep 11 20:25:44 2018 From: shade at redhat.com (Aleksey Shipilev) Date: Tue, 11 Sep 2018 22:25:44 +0200 Subject: RFR: Purge some G1-related cruft in C2 In-Reply-To: <2302e13f-1488-b69d-86be-aaa4eb792f18@redhat.com> References: <2302e13f-1488-b69d-86be-aaa4eb792f18@redhat.com> Message-ID: <915372d9-45f7-ef73-ff7a-ef4cb3bae3e3@redhat.com> On 09/11/2018 10:13 PM, Roman Kennke wrote: > This gets rid of Node::is_g1_marking_load() and Node::is_g1_marking_if() > .. some fairly obvious leftovers from GC-interface-ification, and fixed > related call-sites. This is closer to upstream and arguably/hopefully > more correct. > > http://cr.openjdk.java.net/~rkennke/purge-c2-cruft/webrev.00/ *) The change to is_shenandoah_marking_load in ShenandoahWriteBarrierNode::fix_ctrl looks like a bugfix, please split it out in a separate changeset, so we are sure it is backported even if other cleanups are not? Otherwise looks good. -Aleksey From rkennke at redhat.com Tue Sep 11 21:09:33 2018 From: rkennke at redhat.com (Roman Kennke) Date: Tue, 11 Sep 2018 23:09:33 +0200 Subject: RFR: Fix call to is_g1_marking_load() with is_shenandoah_state_load() in ShenandoahSupport Message-ID: The check for is_g1_marking_load() in ShenandoahSupport is bogus (and there is no overload left that actually returns true!), and should be is_shenandoah_state_load(). Testing: tier3_gc_shenandoah # HG changeset patch # User rkennke # Date 1536700094 -7200 # Tue Sep 11 23:08:14 2018 +0200 # Node ID aad4dc29c7caa4c87172ace60497189857225a0d # Parent 424866bd51c0d1e99ab867c50ec14e1507bda8e2 Fix call to is_g1_marking_load() with is_shenandoah_state_load() in ShenandoahSupport diff --git a/src/hotspot/share/gc/shenandoah/c2/shenandoahSupport.cpp b/src/hotspot/share/gc/shenandoah/c2/shenandoahSupport.cpp --- a/src/hotspot/share/gc/shenandoah/c2/shenandoahSupport.cpp +++ b/src/hotspot/share/gc/shenandoah/c2/shenandoahSupport.cpp @@ -2669,7 +2669,7 @@ Node* c = old_c; if (c != ctrl || is_dominator_same_ctrl(old_c, barrier, u, phase) || - u->is_g1_marking_load()) { + u->is_shenandoah_state_load()) { phase->igvn().rehash_node_delayed(u); int nb = u->replace_edge(ctrl, region); if (u->is_CFG()) { From rkennke at redhat.com Tue Sep 11 21:11:13 2018 From: rkennke at redhat.com (Roman Kennke) Date: Tue, 11 Sep 2018 23:11:13 +0200 Subject: RFR: Purge some G1-related cruft in C2 In-Reply-To: <915372d9-45f7-ef73-ff7a-ef4cb3bae3e3@redhat.com> References: <2302e13f-1488-b69d-86be-aaa4eb792f18@redhat.com> <915372d9-45f7-ef73-ff7a-ef4cb3bae3e3@redhat.com> Message-ID: Am 11.09.2018 um 22:25 schrieb Aleksey Shipilev: > On 09/11/2018 10:13 PM, Roman Kennke wrote: >> This gets rid of Node::is_g1_marking_load() and Node::is_g1_marking_if() >> .. some fairly obvious leftovers from GC-interface-ification, and fixed >> related call-sites. This is closer to upstream and arguably/hopefully >> more correct. >> >> http://cr.openjdk.java.net/~rkennke/purge-c2-cruft/webrev.00/ > > *) The change to is_shenandoah_marking_load in ShenandoahWriteBarrierNode::fix_ctrl looks like a > bugfix, please split it out in a separate changeset, so we are sure it is backported even if other > cleanups are not? > > Otherwise looks good. Right. RFR'ed in another thread. http://cr.openjdk.java.net/~rkennke/purge-c2-cruft/webrev.01/ Ok? Roman From shade at redhat.com Tue Sep 11 21:11:23 2018 From: shade at redhat.com (Aleksey Shipilev) Date: Tue, 11 Sep 2018 23:11:23 +0200 Subject: RFR: Fix call to is_g1_marking_load() with is_shenandoah_state_load() in ShenandoahSupport In-Reply-To: References: Message-ID: On 09/11/2018 11:09 PM, Roman Kennke wrote: > The check for is_g1_marking_load() in ShenandoahSupport is bogus (and > there is no overload left that actually returns true!), and should be > is_shenandoah_state_load(). > > Testing: tier3_gc_shenandoah > > # HG changeset patch > # User rkennke > # Date 1536700094 -7200 > # Tue Sep 11 23:08:14 2018 +0200 > # Node ID aad4dc29c7caa4c87172ace60497189857225a0d > # Parent 424866bd51c0d1e99ab867c50ec14e1507bda8e2 > Fix call to is_g1_marking_load() with is_shenandoah_state_load() in > ShenandoahSupport > > diff --git a/src/hotspot/share/gc/shenandoah/c2/shenandoahSupport.cpp > b/src/hotspot/share/gc/shenandoah/c2/shenandoahSupport.cpp > --- a/src/hotspot/share/gc/shenandoah/c2/shenandoahSupport.cpp > +++ b/src/hotspot/share/gc/shenandoah/c2/shenandoahSupport.cpp > @@ -2669,7 +2669,7 @@ > Node* c = old_c; > if (c != ctrl || > is_dominator_same_ctrl(old_c, barrier, u, phase) || > - u->is_g1_marking_load()) { > + u->is_shenandoah_state_load()) { > phase->igvn().rehash_node_delayed(u); > int nb = u->replace_edge(ctrl, region); > if (u->is_CFG()) { OK! -Aleksey From shade at redhat.com Tue Sep 11 21:12:01 2018 From: shade at redhat.com (Aleksey Shipilev) Date: Tue, 11 Sep 2018 23:12:01 +0200 Subject: RFR: Purge some G1-related cruft in C2 In-Reply-To: References: <2302e13f-1488-b69d-86be-aaa4eb792f18@redhat.com> <915372d9-45f7-ef73-ff7a-ef4cb3bae3e3@redhat.com> Message-ID: <0e59d5e5-1185-0283-f14c-1894b274239e@redhat.com> On 09/11/2018 11:11 PM, Roman Kennke wrote: > Am 11.09.2018 um 22:25 schrieb Aleksey Shipilev: >> On 09/11/2018 10:13 PM, Roman Kennke wrote: >>> This gets rid of Node::is_g1_marking_load() and Node::is_g1_marking_if() >>> .. some fairly obvious leftovers from GC-interface-ification, and fixed >>> related call-sites. This is closer to upstream and arguably/hopefully >>> more correct. >>> >>> http://cr.openjdk.java.net/~rkennke/purge-c2-cruft/webrev.00/ >> >> *) The change to is_shenandoah_marking_load in ShenandoahWriteBarrierNode::fix_ctrl looks like a >> bugfix, please split it out in a separate changeset, so we are sure it is backported even if other >> cleanups are not? >> >> Otherwise looks good. > > Right. RFR'ed in another thread. > > http://cr.openjdk.java.net/~rkennke/purge-c2-cruft/webrev.01/ Looks good. -Aleksey From shade at redhat.com Tue Sep 11 21:13:33 2018 From: shade at redhat.com (Aleksey Shipilev) Date: Tue, 11 Sep 2018 23:13:33 +0200 Subject: RFR: Remove racy assert in ShenandoahResetNextMarkBitmapTraversalTask In-Reply-To: References: <5cb891cd-3275-78d4-5d86-d270acde21bc@redhat.com> Message-ID: On 09/11/2018 06:04 PM, Roman Kennke wrote: > Right. The following makes both the order in cleanup and the > reset-next-markbitmap loop consistent with adaptive: > > Incremental: > http://cr.openjdk.java.net/~rkennke/fixtamsassert/webrev.01.diff/ > Full: > http://cr.openjdk.java.net/~rkennke/fixtamsassert/webrev.01/ Looks good. Seems to me ShenandoahResetNextBitmapTraversalTask should never experience trashed regions now. Which means we can simplify it like below, and this will also solidify the expectation that trashed regions recycling should happen before resetting the bitmaps: http://cr.openjdk.java.net/~shade/shenandoah/traversal-resetbitmaps-1.patch This passes tier3_gc_shenandoah on x86_64. -Aleksey From roman at kennke.org Tue Sep 11 21:13:41 2018 From: roman at kennke.org (roman at kennke.org) Date: Tue, 11 Sep 2018 21:13:41 +0000 Subject: hg: shenandoah/jdk: 2 new changesets Message-ID: <201809112113.w8BLDfH8004517@aojmv0008.oracle.com> Changeset: aad4dc29c7ca Author: rkennke Date: 2018-09-11 23:08 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/aad4dc29c7ca Fix call to is_g1_marking_load() with is_shenandoah_state_load() in ShenandoahSupport ! src/hotspot/share/gc/shenandoah/c2/shenandoahSupport.cpp Changeset: f350b5c3b22c Author: rkennke Date: 2018-09-11 23:09 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/f350b5c3b22c Purge some G1-related cruft in C2 ! src/hotspot/share/opto/cfgnode.hpp ! src/hotspot/share/opto/compile.cpp ! src/hotspot/share/opto/ifnode.cpp ! src/hotspot/share/opto/node.hpp From rkennke at redhat.com Tue Sep 11 21:19:58 2018 From: rkennke at redhat.com (Roman Kennke) Date: Tue, 11 Sep 2018 23:19:58 +0200 Subject: RFR: Move shenandoah_eliminate_wb_pre to ShenandoahBarrierSetC2 Message-ID: <87e124bc-beac-927e-f6f2-41fe9e0e8084@redhat.com> Compile::shenandoah_eliminate_wb_pre() can be moved into proper GC interface in ShenandoahBarrierSetC2. It appears that this does an extra round of eliminate_gc_barrier() in PhaseMacroExpand::process_users_of_allocation(). It doesn't seem to hurt. Other than that, the code should be equivalent. http://cr.openjdk.java.net/~rkennke/c2-move-eliminate/webrev.00/ Testing: tier3_gc_shenandoah Roman From roman at kennke.org Tue Sep 11 21:21:39 2018 From: roman at kennke.org (Roman Kennke) Date: Tue, 11 Sep 2018 23:21:39 +0200 Subject: RFR: Remove racy assert in ShenandoahResetNextMarkBitmapTraversalTask In-Reply-To: References: <5cb891cd-3275-78d4-5d86-d270acde21bc@redhat.com> Message-ID: <47956a16-3512-d227-179e-5ba4419d6f33@kennke.org> > On 09/11/2018 06:04 PM, Roman Kennke wrote: >> Right. The following makes both the order in cleanup and the >> reset-next-markbitmap loop consistent with adaptive: >> >> Incremental: >> http://cr.openjdk.java.net/~rkennke/fixtamsassert/webrev.01.diff/ >> Full: >> http://cr.openjdk.java.net/~rkennke/fixtamsassert/webrev.01/ > > Looks good. > > Seems to me ShenandoahResetNextBitmapTraversalTask should never experience trashed regions now. > Which means we can simplify it like below, and this will also solidify the expectation that trashed > regions recycling should happen before resetting the bitmaps: > http://cr.openjdk.java.net/~shade/shenandoah/traversal-resetbitmaps-1.patch > > This passes tier3_gc_shenandoah on x86_64. > > -Aleksey Good point! The equivalent code in ShResetNextBitmapTask checks for is_bitmap_slice_committed(). Can this become a problem? Or is this something to be cleaned up there? I'll run with your patch on aarch64 and if successful, push it. Roman From shade at redhat.com Tue Sep 11 21:25:16 2018 From: shade at redhat.com (Aleksey Shipilev) Date: Tue, 11 Sep 2018 23:25:16 +0200 Subject: RFR: Remove racy assert in ShenandoahResetNextMarkBitmapTraversalTask In-Reply-To: <47956a16-3512-d227-179e-5ba4419d6f33@kennke.org> References: <5cb891cd-3275-78d4-5d86-d270acde21bc@redhat.com> <47956a16-3512-d227-179e-5ba4419d6f33@kennke.org> Message-ID: On 09/11/2018 11:21 PM, Roman Kennke wrote: >> Seems to me ShenandoahResetNextBitmapTraversalTask should never experience trashed regions now. >> Which means we can simplify it like below, and this will also solidify the expectation that trashed >> regions recycling should happen before resetting the bitmaps: >> http://cr.openjdk.java.net/~shade/shenandoah/traversal-resetbitmaps-1.patch >> >> This passes tier3_gc_shenandoah on x86_64. >> >> -Aleksey > > Good point! > > The equivalent code in ShResetNextBitmapTask checks for > is_bitmap_slice_committed(). Can this become a problem? Or is this > something to be cleaned up there? I wondered the same, but I think it is fine, because traversal bitmap reset variant only walks traversal set, which is bound to be committed at that point. (I.e. traversal set never includes uncommitted regions to begin with). Thanks, -Aleksey From shade at redhat.com Tue Sep 11 21:25:48 2018 From: shade at redhat.com (Aleksey Shipilev) Date: Tue, 11 Sep 2018 23:25:48 +0200 Subject: RFR: Move shenandoah_eliminate_wb_pre to ShenandoahBarrierSetC2 In-Reply-To: <87e124bc-beac-927e-f6f2-41fe9e0e8084@redhat.com> References: <87e124bc-beac-927e-f6f2-41fe9e0e8084@redhat.com> Message-ID: On 09/11/2018 11:19 PM, Roman Kennke wrote: > Compile::shenandoah_eliminate_wb_pre() can be moved into proper GC > interface in ShenandoahBarrierSetC2. > > It appears that this does an extra round of eliminate_gc_barrier() in > PhaseMacroExpand::process_users_of_allocation(). It doesn't seem to > hurt. Other than that, the code should be equivalent. > > http://cr.openjdk.java.net/~rkennke/c2-move-eliminate/webrev.00/ Seems fine to me. -Aleksey From roman at kennke.org Tue Sep 11 21:28:12 2018 From: roman at kennke.org (roman at kennke.org) Date: Tue, 11 Sep 2018 21:28:12 +0000 Subject: hg: shenandoah/jdk: Move shenandoah_eliminate_wb_pre to ShenandoahBarrierSetC2 Message-ID: <201809112128.w8BLSCRL008615@aojmv0008.oracle.com> Changeset: c592128e45b6 Author: rkennke Date: 2018-09-11 23:15 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/c592128e45b6 Move shenandoah_eliminate_wb_pre to ShenandoahBarrierSetC2 ! src/hotspot/share/gc/shenandoah/c2/shenandoahBarrierSetC2.cpp ! src/hotspot/share/gc/shenandoah/c2/shenandoahBarrierSetC2.hpp ! src/hotspot/share/opto/compile.cpp ! src/hotspot/share/opto/compile.hpp ! src/hotspot/share/opto/macro.cpp From roman at kennke.org Tue Sep 11 21:46:29 2018 From: roman at kennke.org (roman at kennke.org) Date: Tue, 11 Sep 2018 21:46:29 +0000 Subject: hg: shenandoah/jdk: Remove racy assert in ShenandoahResetNextMarkBitMapTraversalTask Message-ID: <201809112146.w8BLkTjn013531@aojmv0008.oracle.com> Changeset: 1d09a30c997b Author: rkennke Date: 2018-09-11 17:46 -0400 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/1d09a30c997b Remove racy assert in ShenandoahResetNextMarkBitMapTraversalTask ! src/hotspot/share/gc/shenandoah/shenandoahHeap.cpp From shade at redhat.com Wed Sep 12 07:27:23 2018 From: shade at redhat.com (Aleksey Shipilev) Date: Wed, 12 Sep 2018 09:27:23 +0200 Subject: RFR [11]: Revert SBSA::resolve change Message-ID: sh/jdk11 build fails in aarch64: jdk11/build/src/hotspot/cpu/aarch64/gc/shenandoah/shenandoahBarrierSetAssembler_aarch64.cpp:433:33: error: ?ACCESS_WRITE? was not declared in this scope bool is_write = (decorators & ACCESS_WRITE) != 0; And that is because I backported one fix too many: http://hg.openjdk.java.net/shenandoah/jdk11/rev/e9f2ac39a5e3 This reverts it: diff -r 7f19158276ab src/hotspot/cpu/aarch64/gc/shenandoah/shenandoahBarrierSetAssembler_aarch64.cpp --- a/src/hotspot/cpu/aarch64/gc/shenandoah/shenandoahBarrierSetAssembler_aarch64.cpp Mon Sep 10 17:56:38 2018 +0200 +++ b/src/hotspot/cpu/aarch64/gc/shenandoah/shenandoahBarrierSetAssembler_aarch64.cpp Wed Sep 12 09:25:47 2018 +0200 @@ -430,23 +430,2 @@ -void ShenandoahBarrierSetAssembler::resolve(MacroAssembler* masm, DecoratorSet decorators, Register obj) { - bool oop_not_null = (decorators & IS_NOT_NULL) != 0; - bool is_write = (decorators & ACCESS_WRITE) != 0; - if (is_write) { - if (oop_not_null) { - write_barrier(masm, obj); - } else { - Label done; - __ cbz(obj, done); - write_barrier(masm, obj); - __ bind(done); - } - } else { - if (oop_not_null) { - read_barrier_not_null(masm, obj); - } else { - read_barrier(masm, obj); - } - } -} - void ShenandoahBarrierSetAssembler::cmpxchg_oop(MacroAssembler* masm, Register addr, Register expected, Register new_val, diff -r 7f19158276ab src/hotspot/cpu/aarch64/gc/shenandoah/shenandoahBarrierSetAssembler_aarch64.hpp --- a/src/hotspot/cpu/aarch64/gc/shenandoah/shenandoahBarrierSetAssembler_aarch64.hpp Mon Sep 10 17:56:38 2018 +0200 +++ b/src/hotspot/cpu/aarch64/gc/shenandoah/shenandoahBarrierSetAssembler_aarch64.hpp Wed Sep 12 09:25:47 2018 +0200 @@ -86,3 +86,2 @@ virtual void obj_equals(MacroAssembler* masm, Register src1, Register src2); - virtual void resolve(MacroAssembler* masm, DecoratorSet decorators, Register obj); virtual void tlab_allocate(MacroAssembler* masm, Register obj, Thanks, -Aleksey From rkennke at redhat.com Wed Sep 12 07:56:10 2018 From: rkennke at redhat.com (Roman Kennke) Date: Wed, 12 Sep 2018 09:56:10 +0200 Subject: RFR [11]: Revert SBSA::resolve change In-Reply-To: References: Message-ID: <15da1328-066c-0695-d759-0191aaf85ae0@redhat.com> Ok > sh/jdk11 build fails in aarch64: > > jdk11/build/src/hotspot/cpu/aarch64/gc/shenandoah/shenandoahBarrierSetAssembler_aarch64.cpp:433:33: > error: ?ACCESS_WRITE? was not declared in this scope > bool is_write = (decorators & ACCESS_WRITE) != 0; > > And that is because I backported one fix too many: > http://hg.openjdk.java.net/shenandoah/jdk11/rev/e9f2ac39a5e3 > > This reverts it: > > diff -r 7f19158276ab src/hotspot/cpu/aarch64/gc/shenandoah/shenandoahBarrierSetAssembler_aarch64.cpp > --- a/src/hotspot/cpu/aarch64/gc/shenandoah/shenandoahBarrierSetAssembler_aarch64.cpp Mon Sep 10 > 17:56:38 2018 +0200 > +++ b/src/hotspot/cpu/aarch64/gc/shenandoah/shenandoahBarrierSetAssembler_aarch64.cpp Wed Sep 12 > 09:25:47 2018 +0200 > @@ -430,23 +430,2 @@ > > -void ShenandoahBarrierSetAssembler::resolve(MacroAssembler* masm, DecoratorSet decorators, Register > obj) { > - bool oop_not_null = (decorators & IS_NOT_NULL) != 0; > - bool is_write = (decorators & ACCESS_WRITE) != 0; > - if (is_write) { > - if (oop_not_null) { > - write_barrier(masm, obj); > - } else { > - Label done; > - __ cbz(obj, done); > - write_barrier(masm, obj); > - __ bind(done); > - } > - } else { > - if (oop_not_null) { > - read_barrier_not_null(masm, obj); > - } else { > - read_barrier(masm, obj); > - } > - } > -} > - > void ShenandoahBarrierSetAssembler::cmpxchg_oop(MacroAssembler* masm, Register addr, Register > expected, Register new_val, > diff -r 7f19158276ab src/hotspot/cpu/aarch64/gc/shenandoah/shenandoahBarrierSetAssembler_aarch64.hpp > --- a/src/hotspot/cpu/aarch64/gc/shenandoah/shenandoahBarrierSetAssembler_aarch64.hpp Mon Sep 10 > 17:56:38 2018 +0200 > +++ b/src/hotspot/cpu/aarch64/gc/shenandoah/shenandoahBarrierSetAssembler_aarch64.hpp Wed Sep 12 > 09:25:47 2018 +0200 > @@ -86,3 +86,2 @@ > virtual void obj_equals(MacroAssembler* masm, Register src1, Register src2); > - virtual void resolve(MacroAssembler* masm, DecoratorSet decorators, Register obj); > virtual void tlab_allocate(MacroAssembler* masm, Register obj, > > > Thanks, > -Aleksey > From shade at redhat.com Wed Sep 12 07:59:28 2018 From: shade at redhat.com (shade at redhat.com) Date: Wed, 12 Sep 2018 07:59:28 +0000 Subject: hg: shenandoah/jdk11: Revert SBSA::resolve addition Message-ID: <201809120759.w8C7xSSg025037@aojmv0008.oracle.com> Changeset: 3ced0b10866e Author: shade Date: 2018-09-12 09:22 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk11/rev/3ced0b10866e Revert SBSA::resolve addition ! src/hotspot/cpu/aarch64/gc/shenandoah/shenandoahBarrierSetAssembler_aarch64.cpp ! src/hotspot/cpu/aarch64/gc/shenandoah/shenandoahBarrierSetAssembler_aarch64.hpp From rwestrel at redhat.com Wed Sep 12 08:22:03 2018 From: rwestrel at redhat.com (Roland Westrelin) Date: Wed, 12 Sep 2018 10:22:03 +0200 Subject: RFR: Simpler obj equals barrier for C2 In-Reply-To: <25b5197c-e0f7-d5c9-7421-b369247eddc6@redhat.com> References: <13547f74-9606-dd3f-3cae-f1d497f87a42@redhat.com> <4bb5169f-efe0-b8e0-e442-f369c578944e@redhat.com> <57cf8307-3f54-ea56-ac08-4e52b40d2762@redhat.com> <25b5197c-e0f7-d5c9-7421-b369247eddc6@redhat.com> Message-ID: > http://cr.openjdk.java.net/~rkennke/c2-obj-eq-barrier/webrev.02/ LibraryCallKit::inline_native_subtype_check() needs the mem phi that you removed. Roland. From rwestrel at redhat.com Wed Sep 12 08:24:49 2018 From: rwestrel at redhat.com (Roland Westrelin) Date: Wed, 12 Sep 2018 10:24:49 +0200 Subject: RFR: Simpler obj equals barrier for C2 In-Reply-To: References: <13547f74-9606-dd3f-3cae-f1d497f87a42@redhat.com> <4bb5169f-efe0-b8e0-e442-f369c578944e@redhat.com> <57cf8307-3f54-ea56-ac08-4e52b40d2762@redhat.com> Message-ID: > The next best thing to try is to do resolve_for_obj_equals(a, b) > approach, right? Or is there a way to get this simpler/better(IMO) API > to work without too much messing about? One case where using the simpler API is complicated is with some intrinsics that have predicates. The code that emits the predicates only return some control but it would now need to return control + new memory state and merge the new memory state. So several methods in shared code would have to be modified. Roland. From rkennke at redhat.com Wed Sep 12 08:41:00 2018 From: rkennke at redhat.com (Roman Kennke) Date: Wed, 12 Sep 2018 10:41:00 +0200 Subject: RFR: Simpler obj equals barrier for C2 In-Reply-To: References: <13547f74-9606-dd3f-3cae-f1d497f87a42@redhat.com> <4bb5169f-efe0-b8e0-e442-f369c578944e@redhat.com> <57cf8307-3f54-ea56-ac08-4e52b40d2762@redhat.com> <25b5197c-e0f7-d5c9-7421-b369247eddc6@redhat.com> Message-ID: <59e1be90-b03b-63fb-28e5-f29cc71c150a@redhat.com> Am 12.09.2018 um 10:22 schrieb Roland Westrelin: > >> http://cr.openjdk.java.net/~rkennke/c2-obj-eq-barrier/webrev.02/ > > LibraryCallKit::inline_native_subtype_check() needs the mem phi that you > removed. > > Roland. > Would it also require the memphi if we pulled up the resolve_for_obj_equals() to right after we got the args? E.g. something like: args[0] = argument(0); args[1] = argument(1); access_resolve_for_obj_equals(args[0], args[1]); ? Roman From rwestrel at redhat.com Wed Sep 12 09:05:25 2018 From: rwestrel at redhat.com (Roland Westrelin) Date: Wed, 12 Sep 2018 11:05:25 +0200 Subject: RFR: Simpler obj equals barrier for C2 In-Reply-To: <59e1be90-b03b-63fb-28e5-f29cc71c150a@redhat.com> References: <13547f74-9606-dd3f-3cae-f1d497f87a42@redhat.com> <4bb5169f-efe0-b8e0-e442-f369c578944e@redhat.com> <57cf8307-3f54-ea56-ac08-4e52b40d2762@redhat.com> <25b5197c-e0f7-d5c9-7421-b369247eddc6@redhat.com> <59e1be90-b03b-63fb-28e5-f29cc71c150a@redhat.com> Message-ID: > Would it also require the memphi if we pulled up the > resolve_for_obj_equals() to right after we got the args? E.g. something > like: > > args[0] = argument(0); > args[1] = argument(1); > access_resolve_for_obj_equals(args[0], args[1]); I took a closer look and I was wrong. I don't see a need for the mem phi. There would be a need for it if the barriers were right before the CmpP and that's what the mem phi code that you removed seems to assume. So your webrev is good. Roland. From roman at kennke.org Wed Sep 12 09:23:11 2018 From: roman at kennke.org (roman at kennke.org) Date: Wed, 12 Sep 2018 09:23:11 +0000 Subject: hg: shenandoah/jdk: Simpler obj equals barrier for C2 Message-ID: <201809120923.w8C9NBW1020717@aojmv0008.oracle.com> Changeset: 020632e98637 Author: rkennke Date: 2018-09-11 19:49 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/020632e98637 Simpler obj equals barrier for C2 ! src/hotspot/share/gc/shared/c2/barrierSetC2.cpp ! src/hotspot/share/gc/shared/c2/barrierSetC2.hpp ! src/hotspot/share/gc/shenandoah/c2/shenandoahBarrierSetC2.cpp ! src/hotspot/share/gc/shenandoah/c2/shenandoahBarrierSetC2.hpp ! src/hotspot/share/gc/shenandoah/shenandoah_globals.hpp ! src/hotspot/share/opto/graphKit.cpp ! src/hotspot/share/opto/graphKit.hpp ! src/hotspot/share/opto/library_call.cpp ! src/hotspot/share/opto/parse2.cpp From rwestrel at redhat.com Wed Sep 12 10:26:23 2018 From: rwestrel at redhat.com (Roland Westrelin) Date: Wed, 12 Sep 2018 12:26:23 +0200 Subject: RFR: rework CAS support Message-ID: http://cr.openjdk.java.net/~roland/shenandoah/cas-gcapi/webrev.00/ With this change, CAS is implemented with its own set of C2 nodes and its own c1 LIR_Op and creation of the nodes/LIR_Op is done behind the GC api. Roland. From rkennke at redhat.com Wed Sep 12 10:33:10 2018 From: rkennke at redhat.com (Roman Kennke) Date: Wed, 12 Sep 2018 12:33:10 +0200 Subject: RFR: rework CAS support In-Reply-To: References: Message-ID: > > http://cr.openjdk.java.net/~roland/shenandoah/cas-gcapi/webrev.00/ > > With this change, CAS is implemented with its own set of C2 nodes and > its own c1 LIR_Op and creation of the nodes/LIR_Op is done behind the GC > api. > > Roland. > Excellent! This should reduce our upstream diff considerably. And the new stuff to support new C2 nodes should be ok too. Patch looks good, please push if it passes tier3_gc_shenandoah. Thanks, Roman From rkennke at redhat.com Wed Sep 12 10:38:50 2018 From: rkennke at redhat.com (Roman Kennke) Date: Wed, 12 Sep 2018 12:38:50 +0200 Subject: RFR: In update-refs, update all code-roots when in degen-gc Message-ID: <87b0fa7c-4fb1-aaef-a6c4-c4a52b59782b@redhat.com> Some tests seem to sporadically fail with assert_not_forwarded failure in code roots, coming from update_refs/degen phase. This usually happens with aggressive and +OOMDuringEvacALot. It seems that when we update-roots in the update-refs/degen phase, we can see code roots that have not been updated. I suspect that this can happen when evac fails (due to +OOMDuringEvacALot). Proposed fix is to always update all code roots when updating-refs in degen. Test: tier3_gc_shenandoah # HG changeset patch # User rkennke # Date 1536748072 -7200 # Wed Sep 12 12:27:52 2018 +0200 # Node ID 119faef8f9fd3cd5259e8558763c4a446eb1e4ea # Parent 020632e98637618ef302eb4cf241cb76be6edca6 In update-refs, update all code-roots when in degen-gc diff --git a/src/hotspot/share/gc/shenandoah/shenandoahHeap.cpp b/src/hotspot/share/gc/shenandoah/shenandoahHeap.cpp --- a/src/hotspot/share/gc/shenandoah/shenandoahHeap.cpp +++ b/src/hotspot/share/gc/shenandoah/shenandoahHeap.cpp @@ -2352,7 +2352,9 @@ } assert(!cancelled_gc(), "Should have been done right before"); - concurrentMark()->update_roots(ShenandoahPhaseTimings::final_update_refs_roots); + concurrentMark()->update_roots(is_degenerated_gc_in_progress() ? + ShenandoahPhaseTimings::full_gc_roots: + ShenandoahPhaseTimings::final_update_refs_roots); ShenandoahGCPhase final_update_refs(ShenandoahPhaseTimings::final_update_refs_recycle); From shade at redhat.com Wed Sep 12 10:42:36 2018 From: shade at redhat.com (Aleksey Shipilev) Date: Wed, 12 Sep 2018 12:42:36 +0200 Subject: RFR: In update-refs, update all code-roots when in degen-gc In-Reply-To: <87b0fa7c-4fb1-aaef-a6c4-c4a52b59782b@redhat.com> References: <87b0fa7c-4fb1-aaef-a6c4-c4a52b59782b@redhat.com> Message-ID: On 09/12/2018 12:38 PM, Roman Kennke wrote: > diff --git a/src/hotspot/share/gc/shenandoah/shenandoahHeap.cpp > b/src/hotspot/share/gc/shenandoah/shenandoahHeap.cpp > --- a/src/hotspot/share/gc/shenandoah/shenandoahHeap.cpp > +++ b/src/hotspot/share/gc/shenandoah/shenandoahHeap.cpp > @@ -2352,7 +2352,9 @@ > } > assert(!cancelled_gc(), "Should have been done right before"); > > - > concurrentMark()->update_roots(ShenandoahPhaseTimings::final_update_refs_roots); > + concurrentMark()->update_roots(is_degenerated_gc_in_progress() ? > + ShenandoahPhaseTimings::full_gc_roots: > + This is awkward: degenerated GC is not full GC. It seems better to introduce ShenandoahPhaseTimings::degenerated_gc_roots and handle it in update_roots. -Aleksey From rkennke at redhat.com Wed Sep 12 11:02:58 2018 From: rkennke at redhat.com (Roman Kennke) Date: Wed, 12 Sep 2018 13:02:58 +0200 Subject: RFR: In update-refs, update all code-roots when in degen-gc In-Reply-To: References: <87b0fa7c-4fb1-aaef-a6c4-c4a52b59782b@redhat.com> Message-ID: <94961dd4-7b6d-c50f-e263-29f43628d2b7@redhat.com> > On 09/12/2018 12:38 PM, Roman Kennke wrote: >> diff --git a/src/hotspot/share/gc/shenandoah/shenandoahHeap.cpp >> b/src/hotspot/share/gc/shenandoah/shenandoahHeap.cpp >> --- a/src/hotspot/share/gc/shenandoah/shenandoahHeap.cpp >> +++ b/src/hotspot/share/gc/shenandoah/shenandoahHeap.cpp >> @@ -2352,7 +2352,9 @@ >> } >> assert(!cancelled_gc(), "Should have been done right before"); >> >> - >> concurrentMark()->update_roots(ShenandoahPhaseTimings::final_update_refs_roots); >> + concurrentMark()->update_roots(is_degenerated_gc_in_progress() ? >> + ShenandoahPhaseTimings::full_gc_roots: >> + > > This is awkward: degenerated GC is not full GC. It seems better to introduce > ShenandoahPhaseTimings::degenerated_gc_roots and handle it in update_roots. > > -Aleksey > Right. Like this? http://cr.openjdk.java.net/~rkennke/fix-assert-fwd/webrev.00/ Roman From shade at redhat.com Wed Sep 12 11:06:31 2018 From: shade at redhat.com (Aleksey Shipilev) Date: Wed, 12 Sep 2018 13:06:31 +0200 Subject: RFR: In update-refs, update all code-roots when in degen-gc In-Reply-To: <94961dd4-7b6d-c50f-e263-29f43628d2b7@redhat.com> References: <87b0fa7c-4fb1-aaef-a6c4-c4a52b59782b@redhat.com> <94961dd4-7b6d-c50f-e263-29f43628d2b7@redhat.com> Message-ID: On 09/12/2018 01:02 PM, Roman Kennke wrote: > http://cr.openjdk.java.net/~rkennke/fix-assert-fwd/webrev.00/ You also need to have the per-root block following the degen_gc_update_roots declaration. See e.g.: 207 // Per-thread timer block, should have "roots" counters in consistent order 208 final_traversal_update_roots, 209 final_traversal_update_thread_roots, .... Otherwise ShenandoahPhaseTimings::record_workers_end would screw up adjacent counters. -Aleksey From rkennke at redhat.com Wed Sep 12 11:23:49 2018 From: rkennke at redhat.com (Roman Kennke) Date: Wed, 12 Sep 2018 13:23:49 +0200 Subject: RFR: In update-refs, update all code-roots when in degen-gc In-Reply-To: References: <87b0fa7c-4fb1-aaef-a6c4-c4a52b59782b@redhat.com> <94961dd4-7b6d-c50f-e263-29f43628d2b7@redhat.com> Message-ID: <4f32860d-7a63-cd7c-d2e2-a10b2aa1bb1d@redhat.com> Am 12.09.2018 um 13:06 schrieb Aleksey Shipilev: > On 09/12/2018 01:02 PM, Roman Kennke wrote: >> http://cr.openjdk.java.net/~rkennke/fix-assert-fwd/webrev.00/ > > You also need to have the per-root block following the degen_gc_update_roots declaration. See e.g.: > > 207 // Per-thread timer block, should have "roots" counters in consistent order > 208 final_traversal_update_roots, > 209 final_traversal_update_thread_roots, > .... > > Otherwise ShenandoahPhaseTimings::record_workers_end would screw up adjacent counters. Ok: http://cr.openjdk.java.net/~rkennke/fix-assert-fwd/webrev.01/ Good? Roman From rwestrel at redhat.com Wed Sep 12 11:22:31 2018 From: rwestrel at redhat.com (Roland Westrelin) Date: Wed, 12 Sep 2018 13:22:31 +0200 Subject: RFR: rework CAS support In-Reply-To: References: Message-ID: > Excellent! This should reduce our upstream diff considerably. And the > new stuff to support new C2 nodes should be ok too. Patch looks good, > please push if it passes tier3_gc_shenandoah. Except for: # Internal Error (/home/rwestrel/shenandoah/src/hotspot/share/gc/shenandoah/shenandoahHeap.cpp:80), pid=40463, tid=40517 # Error: Shenandoah assert_not_forwarded failed; Object should not be forwarded with AllocIntArrays, it does pass tier3_gc_shenandoah. Roland. From rkennke at redhat.com Wed Sep 12 11:26:37 2018 From: rkennke at redhat.com (Roman Kennke) Date: Wed, 12 Sep 2018 13:26:37 +0200 Subject: RFR: rework CAS support In-Reply-To: References: Message-ID: Am 12.09.2018 um 13:22 schrieb Roland Westrelin: > >> Excellent! This should reduce our upstream diff considerably. And the >> new stuff to support new C2 nodes should be ok too. Patch looks good, >> please push if it passes tier3_gc_shenandoah. > > Except for: > > # Internal Error (/home/rwestrel/shenandoah/src/hotspot/share/gc/shenandoah/shenandoahHeap.cpp:80), pid=40463, tid=40517 > # Error: Shenandoah assert_not_forwarded failed; Object should not be forwarded > > with AllocIntArrays, it does pass tier3_gc_shenandoah. Yes, I'm working on this (fix is already RFR'ed). Please push. Thanks, Roman From shade at redhat.com Wed Sep 12 11:30:07 2018 From: shade at redhat.com (Aleksey Shipilev) Date: Wed, 12 Sep 2018 13:30:07 +0200 Subject: RFR: In update-refs, update all code-roots when in degen-gc In-Reply-To: <4f32860d-7a63-cd7c-d2e2-a10b2aa1bb1d@redhat.com> References: <87b0fa7c-4fb1-aaef-a6c4-c4a52b59782b@redhat.com> <94961dd4-7b6d-c50f-e263-29f43628d2b7@redhat.com> <4f32860d-7a63-cd7c-d2e2-a10b2aa1bb1d@redhat.com> Message-ID: On 09/12/2018 01:23 PM, Roman Kennke wrote: > Am 12.09.2018 um 13:06 schrieb Aleksey Shipilev: >> On 09/12/2018 01:02 PM, Roman Kennke wrote: >>> http://cr.openjdk.java.net/~rkennke/fix-assert-fwd/webrev.00/ >> >> You also need to have the per-root block following the degen_gc_update_roots declaration. See e.g.: >> >> 207 // Per-thread timer block, should have "roots" counters in consistent order >> 208 final_traversal_update_roots, >> 209 final_traversal_update_thread_roots, >> .... >> >> Otherwise ShenandoahPhaseTimings::record_workers_end would screw up adjacent counters. > > Ok: > http://cr.openjdk.java.net/~rkennke/fix-assert-fwd/webrev.01/ Not sure why these are broken out with new-lines: 224 _phase_names[degen_gc_update_string_dedup_table_roots] 225 = " DU: Dedup Table Roots"; 226 _phase_names[degen_gc_update_string_dedup_queue_roots] 227 = " DU: Dedup Queue Roots"; ...otherwise looks fine! You might want to fix that before pushing. Thanks, -Aleksey From rkennke at redhat.com Wed Sep 12 11:34:20 2018 From: rkennke at redhat.com (Roman Kennke) Date: Wed, 12 Sep 2018 13:34:20 +0200 Subject: RFR: In update-refs, update all code-roots when in degen-gc In-Reply-To: References: <87b0fa7c-4fb1-aaef-a6c4-c4a52b59782b@redhat.com> <94961dd4-7b6d-c50f-e263-29f43628d2b7@redhat.com> <4f32860d-7a63-cd7c-d2e2-a10b2aa1bb1d@redhat.com> Message-ID: Am 12.09.2018 um 13:30 schrieb Aleksey Shipilev: > On 09/12/2018 01:23 PM, Roman Kennke wrote: >> Am 12.09.2018 um 13:06 schrieb Aleksey Shipilev: >>> On 09/12/2018 01:02 PM, Roman Kennke wrote: >>>> http://cr.openjdk.java.net/~rkennke/fix-assert-fwd/webrev.00/ >>> >>> You also need to have the per-root block following the degen_gc_update_roots declaration. See e.g.: >>> >>> 207 // Per-thread timer block, should have "roots" counters in consistent order >>> 208 final_traversal_update_roots, >>> 209 final_traversal_update_thread_roots, >>> .... >>> >>> Otherwise ShenandoahPhaseTimings::record_workers_end would screw up adjacent counters. >> >> Ok: >> http://cr.openjdk.java.net/~rkennke/fix-assert-fwd/webrev.01/ > > Not sure why these are broken out with new-lines: > > 224 _phase_names[degen_gc_update_string_dedup_table_roots] > 225 = " DU: Dedup Table Roots"; > 226 _phase_names[degen_gc_update_string_dedup_queue_roots] > 227 = " DU: Dedup Queue Roots"; > > ...otherwise looks fine! You might want to fix that before pushing. > Copy+paste from the corresponding TU: block ;-) Will fix before pushing. Thanks for review! Roman From roman at kennke.org Wed Sep 12 11:33:20 2018 From: roman at kennke.org (roman at kennke.org) Date: Wed, 12 Sep 2018 11:33:20 +0000 Subject: hg: shenandoah/jdk: In update-refs, update all code-roots when in degen-gc Message-ID: <201809121133.w8CBXLN8008992@aojmv0008.oracle.com> Changeset: ef034996679f Author: rkennke Date: 2018-09-12 13:33 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/ef034996679f In update-refs, update all code-roots when in degen-gc ! src/hotspot/share/gc/shenandoah/shenandoahConcurrentMark.cpp ! src/hotspot/share/gc/shenandoah/shenandoahHeap.cpp ! src/hotspot/share/gc/shenandoah/shenandoahPhaseTimings.cpp ! src/hotspot/share/gc/shenandoah/shenandoahPhaseTimings.hpp From rwestrel at redhat.com Wed Sep 12 12:34:26 2018 From: rwestrel at redhat.com (rwestrel at redhat.com) Date: Wed, 12 Sep 2018 12:34:26 +0000 Subject: hg: shenandoah/jdk: rework CAS in c1 & c2 Message-ID: <201809121234.w8CCYQ3r029838@aojmv0008.oracle.com> Changeset: 749b7067ecdc Author: roland Date: 2018-09-12 13:25 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/749b7067ecdc rework CAS in c1 & c2 ! src/hotspot/cpu/aarch64/aarch64.ad ! src/hotspot/cpu/aarch64/c1_LIRAssembler_aarch64.cpp ! src/hotspot/cpu/aarch64/gc/shared/barrierSetAssembler_aarch64.cpp ! src/hotspot/cpu/aarch64/gc/shared/barrierSetAssembler_aarch64.hpp ! src/hotspot/cpu/aarch64/gc/shenandoah/shenandoahBarrierSetAssembler_aarch64.cpp ! src/hotspot/cpu/aarch64/gc/shenandoah/shenandoahBarrierSetAssembler_aarch64.hpp + src/hotspot/cpu/aarch64/gc/shenandoah/shenandoahBarrierSetC1_aarch64.cpp ! src/hotspot/cpu/aarch64/macroAssembler_aarch64.cpp ! src/hotspot/cpu/aarch64/macroAssembler_aarch64.hpp ! src/hotspot/cpu/x86/c1_LIRAssembler_x86.cpp ! src/hotspot/cpu/x86/c1_LIRGenerator_x86.cpp ! src/hotspot/cpu/x86/gc/shared/barrierSetAssembler_x86.cpp ! src/hotspot/cpu/x86/gc/shared/barrierSetAssembler_x86.hpp ! src/hotspot/cpu/x86/gc/shenandoah/shenandoahBarrierSetAssembler_x86.cpp ! src/hotspot/cpu/x86/gc/shenandoah/shenandoahBarrierSetAssembler_x86.hpp + src/hotspot/cpu/x86/gc/shenandoah/shenandoahBarrierSetC1_x86.cpp ! src/hotspot/cpu/x86/macroAssembler_x86.cpp ! src/hotspot/cpu/x86/macroAssembler_x86.hpp ! src/hotspot/cpu/x86/x86_64.ad ! src/hotspot/share/adlc/formssel.cpp ! src/hotspot/share/gc/shared/c2/barrierSetC2.cpp ! src/hotspot/share/gc/shared/c2/barrierSetC2.hpp ! src/hotspot/share/gc/shenandoah/c1/shenandoahBarrierSetC1.hpp ! src/hotspot/share/gc/shenandoah/c2/shenandoahBarrierSetC2.cpp ! src/hotspot/share/gc/shenandoah/c2/shenandoahSupport.cpp ! src/hotspot/share/gc/shenandoah/c2/shenandoahSupport.hpp ! src/hotspot/share/gc/shenandoah/shenandoahBarrierSet.cpp ! src/hotspot/share/gc/shenandoah/shenandoahBarrierSet.hpp ! src/hotspot/share/opto/classes.hpp ! src/hotspot/share/opto/compile.cpp ! src/hotspot/share/opto/escape.cpp ! src/hotspot/share/opto/loopTransform.cpp ! src/hotspot/share/opto/matcher.cpp From rkennke at redhat.com Wed Sep 12 12:38:23 2018 From: rkennke at redhat.com (Roman Kennke) Date: Wed, 12 Sep 2018 14:38:23 +0200 Subject: RFR: Cleanup C2 parse sources Message-ID: <40fca7bd-ce4b-b63a-887f-1946ada0efbd@redhat.com> This cleans up some more leftover stuff in C2, this time in parse* source files. The arrayaddressing() changes is leftovers from when we inserted explicit barriers and not needed anymore. The block in parse3.cpp used to mark String backing arrays as stable, but we disable this optimization by default anyway, and JMM-wise we consider it questionable, so it doesn't seem important enough to upstream. Testing: tier3_gc_shenandoah http://cr.openjdk.java.net/~rkennke/c2-cleanup-parse/webrev.00/ Ok? Roman From rkennke at redhat.com Wed Sep 12 14:51:57 2018 From: rkennke at redhat.com (Roman Kennke) Date: Wed, 12 Sep 2018 16:51:57 +0200 Subject: RFR: Cleanup code in C2 related to G1/Sh pre-barrier handling Message-ID: <0a7579c3-54ee-cd56-9603-b233c9ee1551@redhat.com> Another round of clean-ups in C2: this time some code pieces related to pre-barrier handling. As far as I know/remember, all of those code in shared path has originally been duplicated from corresponding G1 code paths. Since GC interface arrived, the G1 counterparts have since been removed. At least I can not find where they could have gone in G1BarrierSetC2. I therefore propose to do the same for the Shenandoah parts, under the assumption that this would not have ill-effects. Roland: can you carefully check this? The utility methods in node.hpp to detect certain properties have been moved to ShenandoahBarrierSetC2, the only uses left are in Shenandoah land. Tests: tier3_gc_shenandoah http://cr.openjdk.java.net/~rkennke/cleanup-c2-pre-barrier/webrev.00/ WDYT? Roman From rwestrel at redhat.com Wed Sep 12 15:01:43 2018 From: rwestrel at redhat.com (Roland Westrelin) Date: Wed, 12 Sep 2018 17:01:43 +0200 Subject: RFR: Cleanup C2 parse sources In-Reply-To: <40fca7bd-ce4b-b63a-887f-1946ada0efbd@redhat.com> References: <40fca7bd-ce4b-b63a-887f-1946ada0efbd@redhat.com> Message-ID: > http://cr.openjdk.java.net/~rkennke/c2-cleanup-parse/webrev.00/ That looks good. Roland. From roman at kennke.org Wed Sep 12 15:02:48 2018 From: roman at kennke.org (roman at kennke.org) Date: Wed, 12 Sep 2018 15:02:48 +0000 Subject: hg: shenandoah/jdk: Cleanup C2 parse sources Message-ID: <201809121502.w8CF2mZP017971@aojmv0008.oracle.com> Changeset: beee9418a95b Author: rkennke Date: 2018-09-12 15:07 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/beee9418a95b Cleanup C2 parse sources ! src/hotspot/share/opto/parse.hpp ! src/hotspot/share/opto/parse2.cpp ! src/hotspot/share/opto/parse3.cpp From rwestrel at redhat.com Thu Sep 13 07:46:51 2018 From: rwestrel at redhat.com (Roland Westrelin) Date: Thu, 13 Sep 2018 09:46:51 +0200 Subject: RFR: Cleanup code in C2 related to G1/Sh pre-barrier handling In-Reply-To: <0a7579c3-54ee-cd56-9603-b233c9ee1551@redhat.com> References: <0a7579c3-54ee-cd56-9603-b233c9ee1551@redhat.com> Message-ID: > http://cr.openjdk.java.net/~rkennke/cleanup-c2-pre-barrier/webrev.00/ There are things in there that should not be removed. The pre barriers for stores to non escaping allocation can be eliminated. To locate the pre barrier the call node has an extra edge to the address of the store. If the store is eliminated for some reason then we don't need to keep the address computation alive. That's what: CallLeafNode::Ideal() the code in Compile::remove_useless_nodes() the code in kill_dead_code() the code in PhaseIterGVN::remove_globally_dead_node() the code in Node::set_req_X() take care of. For kill_dead_code() and PhaseIterGVN::remove_globally_dead_node(), enqueue_useful_gc_barrier() could cover that. Also the code in macro.cpp is required for scalarization to work. Roland. From rkennke at redhat.com Thu Sep 13 09:20:48 2018 From: rkennke at redhat.com (Roman Kennke) Date: Thu, 13 Sep 2018 11:20:48 +0200 Subject: RFR: Upstream merge jdk/jdk -> shenandoah/jdk 2018-09-11 Message-ID: <02a30f15-346e-b43f-5dd8-cdd9fe1f8047@redhat.com> Merging from upstream jdk/jdk up to tag jdk-12+11. The only really interesting news is: 8210187: Explicit barriers for C2 Which resulted in some merging activity in C2 to fold exiting resolve_for_*() into resolve() calls, but that was trivial. List of changes: http://cr.openjdk.java.net/~rkennke/jdk12-upstream-merge-2018-09-13/outgoing.txt Testing: tier3_gc_shenandoah ok Roman From shade at redhat.com Thu Sep 13 09:26:34 2018 From: shade at redhat.com (Aleksey Shipilev) Date: Thu, 13 Sep 2018 11:26:34 +0200 Subject: RFR: Upstream merge jdk/jdk -> shenandoah/jdk 2018-09-11 In-Reply-To: <02a30f15-346e-b43f-5dd8-cdd9fe1f8047@redhat.com> References: <02a30f15-346e-b43f-5dd8-cdd9fe1f8047@redhat.com> Message-ID: On 09/13/2018 11:20 AM, Roman Kennke wrote: > List of changes: > http://cr.openjdk.java.net/~rkennke/jdk12-upstream-merge-2018-09-13/outgoing.txt Okay. -Aleksey From roman at kennke.org Thu Sep 13 09:28:13 2018 From: roman at kennke.org (roman at kennke.org) Date: Thu, 13 Sep 2018 09:28:13 +0000 Subject: hg: shenandoah/jdk: 64 new changesets Message-ID: <201809130928.w8D9SIqL018992@aojmv0008.oracle.com> Changeset: 35dee171e59c Author: iignatyev Date: 2018-08-10 13:36 -0700 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/35dee171e59c 8209386: [error-prone] StreamResourceLeak in jdk.internal.ed module Reviewed-by: rriggs ! src/jdk.internal.ed/share/classes/jdk/internal/editor/external/ExternalEditor.java Changeset: 3df9c8591afc Author: jcbeyler Date: 2018-09-05 11:12 -0700 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/3df9c8591afc 8208352: Merge HeapMonitorTest and HeapMonitorGCTest code Summary: Merged the code that enables sampling and allocates Reviewed-by: cjplummer, sspitsyn, amenkov ! test/hotspot/jtreg/serviceability/jvmti/HeapMonitor/MyPackage/HeapMonitor.java ! test/hotspot/jtreg/serviceability/jvmti/HeapMonitor/MyPackage/HeapMonitorGCTest.java ! test/hotspot/jtreg/serviceability/jvmti/HeapMonitor/MyPackage/HeapMonitorTest.java Changeset: f9d10031512d Author: jwilhelm Date: 2018-09-06 02:50 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/f9d10031512d Added tag jdk-12+10 for changeset 8f594f75e054 ! .hgtags Changeset: b51d348698c2 Author: jcbeyler Date: 2018-09-05 19:40 -0700 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/b51d348698c2 8210198: Clean up JNI_ENV_ARG for vmTestbase/jvmti/Get[A-F] tests Summary: Remove JNI_ENV macros from the Get[A-F] tests Reviewed-by: sspitsyn, amenkov, cjplummer ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetAllThreads/allthr001/allthr001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetAllThreads/allthr002/allthr002.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetArgumentsSize/argsize001/argsize001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetArgumentsSize/argsize002/argsize002.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetAvailableProcessors/getavailproc001/getavailproc001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetBytecodes/bytecodes001/bytecodes001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetBytecodes/bytecodes002/bytecodes002.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetBytecodes/bytecodes003/bytecodes003.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetCapabilities/getcaps001/getcaps001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetCapabilities/getcaps002/getcaps002.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetClassFields/getclfld005/getclfld005.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetClassFields/getclfld006/getclfld006.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetClassFields/getclfld007/getclfld007.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetClassLoader/getclsldr001/getclsldr001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetClassLoader/getclsldr002/getclsldr002.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetClassLoader/getclsldr003/getclsldr003.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetClassLoaderClasses/clsldrclss001/clsldrclss001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetClassLoaderClasses/clsldrclss002/clsldrclss002.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetClassMethods/getclmthd005/getclmthd005.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetClassMethods/getclmthd006/getclmthd006.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetClassMethods/getclmthd007/getclmthd007.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetClassModifiers/getclmdf004/getclmdf004.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetClassModifiers/getclmdf005/getclmdf005.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetClassModifiers/getclmdf006/getclmdf006.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetClassModifiers/getclmdf007/getclmdf007.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetClassSignature/getclsig004/getclsig004.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetClassSignature/getclsig005/getclsig005.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetClassSignature/getclsig006/getclsig006.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetClassStatus/getclstat005/getclstat005.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetClassStatus/getclstat006/getclstat006.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetClassStatus/getclstat007/getclstat007.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetCurrentContendedMonitor/contmon001/contmon001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetCurrentContendedMonitor/contmon002/contmon002.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetCurrentContendedMonitor/contmon003/contmon003.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetCurrentThreadCpuTime/curthrcputime001/curthrcputime001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetCurrentThreadCpuTimerInfo/curthrtimerinfo001/curthrtimerinfo001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetEnv/GetEnv001/GetEnv001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetEnvironmentLocalStorage/getenvstor001/getenvstor001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetErrorName/geterrname001/geterrname001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetErrorName/geterrname002/geterrname002.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetExtensionEvents/extevents001/extevents001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetExtensionFunctions/extfuncs001/extfuncs001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetFieldDeclaringClass/getfldecl001/getfldecl001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetFieldDeclaringClass/getfldecl002/getfldecl002.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetFieldDeclaringClass/getfldecl004/getfldecl004.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetFieldModifiers/getfldmdf003/getfldmdf003.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetFieldModifiers/getfldmdf004/getfldmdf004.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetFieldName/getfldnm003/getfldnm003.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetFieldName/getfldnm004/getfldnm004.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetFieldName/getfldnm005/getfldnm005.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetFrameCount/framecnt001/framecnt001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetFrameCount/framecnt002/framecnt002.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetFrameCount/framecnt003/framecnt003.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetFrameLocation/frameloc001/frameloc001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetFrameLocation/frameloc002/frameloc002.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetFrameLocation/frameloc003/frameloc003.cpp Changeset: b6ccd982e33d Author: xuelei Date: 2018-09-05 21:01 -0700 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/b6ccd982e33d 8210334: TLS 1.3 server fails if ClientHello doesn't have pre_shared_key and psk_key_exchange_modes Reviewed-by: ascarpino, wetmore ! src/java.base/share/classes/sun/security/ssl/PskKeyExchangeModesExtension.java Changeset: 0f921a6707d9 Author: rhalade Date: 2018-09-05 21:06 -0700 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/0f921a6707d9 8210432: Add additional TeliaSonera root certificate Reviewed-by: mullan ! src/java.base/share/lib/security/cacerts ! test/jdk/lib/security/cacerts/VerifyCACerts.java + test/jdk/security/infra/java/security/cert/CertPathValidator/certification/TeliaSoneraCA.java Changeset: 5b1d1a7d4def Author: dholmes Date: 2018-09-06 02:01 -0400 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/5b1d1a7d4def 8199874: [TESTBUG] runtime/Thread/ThreadPriorities.java fails with "expected 0 to equal 10" Reviewed-by: lfoltan, ccheung ! test/hotspot/jtreg/runtime/Thread/ThreadPriorities.java Changeset: 0fd48caf8243 Author: mcimadamore Date: 2018-09-06 13:13 +0100 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/0fd48caf8243 8210318: idea.sh script doesn't work on Mac Summary: remove usage non-portable sed options Reviewed-by: erikj, ihse ! bin/idea.sh ! make/langtools/intellij/template/runConfigurations/javac.xml ! make/langtools/intellij/template/runConfigurations/javadoc.xml ! make/langtools/intellij/template/runConfigurations/javap.xml ! make/langtools/intellij/template/runConfigurations/jshell.xml ! make/langtools/intellij/template/runConfigurations/sjavac.xml Changeset: 805807f15830 Author: vromero Date: 2018-09-06 05:44 -0700 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/805807f15830 8210435: don't add local variable spots if they are DCE'ed by the compiler Reviewed-by: mcimadamore ! src/jdk.compiler/share/classes/com/sun/tools/javac/jvm/Gen.java + test/langtools/tools/javac/T8210435/NoLocalsMustBeReservedForDCEedVarsTest.java Changeset: ca3003390cf0 Author: ccheung Date: 2018-09-06 09:30 -0700 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/ca3003390cf0 8185145: AppCDS custom loader support on Mac OS X Reviewed-by: dholmes, gziemski ! src/hotspot/share/classfile/classListParser.cpp ! test/lib/jdk/test/lib/Platform.java Changeset: c3ad012182b1 Author: naoto Date: 2018-09-06 10:49 -0700 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/c3ad012182b1 8210142: java.util.Calendar.clone() doesn't respect sharedZone flag Reviewed-by: rriggs ! src/java.base/share/classes/java/util/Calendar.java ! test/jdk/java/util/Calendar/CalendarTest.java Changeset: a4c50d83af82 Author: igerasim Date: 2018-09-06 12:10 -0700 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/a4c50d83af82 8210285: CharsetDecoder/Encoder's constructor does not reject NaN Reviewed-by: sherman, smarks, alanb, martin, darcy ! src/java.base/share/classes/java/nio/charset/Charset-X-Coder.java.template + test/jdk/java/nio/charset/CharsetDecoder/NaNinCtor.java + test/jdk/java/nio/charset/CharsetEncoder/NaNinCtor.java Changeset: fe4349d27282 Author: jjg Date: 2018-09-06 16:15 -0700 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/fe4349d27282 8210009: Source Launcher classloader should support getResource and getResourceAsStream Reviewed-by: mchung, plevart ! src/jdk.compiler/share/classes/com/sun/tools/javac/launcher/Main.java + test/langtools/tools/javac/launcher/GetResourceTest.java + test/langtools/tools/javac/launcher/src/CLTest.java Changeset: a65d8a6fa424 Author: mikael Date: 2018-09-06 18:06 -0700 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/a65d8a6fa424 8210381: Obsolete EmitSync Reviewed-by: kvn, dcubed, mdoerr, mbaesken, shade ! src/hotspot/cpu/aarch64/aarch64.ad ! src/hotspot/cpu/ppc/macroAssembler_ppc.cpp ! src/hotspot/cpu/s390/macroAssembler_s390.cpp ! src/hotspot/cpu/sparc/macroAssembler_sparc.cpp ! src/hotspot/cpu/x86/macroAssembler_x86.cpp ! src/hotspot/share/runtime/arguments.cpp ! src/hotspot/share/runtime/globals.hpp Changeset: a8bdd9c24d37 Author: xyin Date: 2018-09-07 09:09 +0800 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/a8bdd9c24d37 8042902: Test java/net/Inet6Address/serialize/Inet6AddressSerializationTest.java fails intermittently Reviewed-by: chegar ! test/jdk/java/net/Inet6Address/serialize/Inet6AddressSerializationTest.java Changeset: cda49f297cb1 Author: dlong Date: 2018-09-06 17:45 -0700 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/cda49f297cb1 8209361: [AOT] Unexpected number of references for JVMTI_HEAP_REFERENCE_CONSTANT_POOL [111-->111]: 0 (expected at least 1) Reviewed-by: coleenp, dholmes ! src/hotspot/share/prims/jvmtiTagMap.cpp Changeset: 7e6b86eb7914 Author: roland Date: 2018-09-06 16:27 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/7e6b86eb7914 8209544: AES encrypt performance regression in jdk11b11 Reviewed-by: kvn, vlivanov ! src/hotspot/share/opto/subnode.cpp Changeset: 799cddff49fe Author: mullan Date: 2018-09-07 08:02 -0400 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/799cddff49fe 6899533: SecureClassLoader and URLClassLoader have unnecessary check for createClassLoader permission Summary: Remove code that is no longer necessary now that pre-JDK 1.2 SecurityManager methods are not supported. Reviewed-by: mchung ! src/java.base/share/classes/java/net/URLClassLoader.java ! src/java.base/share/classes/java/security/SecureClassLoader.java Changeset: 0a8d4f484987 Author: dholmes Date: 2018-09-07 08:14 -0400 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/0a8d4f484987 8210486: Unused code in check_nest_attributes function Reviewed-by: mikael, sspitsyn ! src/hotspot/share/prims/jvmtiRedefineClasses.cpp Changeset: 480486f31b3b Author: aleonard Date: 2018-09-07 11:24 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/480486f31b3b 8209786: JDK12 fails to build on s390x with gcc 7.3 Reviewed-by: ihse, goetz ! make/lib/CoreLibraries.gmk ! src/java.desktop/share/native/libmlib_image/mlib_ImageLookUp_Bit.c Changeset: 2dddc9394b49 Author: mcimadamore Date: 2018-09-07 15:56 +0100 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/2dddc9394b49 8210495: compiler crashes because of illegal signature in otherwise legal code Summary: Disable strict verification of compiler signatures when they do not affect generated bytecode Reviewed-by: vromero ! src/jdk.compiler/share/classes/com/sun/tools/javac/code/Types.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/comp/LambdaToMethod.java + test/langtools/tools/javac/lambda/8210495/T8210495.java Changeset: 9f6903174bad Author: sherman Date: 2018-09-07 10:17 -0700 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/9f6903174bad 8210345: The Japanese message of FileNotFoundException garbled Reviewed-by: alanb ! src/java.base/share/native/libjava/io_util.c Changeset: b613bf6a10b1 Author: jcbeyler Date: 2018-09-07 09:50 -0700 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/b613bf6a10b1 8210429: Clean up JNI_ENV_ARG for vmTestbase/jvmti/Get[G-Z] tests Summary: Remove the JNI_ENV_ARG for the rest of the Get[G-Z] Reviewed-by: dholmes, sspitsyn, cjplummer ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetImplementedInterfaces/getintrf005/getintrf005.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetImplementedInterfaces/getintrf006/getintrf006.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetImplementedInterfaces/getintrf007/getintrf007.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetJLocationFormat/getjlocfmt001/getjlocfmt001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetJLocationFormat/getjlocfmt002/getjlocfmt002.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetJNIFunctionTable/getjniftab001/getjniftab001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetJNIFunctionTable/getjniftab002/getjniftab002.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetLineNumberTable/linetab001/linetab001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetLineNumberTable/linetab002/linetab002.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetLineNumberTable/linetab003/linetab003.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetLoadedClasses/loadedclss001/loadedclss001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetLoadedClasses/loadedclss002/loadedclss002.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetLocalVariable/getlocal001/getlocal001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetLocalVariable/getlocal002/getlocal002.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetLocalVariableTable/localtab001/localtab001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetLocalVariableTable/localtab002/localtab002.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetLocalVariableTable/localtab003/localtab003.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetLocalVariableTable/localtab004/localtab004.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetLocalVariableTable/localtab005/localtab005.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetMaxLocals/maxloc001/maxloc001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetMaxLocals/maxloc002/maxloc002.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetMethodDeclaringClass/declcls001/declcls001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetMethodDeclaringClass/declcls002/declcls002.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetMethodDeclaringClass/declcls003/declcls003.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetMethodLocation/methloc001/methloc001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetMethodLocation/methloc002/methloc002.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetMethodModifiers/methmod001/methmod001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetMethodModifiers/methmod002/methmod002.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetMethodName/methname001/methname001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetMethodName/methname002/methname002.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetMethodName/methname003/methname003.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetObjectHashCode/objhashcode001/objhashcode001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetObjectMonitorUsage/objmonusage001/objmonusage001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetObjectMonitorUsage/objmonusage002/objmonusage002.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetObjectMonitorUsage/objmonusage003/objmonusage003.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetObjectMonitorUsage/objmonusage004/objmonusage004.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetObjectMonitorUsage/objmonusage005/objmonusage005.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetObjectMonitorUsage/objmonusage006/objmonusage006.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetObjectSize/objsize001/objsize001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetObjectsWithTags/objwithtags001/objwithtags001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetOwnedMonitorInfo/ownmoninf001/ownmoninf001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetOwnedMonitorInfo/ownmoninf002/ownmoninf002.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetOwnedMonitorInfo/ownmoninf003/ownmoninf003.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetPhase/getphase001/getphase001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetPhase/getphase002/getphase002.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetPotentialCapabilities/getpotcaps001/getpotcaps001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetSourceDebugExtension/srcdebugex001/srcdebugex001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetSourceDebugExtension/srcdebugex002/srcdebugex002.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetSourceDebugExtension/srcdebugex003/srcdebugex003.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetSourceFileName/getsrcfn004/getsrcfn004.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetSourceFileName/getsrcfn005/getsrcfn005.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetSourceFileName/getsrcfn006/getsrcfn006.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetStackTrace/getstacktr001/getstacktr001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetStackTrace/getstacktr002/getstacktr002.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetStackTrace/getstacktr003/getstacktr003.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetStackTrace/getstacktr004/getstacktr004.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetStackTrace/getstacktr005/getstacktr005.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetStackTrace/getstacktr006/getstacktr006.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetStackTrace/getstacktr007/getstacktr007.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetStackTrace/getstacktr008/getstacktr008.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetStackTrace/getstacktr009/getstacktr009.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetSystemProperties/getsysprops001/getsysprops001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetSystemProperties/getsysprops002/getsysprops002.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetSystemProperty/getsysprop001/getsysprop001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetSystemProperty/getsysprop002/getsysprop002.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetTag/gettag001/gettag001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetThreadCpuTime/thrcputime001/thrcputime001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetThreadCpuTime/thrcputime002/thrcputime002.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetThreadCpuTimerInfo/thrtimerinfo001/thrtimerinfo001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetThreadGroupChildren/getthrdgrpchld001/getthrdgrpchld001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetThreadGroupInfo/thrgrpinfo001/thrgrpinfo001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetThreadGroupInfo/thrgrpinfo002/thrgrpinfo002.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetThreadInfo/thrinfo001/thrinfo001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetThreadInfo/thrinfo002/thrinfo002.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetThreadLocalStorage/getthrdstor001/getthrdstor001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetThreadState/thrstat001/thrstat001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetThreadState/thrstat002/thrstat002.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetThreadState/thrstat003/thrstat003.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetThreadState/thrstat004/thrstat004.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetThreadState/thrstat005/thrstat005.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetTime/gettime001/gettime001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetTimerInfo/timerinfo001/timerinfo001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetTopThreadGroups/topthrgrp001/topthrgrp001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetTopThreadGroups/topthrgrp002/topthrgrp002.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetVersionNumber/getvern001/getvern001.cpp Changeset: 53e61697a020 Author: kbarrett Date: 2018-09-07 14:44 -0400 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/53e61697a020 8210131: vmTestbase/nsk/jvmti/scenarios/allocation/AP10/ap10t001/TestDescription.java failed with ObjectFree: GetCurrentThreadCpuTimerInfo returned unexpected error code Summary: Expanded permitted threads to include all NamedThreads. Reviewed-by: dcubed, sspitsyn ! src/hotspot/share/prims/jvmtiEnter.xsl ! test/hotspot/jtreg/ProblemList.txt Changeset: d7dcaacb95dd Author: jiangli Date: 2018-09-07 15:18 -0400 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/d7dcaacb95dd 8209971: TestOptionsWithRanges.java crashes in CDS mode with G1UpdateBufferSize=1. Summary: Fixup archive heap regions before restoring any archived java object at runtime. Reviewed-by: iklam, ccheung ! src/hotspot/share/classfile/javaClasses.cpp ! src/hotspot/share/classfile/systemDictionary.cpp ! src/hotspot/share/memory/metaspaceShared.cpp ! src/hotspot/share/memory/metaspaceShared.hpp ! src/hotspot/share/memory/universe.cpp Changeset: b487c1e914d0 Author: iignatyev Date: 2018-09-07 14:01 -0700 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/b487c1e914d0 8210112: remove jdk.testlibrary.ProcessTools Reviewed-by: alanb, sspitsyn, jcbeyler ! test/hotspot/jtreg/runtime/appcds/jigsaw/modulepath/AddModules.java ! test/hotspot/jtreg/runtime/appcds/jigsaw/modulepath/AddOpens.java ! test/hotspot/jtreg/runtime/appcds/jigsaw/modulepath/AddReads.java ! test/hotspot/jtreg/runtime/appcds/jigsaw/modulepath/ExportModule.java ! test/hotspot/jtreg/runtime/appcds/jigsaw/modulepath/MainModuleOnly.java ! test/hotspot/jtreg/runtime/appcds/jigsaw/modulepath/ModulePathAndCP.java ! test/jdk/com/sun/jdi/BadAgentPath.java ! test/jdk/com/sun/jdi/BadHandshakeTest.java ! test/jdk/com/sun/jdi/DoubleAgentTest.java ! test/jdk/com/sun/jdi/ExclusiveBind.java ! test/jdk/com/sun/jdi/NoLaunchOptionTest.java ! test/jdk/com/sun/jdi/ProcessAttachTest.java ! test/jdk/com/sun/jdi/RunToExit.java ! test/jdk/com/sun/jdi/SuspendNoFlagTest.java ! test/jdk/com/sun/jdi/cds/CDSBreakpointTest.java ! test/jdk/com/sun/jdi/cds/CDSDeleteAllBkptsTest.java ! test/jdk/com/sun/jdi/cds/CDSFieldWatchpoints.java ! test/jdk/com/sun/jdi/cds/CDSJDITest.java ! test/jdk/com/sun/management/HotSpotDiagnosticMXBean/CheckOrigin.java ! test/jdk/com/sun/management/HotSpotDiagnosticMXBean/DumpHeap.java ! test/jdk/com/sun/management/OperatingSystemMXBean/TestTotalSwap.java ! test/jdk/com/sun/tools/attach/BasicTests.java ! test/jdk/com/sun/tools/attach/PermissionTest.java ! test/jdk/com/sun/tools/attach/ProviderTest.java ! test/jdk/com/sun/tools/attach/RunnerUtil.java ! test/jdk/com/sun/tools/attach/StartManagementAgent.java ! test/jdk/com/sun/tools/attach/TempDirTest.java ! test/jdk/java/io/BufferedInputStream/LargeCopyWithMark.java ! test/jdk/java/lang/Class/forName/modules/TestDriver.java ! test/jdk/java/lang/Class/getResource/ResourcesTest.java ! test/jdk/java/lang/ClassLoader/EndorsedDirs.java ! test/jdk/java/lang/ClassLoader/ExtDirs.java ! test/jdk/java/lang/ClassLoader/GetDotResource.java ! test/jdk/java/lang/ClassLoader/GetSystemPackage.java ! test/jdk/java/lang/ClassLoader/getResource/GetResource.java ! test/jdk/java/lang/ClassLoader/getResource/automaticmodules/Driver.java ! test/jdk/java/lang/ClassLoader/getResource/modules/ResourcesTest.java ! test/jdk/java/lang/ClassLoader/securityManager/ClassLoaderTest.java ! test/jdk/java/lang/ModuleTests/access/AccessTest.java ! test/jdk/java/lang/Runtime/shutdown/ShutdownInterruptedMain.java ! test/jdk/java/lang/StackWalker/CallerFromMain.java ! test/jdk/java/lang/System/LoggerFinder/modules/Base.java ! test/jdk/java/lang/System/LoggerFinder/modules/JDKLoggerForImageTest.java ! test/jdk/java/lang/System/LoggerFinder/modules/JDKLoggerForJDKTest.java ! test/jdk/java/lang/System/LoggerFinder/modules/LoggerInImageTest.java ! test/jdk/java/lang/System/LoggerFinder/modules/NamedLoggerForImageTest.java ! test/jdk/java/lang/System/LoggerFinder/modules/NamedLoggerForJDKTest.java ! test/jdk/java/lang/System/LoggerFinder/modules/UnnamedLoggerForImageTest.java ! test/jdk/java/lang/System/LoggerFinder/modules/UnnamedLoggerForJDKTest.java ! test/jdk/java/lang/System/OsVersionTest.java ! test/jdk/java/lang/instrument/DaemonThread/TestDaemonThread.java ! test/jdk/java/lang/instrument/DaemonThread/TestDaemonThreadLauncher.java ! test/jdk/java/lang/instrument/PremainClass/NoPremainAgentTest.java ! test/jdk/java/lang/instrument/PremainClass/PremainClassTest.java ! test/jdk/java/lang/instrument/PremainClass/ZeroArgPremainAgentTest.java ! test/jdk/java/lang/instrument/executableJAR/ExecJarWithAgent.java ! test/jdk/java/lang/instrument/modules/AppendToClassPathModuleTest.java ! test/jdk/java/lang/management/MemoryMXBean/LowMemoryTest.java ! test/jdk/java/lang/management/MemoryMXBean/RunUtil.java ! test/jdk/java/lang/reflect/Proxy/ProxyClassAccessTest.java ! test/jdk/java/lang/reflect/Proxy/ProxyLayerTest.java ! test/jdk/java/lang/reflect/Proxy/ProxyTest.java ! test/jdk/java/nio/file/spi/SetDefaultProvider.java ! test/jdk/java/rmi/module/ModuleTest.java ! test/jdk/java/security/AccessController/DoPrivAccompliceTest.java ! test/jdk/java/security/KeyStore/PKCS12/KeytoolReaderP12Test.java ! test/jdk/java/security/KeyStore/PKCS12/KeytoolWriteP12Test.java ! test/jdk/java/security/KeyStore/PKCS12/MetadataEmptyTest.java ! test/jdk/java/security/KeyStore/PKCS12/MetadataStoreLoadTest.java ! test/jdk/java/security/KeyStore/PKCS12/StoreTrustedCertAPITest.java ! test/jdk/java/security/KeyStore/PKCS12/StoreTrustedCertKeytool.java ! test/jdk/java/security/KeyStore/PKCS12/Utils.java ! test/jdk/java/security/Policy/ExtensiblePolicy/ExtensiblePolicyWithJarTest.java ! test/jdk/java/security/Policy/SignedJar/SignedJarTest.java ! test/jdk/java/util/Arrays/TimSortStackSize2.java ! test/jdk/java/util/Locale/bcp47u/SystemPropertyTests.java ! test/jdk/java/util/ResourceBundle/modules/cache/CacheTest.java ! test/jdk/java/util/ResourceBundle/modules/casesensitive/CaseInsensitiveNameClash.java ! test/jdk/java/util/ResourceBundle/modules/security/TestPermission.java ! test/jdk/java/util/logging/TestLoggerWeakRefLeak.java ! test/jdk/java/util/logging/modules/GetResourceBundleTest.java ! test/jdk/java/util/zip/EntryCount64k.java ! test/jdk/javax/management/mxbean/MXBeanWeirdParamTest.java ! test/jdk/javax/management/remote/mandatory/connection/DefaultAgentFilterTest.java ! test/jdk/javax/management/security/AuthorizationTest.java ! test/jdk/javax/management/security/SecurityTest.java ! test/jdk/javax/security/auth/Subject/doAs/NestedActions.java ! test/jdk/jdk/internal/misc/VM/RuntimeArguments.java ! test/jdk/jdk/modules/etc/DefaultModules.java ! test/jdk/jdk/modules/incubator/DefaultImage.java ! test/jdk/jdk/modules/incubator/ImageModules.java ! test/jdk/jdk/modules/scenarios/automaticmodules/RunWithAutomaticModules.java ! test/jdk/jdk/modules/scenarios/container/ContainerTest.java ! test/jdk/jdk/modules/scenarios/overlappingpackages/OverlappingPackagesTest.java ! test/jdk/lib/testlibrary/OutputAnalyzerReportingTest.java ! test/jdk/lib/testlibrary/OutputAnalyzerTest.java - test/jdk/lib/testlibrary/jdk/testlibrary/OutputAnalyzer.java - test/jdk/lib/testlibrary/jdk/testlibrary/OutputBuffer.java - test/jdk/lib/testlibrary/jdk/testlibrary/ProcessTools.java - test/jdk/lib/testlibrary/jdk/testlibrary/StreamPumper.java ! test/jdk/native_sanity/simplenativelauncher/ProgramTest.java ! test/jdk/sun/jvmstat/monitor/MonitoredVm/MonitorVmStartTerminate.java ! test/jdk/sun/management/jdp/DynamicLauncher.java ! test/jdk/sun/management/jdp/JdpDefaultsTest.java ! test/jdk/sun/management/jdp/JdpJmxRemoteDynamicPortTest.java ! test/jdk/sun/management/jdp/JdpOffTest.java ! test/jdk/sun/management/jdp/JdpSpecificAddressTest.java ! test/jdk/sun/management/jdp/PortAlreadyInUseTest.java ! test/jdk/sun/management/jmxremote/bootstrap/AbstractFilePermissionTest.java ! test/jdk/sun/management/jmxremote/bootstrap/CustomLauncherTest.java ! test/jdk/sun/management/jmxremote/bootstrap/JMXInterfaceBindingTest.java ! test/jdk/sun/management/jmxremote/bootstrap/LocalManagementTest.java ! test/jdk/sun/management/jmxremote/bootstrap/RmiRegistrySslTest.java ! test/jdk/sun/management/jmxremote/startstop/JMXStartStopTest.java ! test/jdk/sun/management/jmxremote/startstop/JMXStatusPerfCountersTest.java ! test/jdk/sun/management/jmxremote/startstop/JMXStatusTest.java ! test/jdk/sun/management/jmxremote/startstop/ManagementAgentJcmd.java ! test/jdk/sun/security/krb5/auto/tools/KinitConfPlusProps.java ! test/jdk/sun/security/ssl/SSLEngineImpl/SSLEngineKeyLimit.java ! test/jdk/sun/security/ssl/SSLSocketImpl/SSLSocketKeyLimit.java ! test/jdk/sun/security/tools/jarsigner/TsacertOptionTest.java ! test/jdk/sun/security/tools/jarsigner/Warning.java ! test/jdk/sun/security/tools/jarsigner/warnings/AliasNotInStoreTest.java ! test/jdk/sun/security/tools/jarsigner/warnings/BadExtendedKeyUsageTest.java ! test/jdk/sun/security/tools/jarsigner/warnings/BadKeyUsageTest.java ! test/jdk/sun/security/tools/jarsigner/warnings/BadNetscapeCertTypeTest.java ! test/jdk/sun/security/tools/jarsigner/warnings/ChainNotValidatedTest.java ! test/jdk/sun/security/tools/jarsigner/warnings/HasExpiredCertTest.java ! test/jdk/sun/security/tools/jarsigner/warnings/HasExpiringCertTest.java ! test/jdk/sun/security/tools/jarsigner/warnings/HasUnsignedEntryTest.java ! test/jdk/sun/security/tools/jarsigner/warnings/MultipleWarningsTest.java ! test/jdk/sun/security/tools/jarsigner/warnings/NoTimestampTest.java ! test/jdk/sun/security/tools/jarsigner/warnings/NotSignedByAliasTest.java ! test/jdk/sun/security/tools/jarsigner/warnings/NotYetValidCertTest.java ! test/jdk/sun/security/tools/jarsigner/warnings/Test.java ! test/jdk/sun/tools/jcmd/JcmdBase.java ! test/jdk/sun/tools/jcmd/TestJcmdDefaults.java ! test/jdk/sun/tools/jcmd/TestJcmdSanity.java ! test/jdk/sun/tools/jhsdb/BasicLauncherTest.java ! test/jdk/sun/tools/jhsdb/HeapDumpTest.java ! test/jdk/sun/tools/jinfo/BasicJInfoTest.java ! test/jdk/sun/tools/jmap/BasicJMapTest.java ! test/jdk/sun/tools/jps/JpsHelper.java ! test/jdk/sun/tools/jps/TestJpsSanity.java ! test/jdk/sun/tools/jstack/BasicJStackTest.java ! test/jdk/sun/tools/jstack/DeadlockDetectionTest.java ! test/jdk/sun/tools/jstat/JStatInterval.java ! test/jdk/sun/tools/jstatd/JstatdTest.java ! test/jdk/sun/tools/jstatd/TestJstatdUsage.java ! test/jdk/tools/jimage/JImageToolTest.java ! test/jdk/tools/jlink/basic/AllModulePath.java ! test/jdk/tools/jlink/basic/BasicTest.java ! test/jdk/tools/jlink/bindservices/BindServices.java ! test/jdk/tools/jlink/plugins/SystemModuleDescriptors/CompiledVersionTest.java ! test/jdk/tools/jlink/plugins/SystemModuleDescriptors/UserModuleTest.java ! test/jdk/tools/launcher/InfoStreams.java ! test/jdk/tools/launcher/modules/addexports/AddExportsTest.java ! test/jdk/tools/launcher/modules/addexports/AddExportsTestWarningError.java ! test/jdk/tools/launcher/modules/addexports/manifest/AddExportsAndOpensInManifest.java ! test/jdk/tools/launcher/modules/addmods/AddModsTest.java ! test/jdk/tools/launcher/modules/addreads/AddReadsTest.java ! test/jdk/tools/launcher/modules/addreads/AddReadsTestWarningError.java ! test/jdk/tools/launcher/modules/basic/BasicTest.java ! test/jdk/tools/launcher/modules/basic/InitErrors.java ! test/jdk/tools/launcher/modules/classpath/JavaClassPathTest.java ! test/jdk/tools/launcher/modules/describe/DescribeModuleTest.java ! test/jdk/tools/launcher/modules/dryrun/DryRunTest.java ! test/jdk/tools/launcher/modules/illegalaccess/IllegalAccessTest.java ! test/jdk/tools/launcher/modules/limitmods/LimitModsTest.java ! test/jdk/tools/launcher/modules/listmods/ListModsTest.java ! test/jdk/tools/launcher/modules/patch/basic/PatchTest.java ! test/jdk/tools/launcher/modules/patch/basic/PatchTestWarningError.java ! test/jdk/tools/launcher/modules/patch/systemmodules/PatchSystemModules.java ! test/jdk/tools/launcher/modules/showmoduleresolution/ShowModuleResolutionTest.java ! test/jdk/tools/launcher/modules/validate/ValidateModulesTest.java ! test/lib/jdk/test/lib/apps/LingeredApp.java ! test/lib/jdk/test/lib/dcmd/CommandExecutor.java ! test/lib/jdk/test/lib/process/OutputAnalyzer.java ! test/lib/jdk/test/lib/process/OutputBuffer.java ! test/lib/jdk/test/lib/process/ProcessTools.java ! test/lib/jdk/test/lib/process/StreamPumper.java Changeset: 5a1be00ea4f6 Author: erikj Date: 2018-09-07 14:54 -0700 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/5a1be00ea4f6 8210283: Support git as an SCM alternative in the build Reviewed-by: ihse, ehelin + .gitignore ! make/SourceRevision.gmk ! make/autoconf/basics.m4 ! make/autoconf/spec.gmk.in ! make/common/MakeBase.gmk Changeset: ddc976897c75 Author: ihse Date: 2018-09-10 09:58 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/ddc976897c75 8200609: Proper fix for mapfile removal for libjsig Reviewed-by: erikj, dholmes ! make/lib/Lib-java.base.gmk - make/mapfiles/libjsig/mapfile-vers-solaris ! src/java.base/unix/native/libjsig/jsig.c Changeset: 2fdfe34f7262 Author: ihse Date: 2018-09-10 09:59 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/2fdfe34f7262 8081858: make dist-clean does not delete all log files Reviewed-by: erikj ! make/Init.gmk ! make/Main.gmk Changeset: f7563db3ae1b Author: ihse Date: 2018-09-10 10:02 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/f7563db3ae1b 8056217: Remove awt_makecube.cpp Reviewed-by: erikj, serb - src/java.desktop/windows/native/common/awt_makecube.cpp Changeset: d058b410af0a Author: eosterlund Date: 2018-09-10 11:24 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/d058b410af0a 8210236: Prepare ciReceiverTypeData::translate_receiver_data_from for concurrent class unloading Reviewed-by: coleenp, roland ! src/hotspot/share/ci/ciMethodData.cpp Changeset: 72bdaf11dd6a Author: eosterlund Date: 2018-09-10 13:07 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/72bdaf11dd6a 8210233: Prepare Klass::is_loader_alive() for concurrent class unloading Reviewed-by: coleenp, pliden ! src/hotspot/share/classfile/classLoaderData.hpp ! src/hotspot/share/classfile/classLoaderHierarchyDCmd.cpp ! src/hotspot/share/oops/klass.hpp Changeset: a30461a359f5 Author: eosterlund Date: 2018-09-10 13:07 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/a30461a359f5 8210321: Create NO_KEEPALIVE CLD holder accessor Reviewed-by: coleenp, kbarrett ! src/hotspot/share/classfile/classLoaderData.cpp ! src/hotspot/share/classfile/classLoaderData.hpp ! src/hotspot/share/classfile/classLoaderData.inline.hpp Changeset: 9d494115eda4 Author: amlu Date: 2018-09-10 20:17 +0800 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/9d494115eda4 8209930: Refactor java/util/zip/ZipFile/deletetempjar.sh to plain java test Reviewed-by: alanb ! test/jdk/java/util/zip/ZipFile/DeleteTempJar.java + test/jdk/java/util/zip/ZipFile/DeleteTempJarTest.java - test/jdk/java/util/zip/ZipFile/deletetempjar.sh Changeset: 4e99f412148f Author: lucy Date: 2018-09-10 16:40 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/4e99f412148f 8210319: [s390]: Use of shift operators not covered by cpp standard Reviewed-by: mdoerr, goetz ! src/hotspot/cpu/s390/macroAssembler_s390.cpp Changeset: 1f70116be2df Author: mchung Date: 2018-09-10 12:48 -0700 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/1f70116be2df 8210502: jdeps does not handle properly on analyzing a mixture of MR JARs and non-MR JARs Reviewed-by: alanb ! src/jdk.jdeps/share/classes/com/sun/tools/jdeps/ClassFileReader.java ! test/langtools/tools/jdeps/MultiReleaseJar.java + test/langtools/tools/jdeps/foo/module-info.java Changeset: b8b0da4a5f49 Author: coleenp Date: 2018-09-10 16:33 -0400 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/b8b0da4a5f49 8208697: vmTestbase/metaspace/stressHierarchy/stressHierarchy012/TestDescription.java fails with OutOfMemoryError: Metaspace Summary: remove timeoutHandler class and let Stresser handle timeout, remove 30 threads filling metaspace, and remove related unused files. Reviewed-by: lfoltan, mseledtsov ! test/hotspot/jtreg/ProblemList.txt ! test/hotspot/jtreg/vmTestbase/metaspace/stressHierarchy/common/PerformChecksHelper.java ! test/hotspot/jtreg/vmTestbase/metaspace/stressHierarchy/common/StressHierarchyBaseClass.java ! test/hotspot/jtreg/vmTestbase/metaspace/stressHierarchy/stressHierarchy012/TestDescription.java ! test/hotspot/jtreg/vmTestbase/nsk/share/classload/GeneratingClassLoader.java - test/hotspot/jtreg/vmTestbase/nsk/share/test/timeoutwatchdog/TimeoutHandler.java - test/hotspot/jtreg/vmTestbase/nsk/share/test/timeoutwatchdog/TimeoutWatchdog.java - test/hotspot/jtreg/vmTestbase/vm/share/gc/TriggerUnloadingByFillingHeap.java ! test/hotspot/jtreg/vmTestbase/vm/share/gc/TriggerUnloadingByFillingMetaspace.java - test/hotspot/jtreg/vmTestbase/vm/share/vmstresser/CompileAndDeoptimize.java - test/hotspot/jtreg/vmTestbase/vm/share/vmstresser/MetaspaceStresser.java Changeset: 1e39953aaed8 Author: iignatyev Date: 2018-09-10 14:23 -0700 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/1e39953aaed8 8182404: remove jdk.testlibrary.JDKToolFinder and JDKToolLauncher Reviewed-by: amenkov, jcbeyler, alanb ! test/hotspot/jtreg/serviceability/sa/DeadlockDetectionTest.java ! test/jdk/java/lang/ClassLoader/getResource/GetResource.java ! test/jdk/java/lang/System/LoggerFinder/modules/Base.java ! test/jdk/java/lang/System/LoggerFinder/modules/JDKLoggerForImageTest.java ! test/jdk/java/lang/System/LoggerFinder/modules/JDKLoggerForJDKTest.java ! test/jdk/java/lang/System/LoggerFinder/modules/LoggerInImageTest.java ! test/jdk/java/lang/System/LoggerFinder/modules/NamedLoggerForImageTest.java ! test/jdk/java/lang/System/LoggerFinder/modules/NamedLoggerForJDKTest.java ! test/jdk/java/lang/System/LoggerFinder/modules/UnnamedLoggerForImageTest.java ! test/jdk/java/lang/System/LoggerFinder/modules/UnnamedLoggerForJDKTest.java ! test/jdk/java/lang/management/MemoryMXBean/LowMemoryTest.java ! test/jdk/java/lang/management/MemoryMXBean/RunUtil.java ! test/jdk/java/net/MulticastSocket/MultiDead.java ! test/jdk/java/net/spi/URLStreamHandlerProvider/Basic.java ! test/jdk/java/security/KeyStore/PKCS12/EntryProtectionTest.java ! test/jdk/java/security/KeyStore/PKCS12/KeytoolReaderP12Test.java ! test/jdk/java/security/KeyStore/PKCS12/KeytoolWriteP12Test.java ! test/jdk/java/security/KeyStore/PKCS12/MetadataEmptyTest.java ! test/jdk/java/security/KeyStore/PKCS12/MetadataStoreLoadTest.java ! test/jdk/java/security/KeyStore/PKCS12/StoreTrustedCertAPITest.java ! test/jdk/java/security/KeyStore/PKCS12/StoreTrustedCertKeytool.java ! test/jdk/java/security/KeyStore/PKCS12/Utils.java ! test/jdk/javax/management/mxbean/MXBeanWeirdParamTest.java ! test/jdk/javax/management/security/AuthorizationTest.java ! test/jdk/javax/management/security/SecurityTest.java - test/jdk/lib/testlibrary/jdk/testlibrary/JDKToolFinder.java - test/jdk/lib/testlibrary/jdk/testlibrary/JDKToolLauncher.java ! test/jdk/sun/management/jmxremote/startstop/ManagementAgentJcmd.java ! test/jdk/sun/security/tools/jarsigner/Warning.java ! test/jdk/sun/tools/jcmd/JcmdBase.java ! test/jdk/sun/tools/jhsdb/BasicLauncherTest.java ! test/jdk/sun/tools/jhsdb/HeapDumpTest.java ! test/jdk/sun/tools/jhsdb/heapconfig/TmtoolTestScenario.java ! test/jdk/sun/tools/jinfo/BasicJInfoTest.java ! test/jdk/sun/tools/jmap/BasicJMapTest.java ! test/jdk/sun/tools/jps/JpsHelper.java ! test/jdk/sun/tools/jstack/BasicJStackTest.java ! test/jdk/sun/tools/jstack/DeadlockDetectionTest.java ! test/jdk/sun/tools/jstat/JStatInterval.java ! test/jdk/sun/tools/jstat/jstatClassloadOutput1.sh ! test/jdk/sun/tools/jstatd/JstatdTest.java ! test/jdk/sun/tools/jstatd/TestJstatdUsage.java ! test/jdk/tools/jar/compat/CLICompatibility.java ! test/jdk/tools/jar/modularJar/Basic.java ! test/jdk/tools/launcher/modules/patch/systemmodules/PatchSystemModules.java Changeset: fd3b632801aa Author: jiangli Date: 2018-09-10 18:30 -0400 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/fd3b632801aa 8210515: [TESTBUG]CheckArchivedModuleApp.java needs to check if EnableJVMCI is set. Summary: System module objects are not archived when EnableJVMCI is set to true. Reviewed-by: iklam, ccheung ! test/hotspot/jtreg/ProblemList-graal.txt ! test/hotspot/jtreg/runtime/appcds/cacheObject/CheckArchivedModuleApp.java Changeset: 9d89c0835ac1 Author: dholmes Date: 2018-09-10 18:57 -0400 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/9d89c0835ac1 8210512: [Testbug] vmTestbase/nsk/jdi/ObjectReference/referringObjects/referringObjects002/referringObjects002.java fails with unexpected size of ClassLoaderReference.referringObjects Summary: Account for the self-reference that every class has in the constant pool Reviewed-by: sspitsyn, jcbeyler ! test/hotspot/jtreg/vmTestbase/nsk/jdi/ObjectReference/referringObjects/referringObjects002/referringObjects002.java Changeset: b83571bbc147 Author: kbarrett Date: 2018-09-10 19:18 -0400 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/b83571bbc147 8210511: TestSingleWriterSynchronizer can deadlock Summary: Check for safepoints in test loops. Reviewed-by: coleenp, eosterlund ! test/hotspot/gtest/utilities/test_singleWriterSynchronizer.cpp Changeset: f036f767708e Author: dlong Date: 2018-09-10 16:33 -0700 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/f036f767708e 8210434: [Graal] 8209301 prevents GitHub Graal from compiling with latest JDK Reviewed-by: dnsimon, kvn ! src/jdk.aot/share/classes/jdk.tools.jaotc/src/jdk/tools/jaotc/AOTCompiledClass.java ! src/jdk.internal.vm.ci/share/classes/jdk.vm.ci.hotspot/src/jdk/vm/ci/hotspot/HotSpotResolvedObjectType.java Changeset: fca6c9aca3e6 Author: weijun Date: 2018-09-11 08:48 +0800 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/fca6c9aca3e6 8205507: jdk/javax/xml/crypto/dsig/GenerationTests.java timed out Reviewed-by: mullan ! test/jdk/javax/xml/crypto/dsig/GenerationTests.java Changeset: 59de57e466ba Author: xyin Date: 2018-09-11 09:27 +0800 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/59de57e466ba 8209773: Refactor shell test javax/naming/module/basic.sh to java Reviewed-by: vtewari, alanb + test/jdk/javax/naming/module/RunBasic.java - test/jdk/javax/naming/module/basic.sh Changeset: 0dca9b29bf30 Author: tschatzl Date: 2018-09-11 09:13 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/0dca9b29bf30 8210463: Recalculate_used() always sets time taken in G1GCPhaseTimes Reviewed-by: phh, sjohanss ! src/hotspot/share/gc/g1/g1CollectedHeap.cpp Changeset: bbc7157ad9c5 Author: tschatzl Date: 2018-09-11 09:14 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/bbc7157ad9c5 8210467: Remove unused G1CollectedHeap::_max_heap_capacity Reviewed-by: sjohanss, phh ! src/hotspot/share/gc/g1/g1CollectedHeap.hpp Changeset: f912267934e0 Author: vtewari Date: 2018-09-11 17:48 +0530 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/f912267934e0 8205330: InitialDirContext ctor sometimes throws NPE if the server has sent a disconnection Reviewed-by: chegar, dfuchs ! src/java.naming/share/classes/com/sun/jndi/ldap/LdapClient.java Changeset: 49e1b21d9878 Author: hseigel Date: 2018-09-11 09:53 -0400 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/49e1b21d9878 8210470: Remove unused Verifier::verify() Verifier::Mode argument Summary: Remove the unused argument. Reviewed-by: coleenp, jiangli ! src/hotspot/share/classfile/verifier.cpp ! src/hotspot/share/classfile/verifier.hpp ! src/hotspot/share/oops/instanceKlass.cpp ! src/hotspot/share/oops/instanceKlass.hpp ! src/hotspot/share/prims/jvmtiRedefineClasses.cpp Changeset: 74dde8b66b7f Author: coleenp Date: 2018-09-11 09:42 -0400 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/74dde8b66b7f 8210422: runtime/modules/ModuleStress/ExportModuleStressTest.java - assertion failed: address not aligned: 0x00000008baadbabe Summary: CLDG_lock caused safepoint in inconsistent state Reviewed-by: lfoltan, eosterlund, kbarrett ! src/hotspot/share/classfile/classLoaderData.cpp ! src/hotspot/share/classfile/classLoaderData.inline.hpp ! src/hotspot/share/classfile/classLoaderStats.cpp ! src/hotspot/share/classfile/javaClasses.cpp ! src/hotspot/share/classfile/javaClasses.hpp ! src/hotspot/share/gc/parallel/psCompactionManager.cpp ! src/hotspot/share/jfr/periodic/jfrPeriodic.cpp ! src/hotspot/share/prims/jvmtiGetLoadedClasses.cpp ! src/hotspot/share/prims/whitebox.cpp Changeset: 543a3fb81c4c Author: jcbeyler Date: 2018-09-11 10:12 -0700 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/543a3fb81c4c 8210385: Clean up JNI_ENV_ARG and factorize the macros for vmTestbase/jvmti[A-N] tests Summary: Remove JNI_ENV and JVMTI_ENV macros for part of the jvmti tests Reviewed-by: amenkov, dholmes ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/Allocate/alloc001/alloc001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/ClassPrepare/classprep001/classprep001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/ClearBreakpoint/clrbrk001/clrbrk001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/ClearBreakpoint/clrbrk002/clrbrk002.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/ClearBreakpoint/clrbrk005/clrbrk005.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/ClearFieldAccessWatch/clrfldw001/clrfldw001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/ClearFieldAccessWatch/clrfldw002/clrfldw002.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/ClearFieldModificationWatch/clrfmodw001/clrfmodw001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/ClearFieldModificationWatch/clrfmodw002/clrfmodw002.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/CreateRawMonitor/crrawmon001/crrawmon001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/CreateRawMonitor/crrawmon002/crrawmon002.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/Deallocate/dealloc001/dealloc001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/DestroyRawMonitor/drrawmon001/drrawmon001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/DestroyRawMonitor/drrawmon003/drrawmon003.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/DestroyRawMonitor/drrawmon004/drrawmon004.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/Exception/exception001/exception001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/ExceptionCatch/excatch001/excatch001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/FieldAccess/fieldacc001/fieldacc001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/FieldAccess/fieldacc002/fieldacc002.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/FieldAccess/fieldacc003/fieldacc003.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/FieldAccess/fieldacc004/fieldacc004.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/FieldModification/fieldmod001/fieldmod001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/FieldModification/fieldmod002/fieldmod002.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/FramePop/framepop001/framepop001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/FramePop/framepop002/framepop002.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetJNIFunctionTable/getjniftab001/getjniftab001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetJNIFunctionTable/getjniftab002/getjniftab002.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/InterruptThread/intrpthrd002/intrpthrd002.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/InterruptThread/intrpthrd003/intrpthrd003.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/IsArrayClass/isarray004/isarray004.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/IsArrayClass/isarray005/isarray005.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/IsFieldSynthetic/isfldsin002/isfldsin002.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/IsFieldSynthetic/isfldsin003/isfldsin003.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/IsInterface/isintrf004/isintrf004.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/IsInterface/isintrf005/isintrf005.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/IsMethodNative/isnative001/isnative001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/IsMethodNative/isnative002/isnative002.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/IsMethodSynthetic/issynth001/issynth001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/IsMethodSynthetic/issynth002/issynth002.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/MethodEntry/mentry001/mentry001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/MethodEntry/mentry002/mentry002.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/MethodExit/mexit001/mexit001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/MethodExit/mexit002/mexit002.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/NotifyFramePop/nframepop001/nframepop001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/NotifyFramePop/nframepop002/nframepop002.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/NotifyFramePop/nframepop003/nframepop003.cpp Changeset: 0fa33d4e721e Author: pchilanomate Date: 2018-09-11 13:34 -0400 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/0fa33d4e721e 8210300: runtime/MemberName/MemberNameLeak.java fails with RuntimeException Summary: Added flag -XX:+UnlockDiagnosticVMOptions to tests failing in product builds Reviewed-by: dcubed, dholmes ! test/hotspot/jtreg/runtime/Dictionary/CleanProtectionDomain.java ! test/hotspot/jtreg/runtime/MemberName/MemberNameLeak.java Changeset: 9012aeaf993b Author: iklam Date: 2018-09-05 18:14 -0700 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/9012aeaf993b 8210289: ArchivedKlassSubGraphInfoRecord is incomplete Reviewed-by: jiangli, ccheung ! src/hotspot/share/memory/heapShared.cpp ! src/hotspot/share/memory/heapShared.hpp ! src/hotspot/share/memory/metaspaceShared.cpp Changeset: ebd5b1ad971a Author: mikael Date: 2018-09-11 13:54 -0700 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/ebd5b1ad971a 8210514: Obsolete SyncVerbose Reviewed-by: coleenp, dcubed ! src/hotspot/share/prims/jvmtiRawMonitor.cpp ! src/hotspot/share/runtime/arguments.cpp ! src/hotspot/share/runtime/globals.hpp ! src/hotspot/share/runtime/objectMonitor.cpp ! src/hotspot/share/runtime/objectMonitor.hpp ! src/hotspot/share/runtime/synchronizer.cpp ! src/hotspot/share/runtime/thread.cpp Changeset: 4ffb0a33f265 Author: igerasim Date: 2018-09-11 14:51 -0700 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/4ffb0a33f265 8210347: Combine subsequent calls to Set.contains() and Set.add() Reviewed-by: smarks, bpb ! src/java.base/share/classes/java/lang/ModuleLayer.java ! src/java.base/share/classes/java/lang/module/Configuration.java ! src/java.base/share/classes/java/util/ServiceLoader.java ! src/java.base/share/classes/java/util/stream/DistinctOps.java Changeset: 2368e8e9cec6 Author: mikael Date: 2018-09-11 20:37 -0700 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/2368e8e9cec6 8210513: Obsolete SyncFlags Reviewed-by: coleenp, dcubed, dholmes ! src/hotspot/share/runtime/arguments.cpp ! src/hotspot/share/runtime/globals.hpp ! src/hotspot/share/runtime/objectMonitor.cpp Changeset: 8123901bc3d1 Author: rkennke Date: 2018-08-31 16:28 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/8123901bc3d1 8210187: Explicit barriers for C2 Reviewed-by: eosterlund, shade, roland, pliden ! src/hotspot/share/gc/shared/c2/barrierSetC2.hpp ! src/hotspot/share/opto/graphKit.cpp ! src/hotspot/share/opto/graphKit.hpp ! src/hotspot/share/opto/library_call.cpp ! src/hotspot/share/opto/stringopts.cpp Changeset: be8fe2a352be Author: thartmann Date: 2018-09-12 09:23 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/be8fe2a352be 8210387: C2 compilation fails with "assert(node->_last_del == _last) failed: must have deleted the edge just produced" Summary: Refresh iterator and start from the beginning while there is progress when removing dead regions. Reviewed-by: kvn ! src/hotspot/share/opto/phaseX.cpp + test/hotspot/jtreg/compiler/c2/TestUnreachableRegionDuringCCP.java Changeset: 8c7198cac800 Author: adinn Date: 2018-09-12 09:12 +0100 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/8c7198cac800 8210578: AArch64: Invalid encoding for fmlsvs instruction Summary: sub_op code for fmslvs should be 1 not 0 Reviewed-by: roland ! src/hotspot/cpu/aarch64/assembler_aarch64.hpp Changeset: 469ab7c92a32 Author: tschatzl Date: 2018-09-12 11:08 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/469ab7c92a32 8209843: Optimize oop scan closure closures wrt to reference processing in G1 Summary: Set more appropriate reference iteration mode for G1 closures. Reviewed-by: kbarrett, pliden ! src/hotspot/share/gc/g1/g1OopClosures.hpp ! src/hotspot/share/oops/instanceRefKlass.inline.hpp Changeset: a15a61e954c0 Author: ihse Date: 2018-09-12 12:23 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/a15a61e954c0 8059019: sdp.conf.template should be copied on linux too Reviewed-by: alanb, erikj ! make/copy/Copy-java.base.gmk Changeset: 355bd23b46e5 Author: mdoerr Date: 2018-09-12 12:54 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/355bd23b46e5 8210497: [PPC64] Vector registers not saved across safepoint Reviewed-by: goetz, lucy ! src/hotspot/cpu/ppc/ppc.ad ! src/hotspot/cpu/ppc/register_ppc.cpp ! src/hotspot/cpu/ppc/register_ppc.hpp ! src/hotspot/cpu/ppc/sharedRuntime_ppc.cpp ! src/hotspot/cpu/ppc/vmreg_ppc.inline.hpp Changeset: 3aafd7015d87 Author: mhorie Date: 2018-09-12 14:24 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/3aafd7015d87 8208171: PPC64: Enrich SLP support Reviewed-by: mdoerr, gromero ! src/hotspot/cpu/ppc/assembler_ppc.hpp ! src/hotspot/cpu/ppc/assembler_ppc.inline.hpp ! src/hotspot/cpu/ppc/ppc.ad ! src/hotspot/cpu/ppc/register_definitions_ppc.cpp ! src/hotspot/cpu/ppc/register_ppc.cpp ! src/hotspot/cpu/ppc/register_ppc.hpp Changeset: f0f5d23449d3 Author: erikj Date: 2018-09-12 08:46 -0700 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/f0f5d23449d3 8210519: build/releaseFile/CheckSource.java failed additional sources found Reviewed-by: mikael, dholmes, ihse ! test/jdk/build/releaseFile/CheckSource.java Changeset: e71660c01da7 Author: rkennke Date: 2018-09-13 10:19 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/e71660c01da7 Merge ! .hgtags ! make/langtools/intellij/template/runConfigurations/javac.xml ! make/langtools/intellij/template/runConfigurations/javadoc.xml ! make/langtools/intellij/template/runConfigurations/javap.xml ! make/langtools/intellij/template/runConfigurations/jshell.xml ! make/langtools/intellij/template/runConfigurations/sjavac.xml - make/mapfiles/libjsig/mapfile-vers-solaris ! src/hotspot/cpu/aarch64/aarch64.ad ! src/hotspot/cpu/x86/macroAssembler_x86.cpp ! src/hotspot/share/classfile/classLoaderData.cpp ! src/hotspot/share/classfile/classLoaderData.hpp ! src/hotspot/share/classfile/javaClasses.cpp ! src/hotspot/share/classfile/javaClasses.hpp ! src/hotspot/share/gc/g1/g1CollectedHeap.hpp ! src/hotspot/share/gc/shared/c2/barrierSetC2.hpp ! src/hotspot/share/gc/shenandoah/c2/shenandoahBarrierSetC2.cpp ! src/hotspot/share/gc/shenandoah/c2/shenandoahBarrierSetC2.hpp ! src/hotspot/share/oops/instanceRefKlass.inline.hpp ! src/hotspot/share/opto/graphKit.cpp ! src/hotspot/share/opto/graphKit.hpp ! src/hotspot/share/opto/library_call.cpp ! src/hotspot/share/opto/phaseX.cpp ! src/hotspot/share/opto/stringopts.cpp ! src/hotspot/share/opto/subnode.cpp ! src/hotspot/share/prims/whitebox.cpp ! src/hotspot/share/runtime/synchronizer.cpp ! src/hotspot/share/runtime/thread.cpp - src/java.desktop/windows/native/common/awt_makecube.cpp ! test/hotspot/jtreg/ProblemList.txt ! test/hotspot/jtreg/runtime/MemberName/MemberNameLeak.java ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/Allocate/alloc001/alloc001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/ClassPrepare/classprep001/classprep001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/ClearBreakpoint/clrbrk001/clrbrk001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/ClearBreakpoint/clrbrk002/clrbrk002.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/ClearBreakpoint/clrbrk005/clrbrk005.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/ClearFieldAccessWatch/clrfldw001/clrfldw001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/ClearFieldAccessWatch/clrfldw002/clrfldw002.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/ClearFieldModificationWatch/clrfmodw001/clrfmodw001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/ClearFieldModificationWatch/clrfmodw002/clrfmodw002.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/CreateRawMonitor/crrawmon001/crrawmon001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/CreateRawMonitor/crrawmon002/crrawmon002.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/Deallocate/dealloc001/dealloc001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/DestroyRawMonitor/drrawmon001/drrawmon001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/DestroyRawMonitor/drrawmon003/drrawmon003.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/DestroyRawMonitor/drrawmon004/drrawmon004.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/Exception/exception001/exception001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/ExceptionCatch/excatch001/excatch001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/FieldAccess/fieldacc001/fieldacc001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/FieldAccess/fieldacc002/fieldacc002.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/FieldAccess/fieldacc003/fieldacc003.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/FieldAccess/fieldacc004/fieldacc004.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/FieldModification/fieldmod001/fieldmod001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/FieldModification/fieldmod002/fieldmod002.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/FramePop/framepop001/framepop001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/FramePop/framepop002/framepop002.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetAllThreads/allthr001/allthr001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetAllThreads/allthr002/allthr002.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetArgumentsSize/argsize001/argsize001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetArgumentsSize/argsize002/argsize002.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetAvailableProcessors/getavailproc001/getavailproc001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetBytecodes/bytecodes001/bytecodes001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetBytecodes/bytecodes002/bytecodes002.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetBytecodes/bytecodes003/bytecodes003.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetCapabilities/getcaps001/getcaps001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetCapabilities/getcaps002/getcaps002.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetClassFields/getclfld005/getclfld005.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetClassFields/getclfld006/getclfld006.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetClassFields/getclfld007/getclfld007.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetClassLoader/getclsldr001/getclsldr001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetClassLoader/getclsldr002/getclsldr002.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetClassLoader/getclsldr003/getclsldr003.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetClassLoaderClasses/clsldrclss001/clsldrclss001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetClassLoaderClasses/clsldrclss002/clsldrclss002.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetClassMethods/getclmthd005/getclmthd005.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetClassMethods/getclmthd006/getclmthd006.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetClassMethods/getclmthd007/getclmthd007.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetClassModifiers/getclmdf004/getclmdf004.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetClassModifiers/getclmdf005/getclmdf005.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetClassModifiers/getclmdf006/getclmdf006.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetClassModifiers/getclmdf007/getclmdf007.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetClassSignature/getclsig004/getclsig004.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetClassSignature/getclsig005/getclsig005.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetClassSignature/getclsig006/getclsig006.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetClassStatus/getclstat005/getclstat005.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetClassStatus/getclstat006/getclstat006.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetClassStatus/getclstat007/getclstat007.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetCurrentContendedMonitor/contmon001/contmon001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetCurrentContendedMonitor/contmon002/contmon002.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetCurrentContendedMonitor/contmon003/contmon003.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetCurrentThreadCpuTime/curthrcputime001/curthrcputime001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetCurrentThreadCpuTimerInfo/curthrtimerinfo001/curthrtimerinfo001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetEnv/GetEnv001/GetEnv001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetEnvironmentLocalStorage/getenvstor001/getenvstor001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetErrorName/geterrname001/geterrname001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetErrorName/geterrname002/geterrname002.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetExtensionEvents/extevents001/extevents001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetExtensionFunctions/extfuncs001/extfuncs001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetFieldDeclaringClass/getfldecl001/getfldecl001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetFieldDeclaringClass/getfldecl002/getfldecl002.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetFieldDeclaringClass/getfldecl004/getfldecl004.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetFieldModifiers/getfldmdf003/getfldmdf003.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetFieldModifiers/getfldmdf004/getfldmdf004.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetFieldName/getfldnm003/getfldnm003.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetFieldName/getfldnm004/getfldnm004.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetFieldName/getfldnm005/getfldnm005.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetFrameCount/framecnt001/framecnt001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetFrameCount/framecnt002/framecnt002.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetFrameCount/framecnt003/framecnt003.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetFrameLocation/frameloc001/frameloc001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetFrameLocation/frameloc002/frameloc002.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetFrameLocation/frameloc003/frameloc003.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetImplementedInterfaces/getintrf005/getintrf005.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetImplementedInterfaces/getintrf006/getintrf006.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetImplementedInterfaces/getintrf007/getintrf007.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetJLocationFormat/getjlocfmt001/getjlocfmt001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetJLocationFormat/getjlocfmt002/getjlocfmt002.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetJNIFunctionTable/getjniftab001/getjniftab001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetJNIFunctionTable/getjniftab002/getjniftab002.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetLineNumberTable/linetab001/linetab001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetLineNumberTable/linetab002/linetab002.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetLineNumberTable/linetab003/linetab003.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetLoadedClasses/loadedclss001/loadedclss001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetLoadedClasses/loadedclss002/loadedclss002.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetLocalVariable/getlocal001/getlocal001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetLocalVariable/getlocal002/getlocal002.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetLocalVariableTable/localtab001/localtab001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetLocalVariableTable/localtab002/localtab002.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetLocalVariableTable/localtab003/localtab003.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetLocalVariableTable/localtab004/localtab004.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetLocalVariableTable/localtab005/localtab005.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetMaxLocals/maxloc001/maxloc001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetMaxLocals/maxloc002/maxloc002.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetMethodDeclaringClass/declcls001/declcls001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetMethodDeclaringClass/declcls002/declcls002.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetMethodDeclaringClass/declcls003/declcls003.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetMethodLocation/methloc001/methloc001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetMethodLocation/methloc002/methloc002.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetMethodModifiers/methmod001/methmod001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetMethodModifiers/methmod002/methmod002.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetMethodName/methname001/methname001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetMethodName/methname002/methname002.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetMethodName/methname003/methname003.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetObjectHashCode/objhashcode001/objhashcode001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetObjectMonitorUsage/objmonusage001/objmonusage001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetObjectMonitorUsage/objmonusage002/objmonusage002.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetObjectMonitorUsage/objmonusage003/objmonusage003.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetObjectMonitorUsage/objmonusage004/objmonusage004.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetObjectMonitorUsage/objmonusage005/objmonusage005.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetObjectMonitorUsage/objmonusage006/objmonusage006.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetObjectSize/objsize001/objsize001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetObjectsWithTags/objwithtags001/objwithtags001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetOwnedMonitorInfo/ownmoninf001/ownmoninf001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetOwnedMonitorInfo/ownmoninf002/ownmoninf002.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetOwnedMonitorInfo/ownmoninf003/ownmoninf003.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetPhase/getphase001/getphase001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetPhase/getphase002/getphase002.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetPotentialCapabilities/getpotcaps001/getpotcaps001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetSourceDebugExtension/srcdebugex001/srcdebugex001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetSourceDebugExtension/srcdebugex002/srcdebugex002.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetSourceDebugExtension/srcdebugex003/srcdebugex003.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetSourceFileName/getsrcfn004/getsrcfn004.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetSourceFileName/getsrcfn005/getsrcfn005.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetSourceFileName/getsrcfn006/getsrcfn006.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetStackTrace/getstacktr001/getstacktr001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetStackTrace/getstacktr002/getstacktr002.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetStackTrace/getstacktr003/getstacktr003.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetStackTrace/getstacktr004/getstacktr004.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetStackTrace/getstacktr005/getstacktr005.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetStackTrace/getstacktr006/getstacktr006.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetStackTrace/getstacktr007/getstacktr007.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetStackTrace/getstacktr008/getstacktr008.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetStackTrace/getstacktr009/getstacktr009.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetSystemProperties/getsysprops001/getsysprops001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetSystemProperties/getsysprops002/getsysprops002.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetSystemProperty/getsysprop001/getsysprop001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetSystemProperty/getsysprop002/getsysprop002.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetTag/gettag001/gettag001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetThreadCpuTime/thrcputime001/thrcputime001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetThreadCpuTime/thrcputime002/thrcputime002.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetThreadCpuTimerInfo/thrtimerinfo001/thrtimerinfo001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetThreadGroupChildren/getthrdgrpchld001/getthrdgrpchld001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetThreadGroupInfo/thrgrpinfo001/thrgrpinfo001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetThreadGroupInfo/thrgrpinfo002/thrgrpinfo002.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetThreadInfo/thrinfo001/thrinfo001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetThreadInfo/thrinfo002/thrinfo002.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetThreadLocalStorage/getthrdstor001/getthrdstor001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetThreadState/thrstat001/thrstat001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetThreadState/thrstat002/thrstat002.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetThreadState/thrstat003/thrstat003.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetThreadState/thrstat004/thrstat004.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetThreadState/thrstat005/thrstat005.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetTime/gettime001/gettime001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetTimerInfo/timerinfo001/timerinfo001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetTopThreadGroups/topthrgrp001/topthrgrp001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetTopThreadGroups/topthrgrp002/topthrgrp002.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetVersionNumber/getvern001/getvern001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/InterruptThread/intrpthrd002/intrpthrd002.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/InterruptThread/intrpthrd003/intrpthrd003.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/IsArrayClass/isarray004/isarray004.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/IsArrayClass/isarray005/isarray005.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/IsFieldSynthetic/isfldsin002/isfldsin002.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/IsFieldSynthetic/isfldsin003/isfldsin003.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/IsInterface/isintrf004/isintrf004.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/IsInterface/isintrf005/isintrf005.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/IsMethodNative/isnative001/isnative001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/IsMethodNative/isnative002/isnative002.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/IsMethodSynthetic/issynth001/issynth001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/IsMethodSynthetic/issynth002/issynth002.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/MethodEntry/mentry001/mentry001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/MethodEntry/mentry002/mentry002.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/MethodExit/mexit001/mexit001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/MethodExit/mexit002/mexit002.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/NotifyFramePop/nframepop001/nframepop001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/NotifyFramePop/nframepop002/nframepop002.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/NotifyFramePop/nframepop003/nframepop003.cpp - test/hotspot/jtreg/vmTestbase/nsk/share/test/timeoutwatchdog/TimeoutHandler.java - test/hotspot/jtreg/vmTestbase/nsk/share/test/timeoutwatchdog/TimeoutWatchdog.java - test/hotspot/jtreg/vmTestbase/vm/share/gc/TriggerUnloadingByFillingHeap.java - test/hotspot/jtreg/vmTestbase/vm/share/vmstresser/CompileAndDeoptimize.java - test/hotspot/jtreg/vmTestbase/vm/share/vmstresser/MetaspaceStresser.java - test/jdk/java/util/zip/ZipFile/deletetempjar.sh - test/jdk/javax/naming/module/basic.sh - test/jdk/lib/testlibrary/jdk/testlibrary/JDKToolFinder.java - test/jdk/lib/testlibrary/jdk/testlibrary/JDKToolLauncher.java - test/jdk/lib/testlibrary/jdk/testlibrary/OutputAnalyzer.java - test/jdk/lib/testlibrary/jdk/testlibrary/OutputBuffer.java - test/jdk/lib/testlibrary/jdk/testlibrary/ProcessTools.java - test/jdk/lib/testlibrary/jdk/testlibrary/StreamPumper.java ! test/jdk/sun/tools/jcmd/JcmdBase.java From shade at redhat.com Thu Sep 13 09:46:58 2018 From: shade at redhat.com (Aleksey Shipilev) Date: Thu, 13 Sep 2018 11:46:58 +0200 Subject: RFR: Single marking bitmap and bitmap cleaning refactoring Message-ID: <83a7c205-5917-7e56-155d-2358bdd6a7b6@redhat.com> http://cr.openjdk.java.net/~shade/shenandoah/single-mark-bitmap/webrev.01/ This includes two logically separate changes that are still better to come together. 1. Single marking bitmap We have wondered multiple times recently if we actually need two bitmaps: "next" bitmap and "complete" bitmap. It looks like we do not, and we can save about 1.5% of heap space hoarded by the second bitmap. There are two major reasons why would you'd like to have two bitmaps. First, the separation of incomplete (next) and complete bitmaps to isolate bugs, where we mistakenly assume the bitmap is complete mid-marking. This might as well be achieved by tracking the "completeness" flag, and rewriting the accessors to bitmap with complete_marking_ctx (asserting), and marking_ctx (non-asserting). Second, the bitmap resets: we maintain "complete" bitmap, while cleaning up "next" bitmap after the cycle. This helps to have the clean bitmap before starting the cycle, and having complete marking available for us otherwise. We can avoid the whole thing by carrying complete bitmap at all times after the cycle, and only resetting in before the cycle starts. (This might also improve temporal locality of bitmap accesses, but I am not holding my breath). It looks that rewiring the bitmaps this way makes traversal cleanups much more generic. In fact, we don't have to have traversal-special bitmap resets anymore. It also simplifies asserts, error reporting, and internal profiling code. 2. Refactor bitmap cleanup Current TAMS machinery is heavily interconnected with bitmap cleanups. For example, on many paths we resist dropping the TAMS before bitmap cleanups, because bitmap cleanup would "optimize" and only clear bitmaps up to TAMS. This can be simplified if we directly track the top-bitmap pointer, which describes what bitmap parts might be dirty, and use that on cleanup path. This way, we can drop all the mess about cleaning up bitmaps on region recycling for Traversal. The change additionally verifies that bitmaps are indeed cleared properly. Motivational GC log on Serial: # Before GC(7) Pause Init Traversal 1.065ms GC(7) Concurrent traversal 87104M->87611M(102400M) 1.052ms GC(7) Pause Final Traversal 0.387ms GC(7) Concurrent cleanup 87611M->2267M(102400M) 16.964ms // <--- ! # After GC(7) Concurrent reset 87095M->87095M(102400M) 0.812ms GC(7) Pause Init Traversal 1.090ms GC(7) Concurrent traversal 87147M->87555M(102400M) 0.956ms GC(7) Pause Final Traversal 0.363ms GC(7) Concurrent cleanup 87555M->2055M(102400M) 0.344ms Testing: tier3_gc_shenandoah {fastdebug|release}, eyeballing gc logs Thanks, -Aleksey From rkennke at redhat.com Thu Sep 13 10:11:08 2018 From: rkennke at redhat.com (Roman Kennke) Date: Thu, 13 Sep 2018 12:11:08 +0200 Subject: RFR: Single marking bitmap and bitmap cleaning refactoring In-Reply-To: <83a7c205-5917-7e56-155d-2358bdd6a7b6@redhat.com> References: <83a7c205-5917-7e56-155d-2358bdd6a7b6@redhat.com> Message-ID: This is cool! IIRC, one more major reason to keep complete and next bitmap is the ability to scan the heap. This is especially important for 'external' i.e. non-GC heap scans like heapdump code. However, I believe we made this non-scanning and traversing so it should be immune to this. All GC-internal heapscans are under our control and we don't need to do that while bitmap is incomplete, so yeah, the patch should be good. It's also good in that it saves us space later, if we ever want to implement concurrent weakref processing, which requires a second bitmap (heh). Without this patch this would mean 4 bitmaps. So yeah, please go! Thanks, Roman > http://cr.openjdk.java.net/~shade/shenandoah/single-mark-bitmap/webrev.01/ > > This includes two logically separate changes that are still better to come together. > > 1. Single marking bitmap > > We have wondered multiple times recently if we actually need two bitmaps: "next" > bitmap and "complete" bitmap. It looks like we do not, and we can save about > 1.5% of heap space hoarded by the second bitmap. > > There are two major reasons why would you'd like to have two bitmaps. > > First, the separation of incomplete (next) and complete bitmaps to isolate bugs, > where we mistakenly assume the bitmap is complete mid-marking. This might as > well be achieved by tracking the "completeness" flag, and rewriting the > accessors to bitmap with complete_marking_ctx (asserting), and marking_ctx > (non-asserting). > > Second, the bitmap resets: we maintain "complete" bitmap, while cleaning up > "next" bitmap after the cycle. This helps to have the clean bitmap before > starting the cycle, and having complete marking available for us otherwise. We > can avoid the whole thing by carrying complete bitmap at all times after the > cycle, and only resetting in before the cycle starts. (This might also improve > temporal locality of bitmap accesses, but I am not holding my breath). > > It looks that rewiring the bitmaps this way makes traversal cleanups much more > generic. In fact, we don't have to have traversal-special bitmap resets anymore. > It also simplifies asserts, error reporting, and internal profiling code. > > > 2. Refactor bitmap cleanup > > Current TAMS machinery is heavily interconnected with bitmap cleanups. For > example, on many paths we resist dropping the TAMS before bitmap cleanups, > because bitmap cleanup would "optimize" and only clear bitmaps up to TAMS. This > can be simplified if we directly track the top-bitmap pointer, which describes > what bitmap parts might be dirty, and use that on cleanup path. > > This way, we can drop all the mess about cleaning up bitmaps on region recycling > for Traversal. The change additionally verifies that bitmaps are indeed cleared > properly. > > Motivational GC log on Serial: > > # Before > GC(7) Pause Init Traversal 1.065ms > GC(7) Concurrent traversal 87104M->87611M(102400M) 1.052ms > GC(7) Pause Final Traversal 0.387ms > GC(7) Concurrent cleanup 87611M->2267M(102400M) 16.964ms // <--- ! > > # After > GC(7) Concurrent reset 87095M->87095M(102400M) 0.812ms > GC(7) Pause Init Traversal 1.090ms > GC(7) Concurrent traversal 87147M->87555M(102400M) 0.956ms > GC(7) Pause Final Traversal 0.363ms > GC(7) Concurrent cleanup 87555M->2055M(102400M) 0.344ms > > Testing: tier3_gc_shenandoah {fastdebug|release}, eyeballing gc logs > > Thanks, > -Aleksey > From shade at redhat.com Thu Sep 13 11:15:02 2018 From: shade at redhat.com (Aleksey Shipilev) Date: Thu, 13 Sep 2018 13:15:02 +0200 Subject: RFR: Fix x86_32 build Message-ID: <697a8dec-1e26-a37f-b121-a9fb37319c76@redhat.com> There is a simple signature mismatch on !_LP64 path this breaks x86_32 build for sh/jdk. Fixed like this: > diff -r e71660c01da7 src/hotspot/cpu/x86/gc/shenandoah/shenandoahBarrierSetAssembler_x86.cpp > --- a/src/hotspot/cpu/x86/gc/shenandoah/shenandoahBarrierSetAssembler_x86.cpp Thu Sep 13 10:19:54 2018 +0200 > +++ b/src/hotspot/cpu/x86/gc/shenandoah/shenandoahBarrierSetAssembler_x86.cpp Thu Sep 13 13:12:45 2018 +0200 > @@ -595,5 +595,5 @@ > // due to concurrent evacuation. > #ifndef _LP64 > -void ShenandoahBarrierSetAssembler::cmpxchg_oop(MacroAssembler* masm, DecoratorSet decorators, > +void ShenandoahBarrierSetAssembler::cmpxchg_oop(MacroAssembler* masm, > Register res, Address addr, Register oldval, Register newval, > bool exchange, bool encode, Register tmp1, Register tmp2) { Testing: x86_32 cross-build Thanks, -Aleksey From rkennke at redhat.com Thu Sep 13 11:16:35 2018 From: rkennke at redhat.com (Roman Kennke) Date: Thu, 13 Sep 2018 13:16:35 +0200 Subject: RFR: Fix x86_32 build In-Reply-To: <697a8dec-1e26-a37f-b121-a9fb37319c76@redhat.com> References: <697a8dec-1e26-a37f-b121-a9fb37319c76@redhat.com> Message-ID: <89555769-c3d3-5765-41da-13ea55be7e15@redhat.com> Yes, thanks! Roman > There is a simple signature mismatch on !_LP64 path this breaks x86_32 build for > sh/jdk. Fixed like this: > >> diff -r e71660c01da7 src/hotspot/cpu/x86/gc/shenandoah/shenandoahBarrierSetAssembler_x86.cpp >> --- a/src/hotspot/cpu/x86/gc/shenandoah/shenandoahBarrierSetAssembler_x86.cpp Thu Sep 13 10:19:54 2018 +0200 >> +++ b/src/hotspot/cpu/x86/gc/shenandoah/shenandoahBarrierSetAssembler_x86.cpp Thu Sep 13 13:12:45 2018 +0200 >> @@ -595,5 +595,5 @@ >> // due to concurrent evacuation. >> #ifndef _LP64 >> -void ShenandoahBarrierSetAssembler::cmpxchg_oop(MacroAssembler* masm, DecoratorSet decorators, >> +void ShenandoahBarrierSetAssembler::cmpxchg_oop(MacroAssembler* masm, >> Register res, Address addr, Register oldval, Register newval, >> bool exchange, bool encode, Register tmp1, Register tmp2) { > > Testing: x86_32 cross-build > > Thanks, > -Aleksey > From shade at redhat.com Thu Sep 13 11:19:40 2018 From: shade at redhat.com (shade at redhat.com) Date: Thu, 13 Sep 2018 11:19:40 +0000 Subject: hg: shenandoah/jdk: Fix x86_32 build Message-ID: <201809131119.w8DBJeGC025532@aojmv0008.oracle.com> Changeset: 57c99e69d759 Author: shade Date: 2018-09-13 13:17 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/57c99e69d759 Fix x86_32 build ! src/hotspot/cpu/x86/gc/shenandoah/shenandoahBarrierSetAssembler_x86.cpp From rkennke at redhat.com Thu Sep 13 12:08:06 2018 From: rkennke at redhat.com (Roman Kennke) Date: Thu, 13 Sep 2018 14:08:06 +0200 Subject: RFR: Fix C2 intrinsics barriers Message-ID: <8c8202ae-45cc-b382-ebd1-c11a67bc3e05@redhat.com> The latest merge threw off some intrinsics: - one arraycopy requires write- instead of read-barrier (upstream bug, but needs to be fixed ASAP, will also fix upstream) - two other instances seem to require explicit barriers even though make_unsafe_addr() should already insert them. Possible that the verifier is too strict here. Re-inserted those explicit barriers with comment. We should check what's up there http://cr.openjdk.java.net/~rkennke/fix-instrinsics-barriers/webrev.00/ Testing: specjvm+ -XX:+ShenandoahVerifyOptoBarriers which failed before now passes Ok? Roman From shade at redhat.com Thu Sep 13 12:11:53 2018 From: shade at redhat.com (Aleksey Shipilev) Date: Thu, 13 Sep 2018 14:11:53 +0200 Subject: RFR: Fix C2 intrinsics barriers In-Reply-To: <8c8202ae-45cc-b382-ebd1-c11a67bc3e05@redhat.com> References: <8c8202ae-45cc-b382-ebd1-c11a67bc3e05@redhat.com> Message-ID: On 09/13/2018 02:08 PM, Roman Kennke wrote: > The latest merge threw off some intrinsics: > - one arraycopy requires write- instead of read-barrier (upstream bug, > but needs to be fixed ASAP, will also fix upstream) > - two other instances seem to require explicit barriers even though > make_unsafe_addr() should already insert them. Possible that the > verifier is too strict here. Re-inserted those explicit barriers with > comment. We should check what's up there > > http://cr.openjdk.java.net/~rkennke/fix-instrinsics-barriers/webrev.00/ Looks good to me. It is probably better to cluster access_resolve blocks together, and new-line them, so we know what the comment is about. Like this: // TODO: We shouldn't strictly need explicit barriers here because // make_unsafe_address() would insert them? However, it blows up // jmh-specjvm with -XX:+ShenandoahVerifyOptoBarriers. src_ptr = access_resolve(src_ptr, ACCESS_READ); dst_ptr = access_resolve(dst_ptr, ACCESS_WRITE); Node* src = make_unsafe_address(src_ptr, src_off, false); Node* dst = make_unsafe_address(dst_ptr, dst_off, true); Do this before the push. Thanks, -Aleksey From roman at kennke.org Thu Sep 13 12:17:41 2018 From: roman at kennke.org (roman at kennke.org) Date: Thu, 13 Sep 2018 12:17:41 +0000 Subject: hg: shenandoah/jdk: Fix C2 intrinsics barriers Message-ID: <201809131217.w8DCHf2Y014913@aojmv0008.oracle.com> Changeset: f01ae119b2fc Author: rkennke Date: 2018-09-13 14:19 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/f01ae119b2fc Fix C2 intrinsics barriers ! src/hotspot/share/opto/library_call.cpp From rwestrel at redhat.com Thu Sep 13 12:20:32 2018 From: rwestrel at redhat.com (Roland Westrelin) Date: Thu, 13 Sep 2018 14:20:32 +0200 Subject: RFR: Fix C2 intrinsics barriers In-Reply-To: <8c8202ae-45cc-b382-ebd1-c11a67bc3e05@redhat.com> References: <8c8202ae-45cc-b382-ebd1-c11a67bc3e05@redhat.com> Message-ID: > - two other instances seem to require explicit barriers even though > make_unsafe_addr() should already insert them. Possible that the > verifier is too strict here. Re-inserted those explicit barriers with > comment. We should check what's up there make_unsafe_addr() only adds barriers for cases where we can't say whether the access is on heap or not. Otherwise access_load/access_store take care of the barriers. For these 2 intrinsics, there's only a runtime call. Roland. From rkennke at redhat.com Thu Sep 13 12:24:41 2018 From: rkennke at redhat.com (Roman Kennke) Date: Thu, 13 Sep 2018 14:24:41 +0200 Subject: RFR: Fix C2 intrinsics barriers In-Reply-To: References: <8c8202ae-45cc-b382-ebd1-c11a67bc3e05@redhat.com> Message-ID: <73cc2d7d-1008-a709-8ecf-d48c715da9c7@redhat.com> > >> - two other instances seem to require explicit barriers even though >> make_unsafe_addr() should already insert them. Possible that the >> verifier is too strict here. Re-inserted those explicit barriers with >> comment. We should check what's up there > > make_unsafe_addr() only adds barriers for cases where we can't say > whether the access is on heap or not. Otherwise access_load/access_store > take care of the barriers. For these 2 intrinsics, there's only a > runtime call. > > Roland. > Right! So this is a bit stupid still: if it can't say if it's on heap or not, it would add barriers 2x. It would probably not actually do that because barrier optimization elides chained barriers. But it's still not perfectly clean ;-) I'll upstream those missing barriers then, together with some others, the messed-up arraycopy barrier and the obj-equals barriers. Thanks, Roman From rkennke at redhat.com Thu Sep 13 15:22:44 2018 From: rkennke at redhat.com (Roman Kennke) Date: Thu, 13 Sep 2018 17:22:44 +0200 Subject: RFR: Cleanup code in C2 related to G1/Sh pre-barrier handling In-Reply-To: References: <0a7579c3-54ee-cd56-9603-b233c9ee1551@redhat.com> Message-ID: <69c8840b-ec87-a749-a286-136cfb53c238@redhat.com> >> http://cr.openjdk.java.net/~rkennke/cleanup-c2-pre-barrier/webrev.00/ > > There are things in there that should not be removed. > > The pre barriers for stores to non escaping allocation can be > eliminated. To locate the pre barrier the call node has an extra edge to > the address of the store. If the store is eliminated for some reason > then we don't need to keep the address computation alive. That's what: > > CallLeafNode::Ideal() > the code in Compile::remove_useless_nodes() > the code in kill_dead_code() > the code in PhaseIterGVN::remove_globally_dead_node() > the code in Node::set_req_X() > > take care of. For kill_dead_code() and > PhaseIterGVN::remove_globally_dead_node(), enqueue_useful_gc_barrier() > could cover that. > > Also the code in macro.cpp is required for scalarization to work. Ok, thanks for the explanations! Let's keep it more conservatively then: - Move all the Shenandoah related property queries to ShenandoahBarrierSetC2 - Introduce BarrierSetC2::ideal_node() interface, as suggested by Erik ?sterlund in the object-equals thread on hotspot-gc-dev and put it to use in CallLeafNode::Ideal() to cover that Leave everything else alone, except renaming. I also added a bunch of TODOs in relevant places. http://cr.openjdk.java.net/~rkennke/cleanup-c2-pre-barrier/webrev.00/ Better? Roman From roman at kennke.org Thu Sep 13 18:12:33 2018 From: roman at kennke.org (roman at kennke.org) Date: Thu, 13 Sep 2018 18:12:33 +0000 Subject: hg: shenandoah/jdk: Added tag shenandoah-jdk-12+11 for changeset f01ae119b2fc Message-ID: <201809131812.w8DICXXC005521@aojmv0008.oracle.com> Changeset: 8c01bb99ef43 Author: rkennke Date: 2018-09-13 20:13 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/8c01bb99ef43 Added tag shenandoah-jdk-12+11 for changeset f01ae119b2fc ! .hgtags From rkennke at redhat.com Thu Sep 13 19:34:31 2018 From: rkennke at redhat.com (Roman Kennke) Date: Thu, 13 Sep 2018 21:34:31 +0200 Subject: RFR: Use BSC2::enqueue_useful_gc_barrier() to enqueue Shenandoah barriers Message-ID: This moves the enqueuing of Shenandoah barrier (users) to go via the BarrierSetC2::enqueue_useful_gc_barrier() interface. One little gotcha was that the interface takes the worklist, and we want to all all *users* of the node, via PhaseIterGVN::add_users_to_worklist(). I changed the interface (to be upstreamed) to take the PhaseIterGVN* instead of the actual worklist. This seems more flexible. Close to the code that I touched I see: } else if (dead->Opcode() == Op_ShenandoahWBMemProj) { assert(i == 0 && in->Opcode() == Op_ShenandoahWriteBarrier, "broken graph"); _worklist.push(in); } I wonder if this can be handled in SBSC2::enqueue_useful_gc_barrier() as well. Problem is we don't get to see 'dead' but only the actual WB. Can we enqueue this wholesale, without checking for 'dead == ShenandoahWBMemProj' ? Or can we use it somehow else? I left it alone for now. http://cr.openjdk.java.net/~rkennke/enqueue-barriers/webrev.00/ Testing: tier3_gc_shenandoah Ok? From shade at redhat.com Thu Sep 13 20:25:57 2018 From: shade at redhat.com (Aleksey Shipilev) Date: Thu, 13 Sep 2018 22:25:57 +0200 Subject: RFR: Bind WeakProcessor properly: simpler closures, asserts, parallelism Message-ID: <0ad2cb46-abfe-897f-59fb-ab0f8d435eff@redhat.com> http://cr.openjdk.java.net/~shade/shenandoah/weak-processor-bind/webrev.01/ This patch addresses the leftover issues in WeakProcessor handling with Shenandoah. It depends on bitmaps refactoring, because it uses new asserts. Testing: tier3_gc_shenandoah (fastdebug), tier1_gc_shenandoah (release) Thanks, -Aleksey From rkennke at redhat.com Thu Sep 13 20:30:47 2018 From: rkennke at redhat.com (Roman Kennke) Date: Thu, 13 Sep 2018 22:30:47 +0200 Subject: RFR: Bind WeakProcessor properly: simpler closures, asserts, parallelism In-Reply-To: <0ad2cb46-abfe-897f-59fb-ab0f8d435eff@redhat.com> References: <0ad2cb46-abfe-897f-59fb-ab0f8d435eff@redhat.com> Message-ID: Looks good! Thanks! Roman > http://cr.openjdk.java.net/~shade/shenandoah/weak-processor-bind/webrev.01/ > > This patch addresses the leftover issues in WeakProcessor handling with > Shenandoah. It depends on bitmaps refactoring, because it uses new asserts. > > Testing: tier3_gc_shenandoah (fastdebug), tier1_gc_shenandoah (release) > > Thanks, > -Aleksey > From shade at redhat.com Thu Sep 13 21:30:03 2018 From: shade at redhat.com (shade at redhat.com) Date: Thu, 13 Sep 2018 21:30:03 +0000 Subject: hg: shenandoah/jdk: 3 new changesets Message-ID: <201809132130.w8DLU3iW007917@aojmv0008.oracle.com> Changeset: 348b6cbfc84d Author: shade Date: 2018-09-13 23:29 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/348b6cbfc84d Single marking bitmap ! src/hotspot/share/gc/shenandoah/shenandoahAsserts.cpp ! src/hotspot/share/gc/shenandoah/shenandoahAsserts.hpp ! src/hotspot/share/gc/shenandoah/shenandoahBarrierSet.cpp ! src/hotspot/share/gc/shenandoah/shenandoahConcurrentMark.cpp ! src/hotspot/share/gc/shenandoah/shenandoahConcurrentMark.inline.hpp ! src/hotspot/share/gc/shenandoah/shenandoahControlThread.cpp ! src/hotspot/share/gc/shenandoah/shenandoahFreeSet.cpp ! src/hotspot/share/gc/shenandoah/shenandoahHeap.cpp ! src/hotspot/share/gc/shenandoah/shenandoahHeap.hpp ! src/hotspot/share/gc/shenandoah/shenandoahHeap.inline.hpp ! src/hotspot/share/gc/shenandoah/shenandoahHeapRegion.cpp ! src/hotspot/share/gc/shenandoah/shenandoahMarkCompact.cpp ! src/hotspot/share/gc/shenandoah/shenandoahMarkingContext.cpp ! src/hotspot/share/gc/shenandoah/shenandoahMarkingContext.hpp ! src/hotspot/share/gc/shenandoah/shenandoahOopClosures.hpp ! src/hotspot/share/gc/shenandoah/shenandoahPhaseTimings.cpp ! src/hotspot/share/gc/shenandoah/shenandoahPhaseTimings.hpp ! src/hotspot/share/gc/shenandoah/shenandoahStringDedup.cpp ! src/hotspot/share/gc/shenandoah/shenandoahTraversalGC.cpp ! src/hotspot/share/gc/shenandoah/shenandoahVerifier.cpp ! src/hotspot/share/gc/shenandoah/shenandoahVerifier.hpp ! src/hotspot/share/gc/shenandoah/shenandoahWorkerPolicy.cpp ! src/hotspot/share/gc/shenandoah/shenandoahWorkerPolicy.hpp Changeset: b356f8252e05 Author: shade Date: 2018-09-13 23:29 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/b356f8252e05 Refactor bitmap cleaning ! src/hotspot/share/gc/shenandoah/heuristics/shenandoahTraversalHeuristics.cpp ! src/hotspot/share/gc/shenandoah/shenandoahFreeSet.cpp ! src/hotspot/share/gc/shenandoah/shenandoahHeap.cpp ! src/hotspot/share/gc/shenandoah/shenandoahHeap.inline.hpp ! src/hotspot/share/gc/shenandoah/shenandoahHeapRegion.cpp ! src/hotspot/share/gc/shenandoah/shenandoahHeapRegion.hpp ! src/hotspot/share/gc/shenandoah/shenandoahHeuristics.cpp ! src/hotspot/share/gc/shenandoah/shenandoahMarkCompact.cpp ! src/hotspot/share/gc/shenandoah/shenandoahMarkingContext.cpp ! src/hotspot/share/gc/shenandoah/shenandoahMarkingContext.hpp ! src/hotspot/share/gc/shenandoah/shenandoahTraversalGC.cpp ! src/hotspot/share/gc/shenandoah/shenandoahVerifier.cpp ! src/hotspot/share/gc/shenandoah/shenandoah_globals.hpp Changeset: 81be44d27da3 Author: shade Date: 2018-09-13 23:29 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/81be44d27da3 Bind WeakProcessor properly: simpler closures, asserts, parallelism ! src/hotspot/share/gc/shenandoah/shenandoahConcurrentMark.cpp ! src/hotspot/share/gc/shenandoah/shenandoahTraversalGC.cpp From rkennke at redhat.com Thu Sep 13 21:58:31 2018 From: rkennke at redhat.com (Roman Kennke) Date: Thu, 13 Sep 2018 23:58:31 +0200 Subject: RFR: Single marking bitmap and bitmap cleaning refactoring In-Reply-To: <83a7c205-5917-7e56-155d-2358bdd6a7b6@redhat.com> References: <83a7c205-5917-7e56-155d-2358bdd6a7b6@redhat.com> Message-ID: With this patch, I believe we can remove the code changes to markBitMap.* and bitMap.* and the related testing code that deals with copying bitmap pieces around? Roman > http://cr.openjdk.java.net/~shade/shenandoah/single-mark-bitmap/webrev.01/ > > This includes two logically separate changes that are still better to come together. > > 1. Single marking bitmap > > We have wondered multiple times recently if we actually need two bitmaps: "next" > bitmap and "complete" bitmap. It looks like we do not, and we can save about > 1.5% of heap space hoarded by the second bitmap. > > There are two major reasons why would you'd like to have two bitmaps. > > First, the separation of incomplete (next) and complete bitmaps to isolate bugs, > where we mistakenly assume the bitmap is complete mid-marking. This might as > well be achieved by tracking the "completeness" flag, and rewriting the > accessors to bitmap with complete_marking_ctx (asserting), and marking_ctx > (non-asserting). > > Second, the bitmap resets: we maintain "complete" bitmap, while cleaning up > "next" bitmap after the cycle. This helps to have the clean bitmap before > starting the cycle, and having complete marking available for us otherwise. We > can avoid the whole thing by carrying complete bitmap at all times after the > cycle, and only resetting in before the cycle starts. (This might also improve > temporal locality of bitmap accesses, but I am not holding my breath). > > It looks that rewiring the bitmaps this way makes traversal cleanups much more > generic. In fact, we don't have to have traversal-special bitmap resets anymore. > It also simplifies asserts, error reporting, and internal profiling code. > > > 2. Refactor bitmap cleanup > > Current TAMS machinery is heavily interconnected with bitmap cleanups. For > example, on many paths we resist dropping the TAMS before bitmap cleanups, > because bitmap cleanup would "optimize" and only clear bitmaps up to TAMS. This > can be simplified if we directly track the top-bitmap pointer, which describes > what bitmap parts might be dirty, and use that on cleanup path. > > This way, we can drop all the mess about cleaning up bitmaps on region recycling > for Traversal. The change additionally verifies that bitmaps are indeed cleared > properly. > > Motivational GC log on Serial: > > # Before > GC(7) Pause Init Traversal 1.065ms > GC(7) Concurrent traversal 87104M->87611M(102400M) 1.052ms > GC(7) Pause Final Traversal 0.387ms > GC(7) Concurrent cleanup 87611M->2267M(102400M) 16.964ms // <--- ! > > # After > GC(7) Concurrent reset 87095M->87095M(102400M) 0.812ms > GC(7) Pause Init Traversal 1.090ms > GC(7) Concurrent traversal 87147M->87555M(102400M) 0.956ms > GC(7) Pause Final Traversal 0.363ms > GC(7) Concurrent cleanup 87555M->2055M(102400M) 0.344ms > > Testing: tier3_gc_shenandoah {fastdebug|release}, eyeballing gc logs > > Thanks, > -Aleksey > From rkennke at redhat.com Thu Sep 13 22:06:12 2018 From: rkennke at redhat.com (Roman Kennke) Date: Fri, 14 Sep 2018 00:06:12 +0200 Subject: FastSyncRoots and monitor deflation question Message-ID: <7946dfd4-c704-33a9-41ae-d6ed053e3d8e@redhat.com> I just checked some code around monitor handling in Shenandoah. I see this looks odd: if (ShenandoahFastSyncRoots && MonitorInUseLists) { if (_process_strong_tasks->try_claim_task(SHENANDOAH_RP_PS_ObjectSynchronizer_oops_do)) { ObjectSynchronizer::oops_do(strong_roots); } } else { while(_om_iterator.parallel_oops_do(strong_roots)); } ShenandoahFastSyncRoot is true by default, but it turns on the *single-threaded* path? Is that intentional? If this is really better than the parallel stuff, then maybe remove the parallel stuff? I also see this stuff: experimental(bool, ShenandoahMergeSafepointCleanup, false, \ "Do safepoint cleanup piggy-backed on thread scans") \ \ experimental(uint, ParallelSafepointCleanupThreads, 0, \ "Number of parallel threads used for safepoint cleanup") \ \ I.e. our improvements (if they are) to safepoint cleanup are turned off by default, and thus probably totally untested. Do we know if it actually helps? Would it be worth turning on by default so that it gets testing? Otherwise remove/revert the corresponding code changes and wait/work-on concurrent monitor deflation? Roman From rkennke at redhat.com Fri Sep 14 05:50:20 2018 From: rkennke at redhat.com (Roman Kennke) Date: Fri, 14 Sep 2018 07:50:20 +0200 Subject: FastSyncRoots and monitor deflation question In-Reply-To: <7946dfd4-c704-33a9-41ae-d6ed053e3d8e@redhat.com> References: <7946dfd4-c704-33a9-41ae-d6ed053e3d8e@redhat.com> Message-ID: > I see this looks odd: > > if (ShenandoahFastSyncRoots && MonitorInUseLists) { > if > (_process_strong_tasks->try_claim_task(SHENANDOAH_RP_PS_ObjectSynchronizer_oops_do)) > { > ObjectSynchronizer::oops_do(strong_roots); > } > } else { > while(_om_iterator.parallel_oops_do(strong_roots)); > } > > ShenandoahFastSyncRoot is true by default, but it turns on the > *single-threaded* path? Is that intentional? If this is really better > than the parallel stuff, then maybe remove the parallel stuff? I think I can answer this question. If MonitorInUseList is on (it's on by default), the monitors are kept in thread-local-lists and scanned while scanning thread stacks. This parallelizes naturally, and we don't need the parallel monitor iterator. If that is the intention, the condition is wrong though and should be 'if (!ShenandoahFastSyncRoots || MonitorInUseLists)'. Also MonitorInUseLists is deprecated and not using thread-local-monitors is not really useful. So maybe scratch the whole parallel OM iterator stuff? Seems like unnecessary, unused and untested upstreaming burden. Also...: > I also see this stuff: > > experimental(bool, ShenandoahMergeSafepointCleanup, false, > \ > "Do safepoint cleanup piggy-backed on thread scans") > \ > > \ > experimental(uint, ParallelSafepointCleanupThreads, 0, > \ > "Number of parallel threads used for safepoint cleanup") > \ > > \ > > > I.e. our improvements (if they are) to safepoint cleanup are turned off > by default, and thus probably totally untested. Do we know if it > actually helps? Would it be worth turning on by default so that it gets > testing? Otherwise remove/revert the corresponding code changes and > wait/work-on concurrent monitor deflation? ParallelSafepointCleanupThreads is something that is basically upstreamed, at least the API, and used by other collectors (G1 and Z). We may just want to enable it. About piggy-backing SP cleanup, I dunno if it's useful. It seems mostly untested though, and also introduces some significant upstreaming burden in very hairy code (synchronizer...). Maybe remove that stuff and wait for conc monitor deflation? Roman From shade at redhat.com Fri Sep 14 06:29:25 2018 From: shade at redhat.com (Aleksey Shipilev) Date: Fri, 14 Sep 2018 08:29:25 +0200 Subject: RFR: Single marking bitmap and bitmap cleaning refactoring In-Reply-To: References: <83a7c205-5917-7e56-155d-2358bdd6a7b6@redhat.com> Message-ID: On 09/13/2018 11:58 PM, Roman Kennke wrote: > With this patch, I believe we can remove the code changes to > markBitMap.* and bitMap.* and the related testing code that deals with > copying bitmap pieces around? Yes, I believe so. I have the patch that cleans this up. -Aleksey From shade at redhat.com Fri Sep 14 06:50:31 2018 From: shade at redhat.com (Aleksey Shipilev) Date: Fri, 14 Sep 2018 08:50:31 +0200 Subject: RFR: Cleanup unused bitmap methods Message-ID: <9d93ab8a-de18-33ac-42e5-852d632c8eba@redhat.com> http://cr.openjdk.java.net/~shade/shenandoah/cleanups-markbitmap/webrev.01/ These became unused after bitmap cleanups. Testing: tier3_gc_shenandoah -Aleksey From rkennke at redhat.com Fri Sep 14 07:13:53 2018 From: rkennke at redhat.com (Roman Kennke) Date: Fri, 14 Sep 2018 09:13:53 +0200 Subject: RFR: Cleanup unused bitmap methods In-Reply-To: <9d93ab8a-de18-33ac-42e5-852d632c8eba@redhat.com> References: <9d93ab8a-de18-33ac-42e5-852d632c8eba@redhat.com> Message-ID: <13de5e85-98e9-f113-20b3-45d0d78e5ec9@redhat.com> > http://cr.openjdk.java.net/~shade/shenandoah/cleanups-markbitmap/webrev.01/ > > These became unused after bitmap cleanups. > > Testing: tier3_gc_shenandoah > > -Aleksey > Yep, very good, thanks! Roman From shade at redhat.com Fri Sep 14 07:15:59 2018 From: shade at redhat.com (shade at redhat.com) Date: Fri, 14 Sep 2018 07:15:59 +0000 Subject: hg: shenandoah/jdk: Cleanup unused bitmap methods Message-ID: <201809140715.w8E7FxgI012956@aojmv0008.oracle.com> Changeset: 1131d5e63172 Author: shade Date: 2018-09-14 08:23 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/1131d5e63172 Cleanup unused bitmap methods ! src/hotspot/share/gc/shared/markBitMap.cpp ! src/hotspot/share/gc/shared/markBitMap.hpp ! src/hotspot/share/gc/shenandoah/shenandoahHeap.cpp ! src/hotspot/share/gc/shenandoah/shenandoahVerifier.cpp ! src/hotspot/share/utilities/bitMap.cpp ! src/hotspot/share/utilities/bitMap.hpp - test/hotspot/gtest/utilities/test_bitMap_copy.cpp From rkennke at redhat.com Fri Sep 14 08:06:34 2018 From: rkennke at redhat.com (Roman Kennke) Date: Fri, 14 Sep 2018 10:06:34 +0200 Subject: FastSyncRoots and monitor deflation question In-Reply-To: References: <7946dfd4-c704-33a9-41ae-d6ed053e3d8e@redhat.com> Message-ID: > Also...: > >> I also see this stuff: >> >> experimental(bool, ShenandoahMergeSafepointCleanup, false, >> \ >> "Do safepoint cleanup piggy-backed on thread scans") >> \ >> >> \ >> experimental(uint, ParallelSafepointCleanupThreads, 0, >> \ >> "Number of parallel threads used for safepoint cleanup") >> \ >> >> \ >> >> >> I.e. our improvements (if they are) to safepoint cleanup are turned off >> by default, and thus probably totally untested. Do we know if it >> actually helps? Would it be worth turning on by default so that it gets >> testing? Otherwise remove/revert the corresponding code changes and >> wait/work-on concurrent monitor deflation? > > ParallelSafepointCleanupThreads is something that is basically > upstreamed, at least the API, and used by other collectors (G1 and Z). > We may just want to enable it. > > About piggy-backing SP cleanup, I dunno if it's useful. It seems mostly > untested though, and also introduces some significant upstreaming burden > in very hairy code (synchronizer...). Maybe remove that stuff and wait > for conc monitor deflation? And sure enough, this stuff crashes when enabled (+ShenandoahMergeSafepointCleanup). Not sure if it ever worked stable. I also posted a note on hotspot-runtime-dev and hotspot-gc-dev to see if there is interest in getting something like this upstreamed: http://mail.openjdk.java.net/pipermail/hotspot-gc-dev/2018-September/023259.html If not, I suggest to drop that stuff. Roman From rkennke at redhat.com Fri Sep 14 13:12:12 2018 From: rkennke at redhat.com (Roman Kennke) Date: Fri, 14 Sep 2018 15:12:12 +0200 Subject: RFR: Use BSC2::enqueue_useful_gc_barrier() to enqueue Shenandoah barriers In-Reply-To: References: Message-ID: <1df8e86c-b334-a1c4-074b-f4939f3ff2ed@redhat.com> The webrev contained another change. Please look at this one: http://cr.openjdk.java.net/~rkennke/enqueue-barriers/webrev.01/ Thanks, Roman > This moves the enqueuing of Shenandoah barrier (users) to go via the > BarrierSetC2::enqueue_useful_gc_barrier() interface. > > One little gotcha was that the interface takes the worklist, and we want > to all all *users* of the node, via > PhaseIterGVN::add_users_to_worklist(). I changed the interface (to be > upstreamed) to take the PhaseIterGVN* instead of the actual worklist. > This seems more flexible. > > Close to the code that I touched I see: > > } else if (dead->Opcode() == Op_ShenandoahWBMemProj) { > assert(i == 0 && in->Opcode() == > Op_ShenandoahWriteBarrier, "broken graph"); > _worklist.push(in); > } > > I wonder if this can be handled in SBSC2::enqueue_useful_gc_barrier() as > well. Problem is we don't get to see 'dead' but only the actual WB. Can > we enqueue this wholesale, without checking for 'dead == > ShenandoahWBMemProj' ? Or can we use it somehow else? > > I left it alone for now. > > http://cr.openjdk.java.net/~rkennke/enqueue-barriers/webrev.00/ > > Testing: tier3_gc_shenandoah > > Ok? > From rkennke at redhat.com Fri Sep 14 13:17:51 2018 From: rkennke at redhat.com (Roman Kennke) Date: Fri, 14 Sep 2018 15:17:51 +0200 Subject: RFR: Fix and enable parallel safepoint workers Message-ID: <931eb5a8-43e1-dcd0-6943-624f52cd11e6@redhat.com> We do have an implementation of SH::get_safepoint_workers() but it is broken: - the workers don't get their thread local data setup correctly, which is needed for evacs (e.g. via oopDesc::cas_set_mark(..) ) - the workers must not identify themselves as GC workers, otherwise OOM-evac protocol assumes that WBs are not needed. I implemented this by narrowing the condition in write-barrier to is_GC_task_thread() which should identify only actual GC workers, but not other threads like the safepoint workers. - I also propose to enable it by default. ZGC and G1 do it now, and not doing it basically guarantees this code to rot. I lowish number of threads seems to give the best bang for the buck. http://cr.openjdk.java.net/~rkennke/par-sp-workers/webrev.00/ Testing: tier3_gc_shenandoah OK? Roman From shade at redhat.com Fri Sep 14 15:03:58 2018 From: shade at redhat.com (Aleksey Shipilev) Date: Fri, 14 Sep 2018 17:03:58 +0200 Subject: RFR: Fix and enable parallel safepoint workers In-Reply-To: <931eb5a8-43e1-dcd0-6943-624f52cd11e6@redhat.com> References: <931eb5a8-43e1-dcd0-6943-624f52cd11e6@redhat.com> Message-ID: <04376e48-9811-4713-11f9-fe17dfc390fd@redhat.com> On 09/14/2018 03:17 PM, Roman Kennke wrote: > We do have an implementation of SH::get_safepoint_workers() but it is > broken: > - the workers don't get their thread local data setup correctly, which > is needed for evacs (e.g. via oopDesc::cas_set_mark(..) ) > - the workers must not identify themselves as GC workers, otherwise > OOM-evac protocol assumes that WBs are not needed. I implemented this by > narrowing the condition in write-barrier to is_GC_task_thread() which > should identify only actual GC workers, but not other threads like the > safepoint workers. > > - I also propose to enable it by default. ZGC and G1 do it now, and not > doing it basically guarantees this code to rot. I lowish number of > threads seems to give the best bang for the buck. > > http://cr.openjdk.java.net/~rkennke/par-sp-workers/webrev.00/ > > Testing: tier3_gc_shenandoah > > OK? Kinda OK. I wonder why doesn't it blow up the assert here? static void initialize_gclab(Thread* thread) { assert (thread->is_Java_thread() || thread->is_Worker_thread(), "Only Java and GC worker threads are allowed to get GCLABs"); data(thread)->_gclab = new PLAB(PLAB::min_size()); data(thread)->_gclab_size = 0; } -Aleksey From rkennke at redhat.com Fri Sep 14 15:06:33 2018 From: rkennke at redhat.com (Roman Kennke) Date: Fri, 14 Sep 2018 17:06:33 +0200 Subject: RFR: Fix and enable parallel safepoint workers In-Reply-To: <04376e48-9811-4713-11f9-fe17dfc390fd@redhat.com> References: <931eb5a8-43e1-dcd0-6943-624f52cd11e6@redhat.com> <04376e48-9811-4713-11f9-fe17dfc390fd@redhat.com> Message-ID: Am 14.09.2018 um 17:03 schrieb Aleksey Shipilev: > On 09/14/2018 03:17 PM, Roman Kennke wrote: >> We do have an implementation of SH::get_safepoint_workers() but it is >> broken: >> - the workers don't get their thread local data setup correctly, which >> is needed for evacs (e.g. via oopDesc::cas_set_mark(..) ) >> - the workers must not identify themselves as GC workers, otherwise >> OOM-evac protocol assumes that WBs are not needed. I implemented this by >> narrowing the condition in write-barrier to is_GC_task_thread() which >> should identify only actual GC workers, but not other threads like the >> safepoint workers. >> >> - I also propose to enable it by default. ZGC and G1 do it now, and not >> doing it basically guarantees this code to rot. I lowish number of >> threads seems to give the best bang for the buck. >> >> http://cr.openjdk.java.net/~rkennke/par-sp-workers/webrev.00/ >> >> Testing: tier3_gc_shenandoah >> >> OK? > > Kinda OK. I wonder why doesn't it blow up the assert here? > > static void initialize_gclab(Thread* thread) { > assert (thread->is_Java_thread() || thread->is_Worker_thread(), "Only Java > and GC worker threads are allowed to get GCLABs"); > data(thread)->_gclab = new PLAB(PLAB::min_size()); > data(thread)->_gclab_size = 0; > } > Because those safepoint workers are worker threads. Roman From shade at redhat.com Fri Sep 14 15:07:34 2018 From: shade at redhat.com (Aleksey Shipilev) Date: Fri, 14 Sep 2018 17:07:34 +0200 Subject: RFR: Fix and enable parallel safepoint workers In-Reply-To: References: <931eb5a8-43e1-dcd0-6943-624f52cd11e6@redhat.com> <04376e48-9811-4713-11f9-fe17dfc390fd@redhat.com> Message-ID: <5551b6a1-322d-cbfd-f301-8b7d8f5939ae@redhat.com> On 09/14/2018 05:06 PM, Roman Kennke wrote: > Am 14.09.2018 um 17:03 schrieb Aleksey Shipilev: >> On 09/14/2018 03:17 PM, Roman Kennke wrote: >>> We do have an implementation of SH::get_safepoint_workers() but it is >>> broken: >>> - the workers don't get their thread local data setup correctly, which >>> is needed for evacs (e.g. via oopDesc::cas_set_mark(..) ) >>> - the workers must not identify themselves as GC workers, otherwise >>> OOM-evac protocol assumes that WBs are not needed. I implemented this by >>> narrowing the condition in write-barrier to is_GC_task_thread() which >>> should identify only actual GC workers, but not other threads like the >>> safepoint workers. >>> >>> - I also propose to enable it by default. ZGC and G1 do it now, and not >>> doing it basically guarantees this code to rot. I lowish number of >>> threads seems to give the best bang for the buck. >>> >>> http://cr.openjdk.java.net/~rkennke/par-sp-workers/webrev.00/ >>> >>> Testing: tier3_gc_shenandoah >>> >>> OK? >> >> Kinda OK. I wonder why doesn't it blow up the assert here? >> >> static void initialize_gclab(Thread* thread) { >> assert (thread->is_Java_thread() || thread->is_Worker_thread(), "Only Java >> and GC worker threads are allowed to get GCLABs"); >> data(thread)->_gclab = new PLAB(PLAB::min_size()); >> data(thread)->_gclab_size = 0; >> } >> > > Because those safepoint workers are worker threads. Ah. Okay then. -Aleksey From rwestrel at redhat.com Fri Sep 14 15:25:06 2018 From: rwestrel at redhat.com (Roland Westrelin) Date: Fri, 14 Sep 2018 17:25:06 +0200 Subject: RFR: Cleanup code in C2 related to G1/Sh pre-barrier handling In-Reply-To: <69c8840b-ec87-a749-a286-136cfb53c238@redhat.com> References: <0a7579c3-54ee-cd56-9603-b233c9ee1551@redhat.com> <69c8840b-ec87-a749-a286-136cfb53c238@redhat.com> Message-ID: > http://cr.openjdk.java.net/~rkennke/cleanup-c2-pre-barrier/webrev.00/ webrev.01, right? > Better? Yes. Roland. From roman at kennke.org Fri Sep 14 15:47:58 2018 From: roman at kennke.org (roman at kennke.org) Date: Fri, 14 Sep 2018 15:47:58 +0000 Subject: hg: shenandoah/jdk: 2 new changesets Message-ID: <201809141547.w8EFlwjN021579@aojmv0008.oracle.com> Changeset: cb8722fd6027 Author: rkennke Date: 2018-09-14 17:49 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/cb8722fd6027 Cleanup code in C2 related to G1/Sh pre-barrier handling ! src/hotspot/share/gc/shared/c2/barrierSetC2.hpp ! src/hotspot/share/gc/shenandoah/c2/shenandoahBarrierSetC2.cpp ! src/hotspot/share/gc/shenandoah/c2/shenandoahBarrierSetC2.hpp ! src/hotspot/share/gc/shenandoah/c2/shenandoahSupport.cpp ! src/hotspot/share/opto/callnode.cpp ! src/hotspot/share/opto/callnode.hpp ! src/hotspot/share/opto/cfgnode.hpp ! src/hotspot/share/opto/compile.cpp ! src/hotspot/share/opto/ifnode.cpp ! src/hotspot/share/opto/macro.cpp ! src/hotspot/share/opto/memnode.hpp ! src/hotspot/share/opto/node.cpp ! src/hotspot/share/opto/node.hpp ! src/hotspot/share/opto/phaseX.cpp Changeset: 1908fa6750d5 Author: rkennke Date: 2018-09-14 17:49 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/1908fa6750d5 Fix and enable parallel safepoint workers ! src/hotspot/share/gc/shenandoah/shenandoahBarrierSet.cpp ! src/hotspot/share/gc/shenandoah/shenandoahHeap.cpp ! src/hotspot/share/gc/shenandoah/shenandoah_globals.hpp From rkennke at redhat.com Fri Sep 14 15:57:55 2018 From: rkennke at redhat.com (Roman Kennke) Date: Fri, 14 Sep 2018 17:57:55 +0200 Subject: RFR: Streamline write-barrier-prologue (C2 part) In-Reply-To: References: <2f9309e6-0b6d-02dc-344c-54f2f00f976d@redhat.com> Message-ID: <2e320eeb-6a9f-98ba-87a5-7f1808de9504@redhat.com> Hi Roland, finally I get back to this. :-) >> - it usually loads+checks gc-state 2x back-to-back (null-check is >> usually known statically) > > Isn't loading 2x the gc state necessary if we want it to fold into the > heap stable test instruction? The first test is the 'broad' heap-stable-test. Our hope is that this one can be folded with other (close-by) heap-stable-tests, and thus generates significant barrier-free-paths. The 2nd test (evac-in-progress) is there to distinguish the evac-phase from other phases. With this proposed change, we don't need that 2nd test because it's implied by the o != rb(o) test, which does not require any additional load. >> from cheapest to most expensive: >> - null-check: cheapest: nothing is loaded. Also, usually elided, and if >> not, might fold with other nullchecks on same object > > I don't think it will fold that late in the optimization process. By > putting the null check first, happy path style optimizations are made > harder. Does it really matter that null check is first? I guess not. >> - Only 1 region and related phis used for the whole branching stuff > > As I remember the 2 regions were there to help happy path style > optimizations. Ok. This revision: - switches null-check with heap-stable-test, such that heap-stable test remains outer-most test. - reinstates the outer heap-stable-regions/phis http://cr.openjdk.java.net/~rkennke/streamline-wb-prologue/webrev.01/ Roman From shade at redhat.com Sun Sep 16 16:10:11 2018 From: shade at redhat.com (Aleksey Shipilev) Date: Sun, 16 Sep 2018 18:10:11 +0200 Subject: RFR: Fix limited x86_32 support Message-ID: Shenandoah is able to run on x86_32 in passive mode. That is, before it was broken with recent CAS refactoring. Fixed like this: --- a/src/hotspot/cpu/x86/gc/shenandoah/shenandoahBarrierSetC1_x86.cpp +++ b/src/hotspot/cpu/x86/gc/shenandoah/shenandoahBarrierSetC1_x86.cpp @@ -51,5 +51,5 @@ LIR_Opr ShenandoahBarrierSetC1::atomic_cmpxchg_at_resolved(LIRAccess& access, LIRItem& cmp_value, LIRItem& new_value) { BasicType bt = access.type(); - if (bt == T_OBJECT || bt == T_ARRAY) { + if (ShenandoahCASBarrier && (bt == T_OBJECT || bt == T_ARRAY)) { LIRGenerator *gen = access.gen(); cmp_value.load_item_force(FrameMap::rax_oop_opr); Testing: adhoc x86_32 runs Thanks, -Aleksey From rkennke at redhat.com Sun Sep 16 19:21:11 2018 From: rkennke at redhat.com (Roman Kennke) Date: Sun, 16 Sep 2018 21:21:11 +0200 Subject: RFR: Fix limited x86_32 support In-Reply-To: References: Message-ID: Yes. Thanks! Roman > Shenandoah is able to run on x86_32 in passive mode. That is, before it was > broken with recent CAS refactoring. Fixed like this: > > --- a/src/hotspot/cpu/x86/gc/shenandoah/shenandoahBarrierSetC1_x86.cpp > +++ b/src/hotspot/cpu/x86/gc/shenandoah/shenandoahBarrierSetC1_x86.cpp > @@ -51,5 +51,5 @@ > LIR_Opr ShenandoahBarrierSetC1::atomic_cmpxchg_at_resolved(LIRAccess& access, > LIRItem& cmp_value, LIRItem& new_value) { > BasicType bt = access.type(); > - if (bt == T_OBJECT || bt == T_ARRAY) { > + if (ShenandoahCASBarrier && (bt == T_OBJECT || bt == T_ARRAY)) { > LIRGenerator *gen = access.gen(); > cmp_value.load_item_force(FrameMap::rax_oop_opr); > > Testing: adhoc x86_32 runs > > Thanks, > -Aleksey > From shade at redhat.com Sun Sep 16 19:27:02 2018 From: shade at redhat.com (shade at redhat.com) Date: Sun, 16 Sep 2018 19:27:02 +0000 Subject: hg: shenandoah/jdk: Fix limited x86_32 support Message-ID: <201809161927.w8GJR2kI023656@aojmv0008.oracle.com> Changeset: 7361c5611712 Author: shade Date: 2018-09-16 21:26 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/7361c5611712 Fix limited x86_32 support ! src/hotspot/cpu/x86/gc/shenandoah/shenandoahBarrierSetC1_x86.cpp From rkennke at redhat.com Mon Sep 17 09:04:10 2018 From: rkennke at redhat.com (Roman Kennke) Date: Mon, 17 Sep 2018 11:04:10 +0200 Subject: RFR: Remove safepoint-cleanup piggybacking code Message-ID: <47316f42-f9ed-5334-e2d2-7b2e3604600d@redhat.com> The code that attempts to piggy-back monitor deflation and nmethod marking on thread scanning requires quite a lot of changes against upstream. To my knowledge, it has not worked very reliably, and hasn't provided a very significant benefit either. It has also bitrotten a bit because we never enabled it by default and therefore it's never been part of our testing. I have asked if upstream has interest in accepting it and the reply has been that monitor deflation is being worked on to be done concurrently (and probably there's ways to come up with a deflation scheme such that it doesn't become a problem to begin with), and nmethod marking should not be done in safepoints to begin with, but instead use thread local handshakes. I propose to remove/revert this stuff: http://cr.openjdk.java.net/~rkennke/remove-sp-cleanup/webrev.00/ Testing: tier3_gc_shenandoah WDYT? Roman From shade at redhat.com Mon Sep 17 09:15:13 2018 From: shade at redhat.com (Aleksey Shipilev) Date: Mon, 17 Sep 2018 11:15:13 +0200 Subject: RFR: Remove safepoint-cleanup piggybacking code In-Reply-To: <47316f42-f9ed-5334-e2d2-7b2e3604600d@redhat.com> References: <47316f42-f9ed-5334-e2d2-7b2e3604600d@redhat.com> Message-ID: <45ca7958-16d0-5f61-33f1-92dad7511828@redhat.com> On 09/17/2018 11:04 AM, Roman Kennke wrote: > The code that attempts to piggy-back monitor deflation and nmethod > marking on thread scanning requires quite a lot of changes against > upstream. To my knowledge, it has not worked very reliably, and hasn't > provided a very significant benefit either. It has also bitrotten a bit > because we never enabled it by default and therefore it's never been > part of our testing. > > I have asked if upstream has interest in accepting it and the reply has > been that monitor deflation is being worked on to be done concurrently > (and probably there's ways to come up with a deflation scheme such that > it doesn't become a problem to begin with), and nmethod marking should > not be done in safepoints to begin with, but instead use thread local > handshakes. > > I propose to remove/revert this stuff: > > http://cr.openjdk.java.net/~rkennke/remove-sp-cleanup/webrev.00/ Yes, let's remove it. The patch looks good. -Aleksey From roman at kennke.org Mon Sep 17 09:44:26 2018 From: roman at kennke.org (roman at kennke.org) Date: Mon, 17 Sep 2018 09:44:26 +0000 Subject: hg: shenandoah/jdk: Remove safepoint-cleanup piggybacking code Message-ID: <201809170944.w8H9iRR1006567@aojmv0008.oracle.com> Changeset: 36308b6d8159 Author: rkennke Date: 2018-09-17 10:46 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/36308b6d8159 Remove safepoint-cleanup piggybacking code ! src/hotspot/share/gc/shenandoah/shenandoahRootProcessor.cpp ! src/hotspot/share/gc/shenandoah/shenandoahRootProcessor.hpp ! src/hotspot/share/gc/shenandoah/shenandoah_globals.hpp ! src/hotspot/share/gc/shenandoah/vm_operations_shenandoah.hpp ! src/hotspot/share/runtime/safepoint.cpp ! src/hotspot/share/runtime/synchronizer.cpp ! src/hotspot/share/runtime/synchronizer.hpp ! src/hotspot/share/runtime/thread.cpp ! src/hotspot/share/runtime/thread.hpp ! src/hotspot/share/runtime/vm_operations.hpp From shade at redhat.com Mon Sep 17 12:45:14 2018 From: shade at redhat.com (Aleksey Shipilev) Date: Mon, 17 Sep 2018 14:45:14 +0200 Subject: RFR: Improve liveness count during marking Message-ID: <77aedfc2-226f-c2d4-bc8b-b4bd130bc59c@redhat.com> http://cr.openjdk.java.net/~shade/shenandoah/concmark-live-uo/webrev.01/ This micro-optimizes liveness counting in concurrent mark. Testing: tier3_gc_shenandoah, eyeballing marking times on benchmarks Thanks, -Aleksey From rkennke at redhat.com Mon Sep 17 13:07:06 2018 From: rkennke at redhat.com (Roman Kennke) Date: Mon, 17 Sep 2018 15:07:06 +0200 Subject: RFR: Improve liveness count during marking In-Reply-To: <77aedfc2-226f-c2d4-bc8b-b4bd130bc59c@redhat.com> References: <77aedfc2-226f-c2d4-bc8b-b4bd130bc59c@redhat.com> Message-ID: Looks good. Roman > http://cr.openjdk.java.net/~shade/shenandoah/concmark-live-uo/webrev.01/ > > This micro-optimizes liveness counting in concurrent mark. > > Testing: tier3_gc_shenandoah, eyeballing marking times on benchmarks > > Thanks, > -Aleksey > From shade at redhat.com Mon Sep 17 16:30:44 2018 From: shade at redhat.com (shade at redhat.com) Date: Mon, 17 Sep 2018 16:30:44 +0000 Subject: hg: shenandoah/jdk: Improve liveness count during marking Message-ID: <201809171630.w8HGUiRh020553@aojmv0008.oracle.com> Changeset: 360a814fb68d Author: shade Date: 2018-09-17 14:36 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/360a814fb68d Improve liveness count during marking ! src/hotspot/share/gc/shenandoah/shenandoahConcurrentMark.hpp ! src/hotspot/share/gc/shenandoah/shenandoahConcurrentMark.inline.hpp From shade at redhat.com Mon Sep 17 19:15:47 2018 From: shade at redhat.com (Aleksey Shipilev) Date: Mon, 17 Sep 2018 21:15:47 +0200 Subject: RFR: StringDedupMode enum for closures/method templates Message-ID: <015dc90f-2fbb-92fd-223b-07cc981063c0@redhat.com> http://cr.openjdk.java.net/~shade/shenandoah/strdedup-enum/webrev.01/ This cleans up template parameter handling in string dedup closures, and also removes some related unused code. Testing: tier3_gc_shenandoah Thanks, -Aleksey From shade at redhat.com Mon Sep 17 19:56:18 2018 From: shade at redhat.com (Aleksey Shipilev) Date: Mon, 17 Sep 2018 21:56:18 +0200 Subject: RFR: Increase inline limits only for release builds Message-ID: <906b573d-0b99-4d90-b3e0-19d146e2d9ea@redhat.com> We have this inliner improvement for concurrent marking performance. I checked it still helps release builds (I'll follow up why exactly separately). But there is no particular need to do this in debug configurations: diff -r 360a814fb68d make/hotspot/lib/JvmOverrideFiles.gmk --- a/make/hotspot/lib/JvmOverrideFiles.gmk Mon Sep 17 14:36:52 2018 +0200 +++ b/make/hotspot/lib/JvmOverrideFiles.gmk Mon Sep 17 21:50:30 2018 +0200 @@ -37,7 +37,9 @@ BUILD_LIBJVM_cardTableBarrierSetAssembler_x86.cpp_CXXFLAGS := -Wno-maybe-uninitialized BUILD_LIBJVM_interp_masm_x86.cpp_CXXFLAGS := -Wno-uninitialized - # Need extra inlining to collapse all the templated closures into the hot loop - BUILD_LIBJVM_shenandoahConcurrentMark.cpp_CXXFLAGS := --param inline-unit-growth=1000 - BUILD_LIBJVM_shenandoahTraversalGC.cpp_CXXFLAGS := --param inline-unit-growth=1000 + ifeq ($(DEBUG_LEVEL), release) + # Need extra inlining to collapse all marking code into the hot marking loop + BUILD_LIBJVM_shenandoahConcurrentMark.cpp_CXXFLAGS := --param inline-unit-growth=1000 + BUILD_LIBJVM_shenandoahTraversalGC.cpp_CXXFLAGS := --param inline-unit-growth=1000 + endif endif This makes fastdebug build times around 15% better. Testing: release/fastdebug builds Thanks, -Aleksey From rkennke at redhat.com Mon Sep 17 19:57:03 2018 From: rkennke at redhat.com (Roman Kennke) Date: Mon, 17 Sep 2018 21:57:03 +0200 Subject: RFR: StringDedupMode enum for closures/method templates In-Reply-To: <015dc90f-2fbb-92fd-223b-07cc981063c0@redhat.com> References: <015dc90f-2fbb-92fd-223b-07cc981063c0@redhat.com> Message-ID: <3234e364-553d-330a-48a8-82073561546c@redhat.com> Yes, this makes it more readable. Good! Roman > http://cr.openjdk.java.net/~shade/shenandoah/strdedup-enum/webrev.01/ > > This cleans up template parameter handling in string dedup closures, and also > removes some related unused code. > > Testing: tier3_gc_shenandoah > > Thanks, > -Aleksey > From rkennke at redhat.com Mon Sep 17 19:58:30 2018 From: rkennke at redhat.com (Roman Kennke) Date: Mon, 17 Sep 2018 21:58:30 +0200 Subject: RFR: Increase inline limits only for release builds In-Reply-To: <906b573d-0b99-4d90-b3e0-19d146e2d9ea@redhat.com> References: <906b573d-0b99-4d90-b3e0-19d146e2d9ea@redhat.com> Message-ID: <3ca85585-53f8-c33f-6ec2-ba5ecf21c10f@redhat.com> Faster compilation of shenandoahConcurrentMark.cpp and shenandoahTraversalGC.cpp! Thanks!! (patch looks good of course) Roman > We have this inliner improvement for concurrent marking performance. I checked it still helps > release builds (I'll follow up why exactly separately). But there is no particular need to do this > in debug configurations: > > diff -r 360a814fb68d make/hotspot/lib/JvmOverrideFiles.gmk > --- a/make/hotspot/lib/JvmOverrideFiles.gmk Mon Sep 17 14:36:52 2018 +0200 > +++ b/make/hotspot/lib/JvmOverrideFiles.gmk Mon Sep 17 21:50:30 2018 +0200 > @@ -37,7 +37,9 @@ > BUILD_LIBJVM_cardTableBarrierSetAssembler_x86.cpp_CXXFLAGS := -Wno-maybe-uninitialized > BUILD_LIBJVM_interp_masm_x86.cpp_CXXFLAGS := -Wno-uninitialized > - # Need extra inlining to collapse all the templated closures into the hot loop > - BUILD_LIBJVM_shenandoahConcurrentMark.cpp_CXXFLAGS := --param inline-unit-growth=1000 > - BUILD_LIBJVM_shenandoahTraversalGC.cpp_CXXFLAGS := --param inline-unit-growth=1000 > + ifeq ($(DEBUG_LEVEL), release) > + # Need extra inlining to collapse all marking code into the hot marking loop > + BUILD_LIBJVM_shenandoahConcurrentMark.cpp_CXXFLAGS := --param inline-unit-growth=1000 > + BUILD_LIBJVM_shenandoahTraversalGC.cpp_CXXFLAGS := --param inline-unit-growth=1000 > + endif > endif > > This makes fastdebug build times around 15% better. > > Testing: release/fastdebug builds > > Thanks, > -Aleksey > From shade at redhat.com Mon Sep 17 20:27:08 2018 From: shade at redhat.com (shade at redhat.com) Date: Mon, 17 Sep 2018 20:27:08 +0000 Subject: hg: shenandoah/jdk: 2 new changesets Message-ID: <201809172027.w8HKR8Kl008532@aojmv0008.oracle.com> Changeset: 13bbbb0596a7 Author: shade Date: 2018-09-17 21:47 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/13bbbb0596a7 Increase inline limits only for release builds ! make/hotspot/lib/JvmOverrideFiles.gmk Changeset: 10c0ec1c50e5 Author: shade Date: 2018-09-17 22:26 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/10c0ec1c50e5 StringDedupMode enum for closures/method templates ! src/hotspot/share/gc/shenandoah/shenandoahConcurrentMark.cpp ! src/hotspot/share/gc/shenandoah/shenandoahConcurrentMark.hpp ! src/hotspot/share/gc/shenandoah/shenandoahConcurrentMark.inline.hpp ! src/hotspot/share/gc/shenandoah/shenandoahOopClosures.hpp ! src/hotspot/share/gc/shenandoah/shenandoahOopClosures.inline.hpp From shade at redhat.com Tue Sep 18 12:28:50 2018 From: shade at redhat.com (Aleksey Shipilev) Date: Tue, 18 Sep 2018 14:28:50 +0200 Subject: RFR: Multiple minor fixes Message-ID: <036f1afb-f025-f399-5ae5-7510acfa4ca4@redhat.com> http://cr.openjdk.java.net/~shade/shenandoah/multi-1/webrev.01/ These are minor fixes that were sitting and rotting in my patch queue: *) The indenting in mark-compact code drives me nuts; *) Full GC should acquire the heap lock once when starting to deal with regions; *) Print "process weakrefs", to avoid confusion with coalesced UR; *) Micro-optimize get_region Testing: tier3_gc_shenandoah Thanks, -Aleksey From rkennke at redhat.com Tue Sep 18 12:33:09 2018 From: rkennke at redhat.com (Roman Kennke) Date: Tue, 18 Sep 2018 14:33:09 +0200 Subject: RFR: Multiple minor fixes In-Reply-To: <036f1afb-f025-f399-5ae5-7510acfa4ca4@redhat.com> References: <036f1afb-f025-f399-5ae5-7510acfa4ca4@redhat.com> Message-ID: Looks good! Roman > http://cr.openjdk.java.net/~shade/shenandoah/multi-1/webrev.01/ > > These are minor fixes that were sitting and rotting in my patch queue: > > *) The indenting in mark-compact code drives me nuts; > *) Full GC should acquire the heap lock once when starting to deal with regions; > *) Print "process weakrefs", to avoid confusion with coalesced UR; > *) Micro-optimize get_region > > Testing: tier3_gc_shenandoah > > Thanks, > -Aleksey > From shade at redhat.com Tue Sep 18 12:45:57 2018 From: shade at redhat.com (shade at redhat.com) Date: Tue, 18 Sep 2018 12:45:57 +0000 Subject: hg: shenandoah/jdk: 4 new changesets Message-ID: <201809181245.w8ICjv8w005075@aojmv0008.oracle.com> Changeset: 2cd803ff93c3 Author: shade Date: 2018-09-18 13:11 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/2cd803ff93c3 Fix indenting in ShMarkCompact::do_it ! src/hotspot/share/gc/shenandoah/shenandoahMarkCompact.cpp Changeset: 8246a811af4e Author: shade Date: 2018-09-18 13:13 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/8246a811af4e Coarsen Full GC use of heap lock ! src/hotspot/share/gc/shenandoah/shenandoahMarkCompact.cpp Changeset: 5d244e3c96b8 Author: shade Date: 2018-09-18 13:22 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/5d244e3c96b8 Micro-optimize ShHeap::get_region by moving the most likely branch first ! src/hotspot/share/gc/shenandoah/shenandoahHeap.inline.hpp Changeset: 7436e54a2cc5 Author: shade Date: 2018-09-18 14:20 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/7436e54a2cc5 Print "process weakrefs" to disambiguate vs CM-with-UR ! src/hotspot/share/gc/shenandoah/shenandoahHeap.cpp From shade at redhat.com Tue Sep 18 15:10:03 2018 From: shade at redhat.com (Aleksey Shipilev) Date: Tue, 18 Sep 2018 17:10:03 +0200 Subject: RFR: Cleanup buffered queue handling for Shenandoah Message-ID: <74213034-c5db-4159-6bb4-3d83a4084e69@redhat.com> http://cr.openjdk.java.net/~shade/shenandoah/concmark-queue-cleanup/webrev.01/ This cleans up the handling for our marking queues: encapsulates most of the code in the queue code itself, and moves our new implementation to our own file, reducing upstream exposure. We can move new implementations back after upstreaming. Testing: tier3_gc_shenandoah Thanks, -Aleksey From zgu at redhat.com Tue Sep 18 15:15:27 2018 From: zgu at redhat.com (Zhengyu Gu) Date: Tue, 18 Sep 2018 11:15:27 -0400 Subject: RFR: Cleanup buffered queue handling for Shenandoah In-Reply-To: <74213034-c5db-4159-6bb4-3d83a4084e69@redhat.com> References: <74213034-c5db-4159-6bb4-3d83a4084e69@redhat.com> Message-ID: <928d0cd1-3cc9-0e19-bc55-ac28458d2cea@redhat.com> Looks good. Thanks, -Zhengyu On 09/18/2018 11:10 AM, Aleksey Shipilev wrote: > http://cr.openjdk.java.net/~shade/shenandoah/concmark-queue-cleanup/webrev.01/ > > This cleans up the handling for our marking queues: encapsulates most of the code in the queue code > itself, and moves our new implementation to our own file, reducing upstream exposure. We can move > new implementations back after upstreaming. > > Testing: tier3_gc_shenandoah > > Thanks, > -Aleksey > From shade at redhat.com Tue Sep 18 15:29:45 2018 From: shade at redhat.com (shade at redhat.com) Date: Tue, 18 Sep 2018 15:29:45 +0000 Subject: hg: shenandoah/jdk: Cleanup buffered queue handling Message-ID: <201809181529.w8IFTjOt008717@aojmv0008.oracle.com> Changeset: 2f6a8e31fce0 Author: shade Date: 2018-09-18 17:06 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/2f6a8e31fce0 Cleanup buffered queue handling ! src/hotspot/share/gc/shared/taskqueue.hpp ! src/hotspot/share/gc/shared/taskqueue.inline.hpp ! src/hotspot/share/gc/shenandoah/shenandoahArguments.cpp ! src/hotspot/share/gc/shenandoah/shenandoahConcurrentMark.cpp ! src/hotspot/share/gc/shenandoah/shenandoahConcurrentMark.hpp ! src/hotspot/share/gc/shenandoah/shenandoahConcurrentMark.inline.hpp ! src/hotspot/share/gc/shenandoah/shenandoahMarkCompact.cpp ! src/hotspot/share/gc/shenandoah/shenandoahTaskqueue.cpp ! src/hotspot/share/gc/shenandoah/shenandoahTaskqueue.hpp + src/hotspot/share/gc/shenandoah/shenandoahTaskqueue.inline.hpp ! src/hotspot/share/gc/shenandoah/shenandoahTraversalGC.cpp From shade at redhat.com Tue Sep 18 16:01:25 2018 From: shade at redhat.com (Aleksey Shipilev) Date: Tue, 18 Sep 2018 18:01:25 +0200 Subject: RFR: Missing includes after "Cleanup buffered queue handling" Message-ID: <480f4498-26d0-e263-9b53-638002aa8786@redhat.com> Missed this during testing. Current build produces warnings: In file included from /home/shade/trunks/shenandoah-jdk/src/hotspot/share/gc/shenandoah/shenandoahOopClosures.hpp:27:0, from /home/shade/trunks/shenandoah-jdk/src/hotspot/share/gc/shenandoah/shenandoahConcurrentMark.hpp:30, from /home/shade/trunks/shenandoah-jdk/src/hotspot/share/gc/shenandoah/shenandoahConcurrentMark.inline.hpp:31, from /home/shade/trunks/shenandoah-jdk/src/hotspot/share/gc/shenandoah/vm_operations_shenandoah.cpp:27: /home/shade/trunks/shenandoah-jdk/src/hotspot/share/gc/shenandoah/shenandoahTaskqueue.hpp:43:15: warning: inline function ?bool BufferedOverflowTaskQueue::push(E) [with E = ObjArrayChunkedTask; MemoryType F = (MemoryType)5; unsigned int N = 131072]? used but never defined inline bool push(E t); ^~~~ This is because recent commit missed some includes: diff -r 2f6a8e31fce0 src/hotspot/share/gc/shenandoah/shenandoahConcurrentMark.inline.hpp --- a/src/hotspot/share/gc/shenandoah/shenandoahConcurrentMark.inline.hpp Tue Sep 18 17:06:28 2018 +0200 +++ b/src/hotspot/share/gc/shenandoah/shenandoahConcurrentMark.inline.hpp Tue Sep 18 17:51:58 2018 +0200 @@ -32,4 +32,5 @@ #include "gc/shenandoah/shenandoahMarkingContext.inline.hpp" #include "gc/shenandoah/shenandoahStringDedup.hpp" +#include "gc/shenandoah/shenandoahTaskqueue.inline.hpp" #include "memory/iterator.inline.hpp" #include "oops/oop.inline.hpp" diff -r 2f6a8e31fce0 src/hotspot/share/gc/shenandoah/shenandoahTraversalGC.inline.hpp --- a/src/hotspot/share/gc/shenandoah/shenandoahTraversalGC.inline.hpp Tue Sep 18 17:06:28 2018 +0200 +++ b/src/hotspot/share/gc/shenandoah/shenandoahTraversalGC.inline.hpp Tue Sep 18 17:51:58 2018 +0200 @@ -34,4 +34,5 @@ #include "gc/shenandoah/shenandoahTraversalGC.hpp" #include "gc/shenandoah/shenandoahTaskqueue.hpp" +#include "gc/shenandoah/shenandoahTaskqueue.inline.hpp" #include "memory/iterator.inline.hpp" #include "oops/oop.inline.hpp" Testing: x86_64 build {fastdebug|release} Thanks, -Aleksey From zgu at redhat.com Tue Sep 18 16:23:41 2018 From: zgu at redhat.com (Zhengyu Gu) Date: Tue, 18 Sep 2018 12:23:41 -0400 Subject: RFR: Missing includes after "Cleanup buffered queue handling" In-Reply-To: <480f4498-26d0-e263-9b53-638002aa8786@redhat.com> References: <480f4498-26d0-e263-9b53-638002aa8786@redhat.com> Message-ID: <20334c02-08db-2f56-f52f-d841c31bdb7f@redhat.com> Yes. -Zhengyu On 09/18/2018 12:01 PM, Aleksey Shipilev wrote: > Missed this during testing. Current build produces warnings: > > In file included from > /home/shade/trunks/shenandoah-jdk/src/hotspot/share/gc/shenandoah/shenandoahOopClosures.hpp:27:0, > from > /home/shade/trunks/shenandoah-jdk/src/hotspot/share/gc/shenandoah/shenandoahConcurrentMark.hpp:30, > from > /home/shade/trunks/shenandoah-jdk/src/hotspot/share/gc/shenandoah/shenandoahConcurrentMark.inline.hpp:31, > from > /home/shade/trunks/shenandoah-jdk/src/hotspot/share/gc/shenandoah/vm_operations_shenandoah.cpp:27: > /home/shade/trunks/shenandoah-jdk/src/hotspot/share/gc/shenandoah/shenandoahTaskqueue.hpp:43:15: > warning: inline function ?bool BufferedOverflowTaskQueue::push(E) [with E = > ObjArrayChunkedTask; MemoryType F = (MemoryType)5; unsigned int N = 131072]? used but never defined > inline bool push(E t); > ^~~~ > > This is because recent commit missed some includes: > > diff -r 2f6a8e31fce0 src/hotspot/share/gc/shenandoah/shenandoahConcurrentMark.inline.hpp > --- a/src/hotspot/share/gc/shenandoah/shenandoahConcurrentMark.inline.hpp Tue Sep 18 17:06:28 > 2018 +0200 > +++ b/src/hotspot/share/gc/shenandoah/shenandoahConcurrentMark.inline.hpp Tue Sep 18 17:51:58 > 2018 +0200 > @@ -32,4 +32,5 @@ > #include "gc/shenandoah/shenandoahMarkingContext.inline.hpp" > #include "gc/shenandoah/shenandoahStringDedup.hpp" > +#include "gc/shenandoah/shenandoahTaskqueue.inline.hpp" > #include "memory/iterator.inline.hpp" > #include "oops/oop.inline.hpp" > diff -r 2f6a8e31fce0 src/hotspot/share/gc/shenandoah/shenandoahTraversalGC.inline.hpp > --- a/src/hotspot/share/gc/shenandoah/shenandoahTraversalGC.inline.hpp Tue Sep 18 17:06:28 2018 +0200 > +++ b/src/hotspot/share/gc/shenandoah/shenandoahTraversalGC.inline.hpp Tue Sep 18 17:51:58 2018 +0200 > @@ -34,4 +34,5 @@ > #include "gc/shenandoah/shenandoahTraversalGC.hpp" > #include "gc/shenandoah/shenandoahTaskqueue.hpp" > +#include "gc/shenandoah/shenandoahTaskqueue.inline.hpp" > #include "memory/iterator.inline.hpp" > #include "oops/oop.inline.hpp" > > > Testing: x86_64 build {fastdebug|release} > > Thanks, > -Aleksey > From shade at redhat.com Tue Sep 18 16:30:11 2018 From: shade at redhat.com (shade at redhat.com) Date: Tue, 18 Sep 2018 16:30:11 +0000 Subject: hg: shenandoah/jdk: Missing includes after "Cleanup buffered queue handling" Message-ID: <201809181630.w8IGUBo7003290@aojmv0008.oracle.com> Changeset: f59b47940fc6 Author: shade Date: 2018-09-18 17:52 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/f59b47940fc6 Missing includes after "Cleanup buffered queue handling" ! src/hotspot/share/gc/shenandoah/shenandoahConcurrentMark.inline.hpp ! src/hotspot/share/gc/shenandoah/shenandoahTraversalGC.inline.hpp From zgu at redhat.com Tue Sep 18 17:58:50 2018 From: zgu at redhat.com (Zhengyu Gu) Date: Tue, 18 Sep 2018 13:58:50 -0400 Subject: RFR: ClassLoadStatsClosure uses naked oop comparison Message-ID: This is an upstream bug, will file a bug. It broke VerifyJCStressTest on my machine. http://cr.openjdk.java.net/~zgu/shenandoah/cld_stats_oop_equals/webrev.00/ Test: tier3_gc_shenandoah (fastdebug and release) Thanks, -Zhengyu From zgu at redhat.com Tue Sep 18 22:35:10 2018 From: zgu at redhat.com (Zhengyu Gu) Date: Tue, 18 Sep 2018 18:35:10 -0400 Subject: RFR: Fix ExtendedDTraceProbes with Shenandoah Message-ID: Shenandoah crashes with -XX:+ExtendedDTraceProbes in C1, that is due to register clobbering. Following patch fixes the issue, by setting the base vreg destroyed, that avoid generating unwanted/bad store. Webrev: http://cr.openjdk.java.net/~zgu/shenandoah/extended_dtrace_probes/webrev.00/ Test: tier3_gc_shenandoah with -XX:-ExtendedDTraceProbes (fastdebug and release) tier2_gc_shenandoah with -XX:+ExtendedDtraceProbes (fastdebug and release) (takes much longer to run) Before fix: 130 rtcall SharedRuntime::dtrace_method_entry 132 move [stack:16|L] [rdi|L] 134 cmp [EQ] [rdi|L] [obj:0x0000000000000000|L] 136 branch [EQ] [label:0x00007f1874354038] 138 move [Base:[rdi|L] Disp: -8|^@] [rdi|L] 140 label [label:0x00007f1874354038] move [dbl_stack:18|J] [rbxrbx|J] 142 move [Base:[rdi|L] Index:[rbxrbx|J] Disp: 0|L] [rax|L] 144 membar_acquire 146 move [lng:16|J] [rdirdi|J] <==== RDI = 0x10 148 cmp [NE] [rbxrbx|J] [rdirdi|J] 150 branch [NE] [label:0x00007f18743543d8] move [stack:16|L] [rdi|L] 152 cmp [EQ] [rdi|L] [obj:0x0000000000000000|L] 154 branch [EQ] [label:0x00007f18743543d8] 156 move [Base:[rdi|L] Disp: 8|^@] [rsi|M] 158 move [Base:[rsi|M] Disp: 395|B] [rsi|I] 160 cmp [EQ] [rsi|I] [int:0|I] 162 branch [EQ] [label:0x00007f18743543d8] 164 move [Base:[r15r15|J] Disp: 56|Z] [rsi|I] 166 cmp [NE] [rsi|I] [int:0|I] 168 branch [NE] [ShenandoahPreBarrierStub: 0x00007f1874354c50] 170 label [label:0x00007f1874354cf0] 172 label [label:0x00007f18743543d8] 174 move [metadata:0x00007f19a08d19f8|M] [rsi|M] move [rdi|L] [stack:16|L] <===== BAD Store 176 move [r15r15|J] [rdirdi|J] move [rax|L] [stack:20|L] 180 rtcall SharedRuntime::dtrace_method_exit move [stack:20|L] [rax|L] 182 checkcast [rax|L] java/util/concurrent/ConcurrentHashMap$Node [rsi|L] [rdi|L] [rbx|L] [bci:18] move [rbx|L] [stack:22|L] 184 move [metadata:0x00007f19a095a740|M] [rsi|M] 186 move [r15r15|J] [rdirdi|J] After fix: 126 move [r15r15|J] [rdirdi|J] 130 rtcall SharedRuntime::dtrace_method_entry 132 move [stack:16|L] [rdi|L] 134 cmp [EQ] [rdi|L] [obj:0x0000000000000000|L] 136 branch [EQ] [label:0x00007f47bc354058] 138 move [Base:[rdi|L] Disp: -8|^@] [rdi|L] 140 label [label:0x00007f47bc354058] move [dbl_stack:18|J] [rbxrbx|J] 142 move [Base:[rdi|L] Index:[rbxrbx|J] Disp: 0|L] [rax|L] 144 membar_acquire 146 move [lng:16|J] [rdirdi|J] <=== rdi = 16 148 cmp [NE] [rbxrbx|J] [rdirdi|J] 150 branch [NE] [label:0x00007f47bc3543f8] 152 move [stack:16|L] [rdi|L] 154 cmp [EQ] [rdi|L] [obj:0x0000000000000000|L] 156 branch [EQ] [label:0x00007f47bc3543f8] 158 move [Base:[rdi|L] Disp: 8|^@] [rdi|M] 160 move [Base:[rdi|M] Disp: 395|B] [rdi|I] 162 cmp [EQ] [rdi|I] [int:0|I] 164 branch [EQ] [label:0x00007f47bc3543f8] 166 move [Base:[r15r15|J] Disp: 56|Z] [rdi|I] 168 cmp [NE] [rdi|I] [int:0|I] 170 branch [NE] [ShenandoahPreBarrierStub: 0x00007f47bc354cc0] 172 label [label:0x00007f47bc354d60] 174 label [label:0x00007f47bc3543f8] 176 move [metadata:0x00007f48e87cf9f8|M] [rsi|M] 178 move [r15r15|J] [rdirdi|J] <=== no more store move [rax|L] [stack:20|L] 182 rtcall SharedRuntime::dtrace_method_exit move [stack:20|L] [rax|L] 184 checkcast [rax|L] java/util/concurrent/ConcurrentHashMap$Node [rsi|L] [rdi|L] [rbx|L] [bci:18] Thanks, -Zhengyu From shade at redhat.com Wed Sep 19 07:26:07 2018 From: shade at redhat.com (Aleksey Shipilev) Date: Wed, 19 Sep 2018 09:26:07 +0200 Subject: RFR: ClassLoadStatsClosure uses naked oop comparison In-Reply-To: References: Message-ID: <77832f8f-bc18-9e90-b72e-a7f3e0cf221c@redhat.com> On 09/18/2018 07:58 PM, Zhengyu Gu wrote: > This is an upstream bug, will file a bug. It broke VerifyJCStressTest on my machine. > > http://cr.openjdk.java.net/~zgu/shenandoah/cld_stats_oop_equals/webrev.00/ Looks good. -Aleksey From shade at redhat.com Wed Sep 19 08:27:37 2018 From: shade at redhat.com (Aleksey Shipilev) Date: Wed, 19 Sep 2018 10:27:37 +0200 Subject: RFR: Cease JDK 10 support for Shenandoah Message-ID: Upstream had ceased to publish any fixes to 10u, and 11 is going to be released next week. sh/jdk11 is stable enough for adopters to use. In fact, many adopters who prefer the up-to-date JDKs already do use sh/jdk11. We also have quite substantial cleanup/backports coming, especially in compiler area. All of the above makes sh/jdk10 support dubious, and I propose we cease it. Like with sh/jdk9 before, let us print the warning message on startup: diff -r 82f1eec5affa src/hotspot/share/gc/shenandoah/shenandoahArguments.cpp --- a/src/hotspot/share/gc/shenandoah/shenandoahArguments.cpp Mon Sep 10 17:56:38 2018 +0200 +++ b/src/hotspot/share/gc/shenandoah/shenandoahArguments.cpp Wed Sep 19 10:22:47 2018 +0200 @@ -29,10 +29,16 @@ #include "gc/shenandoah/shenandoahCollectorPolicy.hpp" #include "gc/shenandoah/shenandoahHeap.hpp" #include "utilities/defaultStream.hpp" void ShenandoahArguments::initialize_flags() { + log_warning(gc)("**************************************************************************"); + log_warning(gc)("* Shenandoah GC support for this JDK release had ceased. *"); + log_warning(gc)("* JDK 10 is a short-term release, and it had reached end of life. *"); + log_warning(gc)("* This JDK would not get security, functionality or performance fixes. *"); + log_warning(gc)("* Use this build at your own risk, and consider migrating to next JDK. *"); + log_warning(gc)("**************************************************************************"); #if !(defined AARCH64 || defined AMD64 || defined IA32) vm_exit_during_initialization("Shenandoah GC is not supported on this platform."); #endif Testing: tier1_gc_shenandoah Thanks, -Aleksey From shade at redhat.com Wed Sep 19 08:35:52 2018 From: shade at redhat.com (Aleksey Shipilev) Date: Wed, 19 Sep 2018 10:35:52 +0200 Subject: RFR: Cease JDK 10 support for Shenandoah In-Reply-To: References: Message-ID: <49c529c8-8a70-0721-762a-a56ec2f06052@redhat.com> Gauging public interest here as well: https://twitter.com/shipilev/status/1042330798798585856 -Aleksey On 09/19/2018 10:27 AM, Aleksey Shipilev wrote: > Upstream had ceased to publish any fixes to 10u, and 11 is going to be released next week. sh/jdk11 > is stable enough for adopters to use. In fact, many adopters who prefer the up-to-date JDKs already > do use sh/jdk11. We also have quite substantial cleanup/backports coming, especially in compiler > area. All of the above makes sh/jdk10 support dubious, and I propose we cease it. > > Like with sh/jdk9 before, let us print the warning message on startup: > > diff -r 82f1eec5affa src/hotspot/share/gc/shenandoah/shenandoahArguments.cpp > --- a/src/hotspot/share/gc/shenandoah/shenandoahArguments.cpp Mon Sep 10 17:56:38 2018 +0200 > +++ b/src/hotspot/share/gc/shenandoah/shenandoahArguments.cpp Wed Sep 19 10:22:47 2018 +0200 > @@ -29,10 +29,16 @@ > #include "gc/shenandoah/shenandoahCollectorPolicy.hpp" > #include "gc/shenandoah/shenandoahHeap.hpp" > #include "utilities/defaultStream.hpp" > > void ShenandoahArguments::initialize_flags() { > + log_warning(gc)("**************************************************************************"); > + log_warning(gc)("* Shenandoah GC support for this JDK release had ceased. *"); > + log_warning(gc)("* JDK 10 is a short-term release, and it had reached end of life. *"); > + log_warning(gc)("* This JDK would not get security, functionality or performance fixes. *"); > + log_warning(gc)("* Use this build at your own risk, and consider migrating to next JDK. *"); > + log_warning(gc)("**************************************************************************"); > > #if !(defined AARCH64 || defined AMD64 || defined IA32) > vm_exit_during_initialization("Shenandoah GC is not supported on this platform."); > #endif > > Testing: tier1_gc_shenandoah > > Thanks, > -Aleksey > From shade at redhat.com Wed Sep 19 08:50:51 2018 From: shade at redhat.com (Aleksey Shipilev) Date: Wed, 19 Sep 2018 10:50:51 +0200 Subject: RFR: Clean up dead code Message-ID: http://cr.openjdk.java.net/~shade/shenandoah/cleanups-9/webrev.01/ This cleans up dead/unused methods. Testing: tier1_gc_shenandoah {fastdebug|release} Thanks, -Aleksey From rkennke at redhat.com Wed Sep 19 09:18:18 2018 From: rkennke at redhat.com (Roman Kennke) Date: Wed, 19 Sep 2018 11:18:18 +0200 Subject: RFR: Clean up dead code In-Reply-To: References: Message-ID: Very good. one more unused method I recently found is compile_prepare_oop() plus the associated source files shenandoahBarrierSet_XXX.cpp Wanna rm those too? Roman > http://cr.openjdk.java.net/~shade/shenandoah/cleanups-9/webrev.01/ > > This cleans up dead/unused methods. > > Testing: tier1_gc_shenandoah {fastdebug|release} > > Thanks, > -Aleksey > From shade at redhat.com Wed Sep 19 09:28:35 2018 From: shade at redhat.com (Aleksey Shipilev) Date: Wed, 19 Sep 2018 11:28:35 +0200 Subject: RFR: Clean up dead code In-Reply-To: References: Message-ID: <2229c490-27a4-32c7-fc02-8b890e0bc8cd@redhat.com> On 09/19/2018 11:18 AM, Roman Kennke wrote: > one more unused method I recently found is compile_prepare_oop() plus > the associated source files shenandoahBarrierSet_XXX.cpp Wanna rm those too? Right. I haven't realized it is unused too. Purged the files too: http://cr.openjdk.java.net/~shade/shenandoah/cleanups-9/webrev.02/ -Aleksey From rkennke at redhat.com Wed Sep 19 09:36:34 2018 From: rkennke at redhat.com (Roman Kennke) Date: Wed, 19 Sep 2018 11:36:34 +0200 Subject: RFR: Clean up dead code In-Reply-To: <2229c490-27a4-32c7-fc02-8b890e0bc8cd@redhat.com> References: <2229c490-27a4-32c7-fc02-8b890e0bc8cd@redhat.com> Message-ID: <0f86cffc-1e3f-7df0-2ded-fc91c78db7aa@redhat.com> Am 19.09.2018 um 11:28 schrieb Aleksey Shipilev: > On 09/19/2018 11:18 AM, Roman Kennke wrote: >> one more unused method I recently found is compile_prepare_oop() plus >> the associated source files shenandoahBarrierSet_XXX.cpp Wanna rm those too? > > Right. I haven't realized it is unused too. Purged the files too: > http://cr.openjdk.java.net/~shade/shenandoah/cleanups-9/webrev.02/ > > -Aleksey > Perfect! Thanks, Roman From rkennke at redhat.com Wed Sep 19 09:38:17 2018 From: rkennke at redhat.com (Roman Kennke) Date: Wed, 19 Sep 2018 11:38:17 +0200 Subject: RFR: Fix ExtendedDTraceProbes with Shenandoah In-Reply-To: References: Message-ID: I think it makes sense. Would be good if Roland could look at it too. Roman > Shenandoah crashes with -XX:+ExtendedDTraceProbes in C1, that is due to > register clobbering. > > Following patch fixes the issue, by setting the base vreg destroyed, > that avoid generating unwanted/bad store. > > Webrev: > http://cr.openjdk.java.net/~zgu/shenandoah/extended_dtrace_probes/webrev.00/ > > > Test: > ?? tier3_gc_shenandoah with -XX:-ExtendedDTraceProbes (fastdebug and > release) > > ?? tier2_gc_shenandoah with -XX:+ExtendedDtraceProbes (fastdebug and > release) (takes much longer to run) > > > Before fix: > ?130 rtcall SharedRuntime::dtrace_method_entry > ?132 move [stack:16|L] [rdi|L] > ?134 cmp [EQ] [rdi|L] [obj:0x0000000000000000|L] > ?136 branch [EQ] [label:0x00007f1874354038] > ?138 move [Base:[rdi|L] Disp: -8|^@] [rdi|L] > ?140 label [label:0x00007f1874354038] > ???? move [dbl_stack:18|J] [rbxrbx|J] > ?142 move [Base:[rdi|L] Index:[rbxrbx|J] Disp: 0|L] [rax|L] > ?144 membar_acquire > ?146 move [lng:16|J] [rdirdi|J]??????????????????????? <==== RDI = 0x10 > ?148 cmp [NE] [rbxrbx|J] [rdirdi|J] > ?150 branch [NE] [label:0x00007f18743543d8] > ???? move [stack:16|L] [rdi|L] > ?152 cmp [EQ] [rdi|L] [obj:0x0000000000000000|L] > ?154 branch [EQ] [label:0x00007f18743543d8] > ?156 move [Base:[rdi|L] Disp: 8|^@] [rsi|M] > ?158 move [Base:[rsi|M] Disp: 395|B] [rsi|I] > ?160 cmp [EQ] [rsi|I] [int:0|I] > ?162 branch [EQ] [label:0x00007f18743543d8] > ?164 move [Base:[r15r15|J] Disp: 56|Z] [rsi|I] > ?166 cmp [NE] [rsi|I] [int:0|I] > ?168 branch [NE] [ShenandoahPreBarrierStub: 0x00007f1874354c50] > ?170 label [label:0x00007f1874354cf0] > ?172 label [label:0x00007f18743543d8] > ?174 move [metadata:0x00007f19a08d19f8|M] [rsi|M] > ???? move [rdi|L] [stack:16|L]??????????????????? <===== BAD Store > ?176 move [r15r15|J] [rdirdi|J] > ???? move [rax|L] [stack:20|L] > ?180 rtcall SharedRuntime::dtrace_method_exit > ???? move [stack:20|L] [rax|L] > ?182 checkcast [rax|L] java/util/concurrent/ConcurrentHashMap$Node > [rsi|L] [rdi|L]? [rbx|L]? [bci:18] > ???? move [rbx|L] [stack:22|L] > ?184 move [metadata:0x00007f19a095a740|M] [rsi|M] > ?186 move [r15r15|J] [rdirdi|J] > > > After fix: > > ?126 move [r15r15|J] [rdirdi|J] > ?130 rtcall SharedRuntime::dtrace_method_entry > ?132 move [stack:16|L] [rdi|L] > ?134 cmp [EQ] [rdi|L] [obj:0x0000000000000000|L] > ?136 branch [EQ] [label:0x00007f47bc354058] > ?138 move [Base:[rdi|L] Disp: -8|^@] [rdi|L] > ?140 label [label:0x00007f47bc354058] > ???? move [dbl_stack:18|J] [rbxrbx|J] > ?142 move [Base:[rdi|L] Index:[rbxrbx|J] Disp: 0|L] [rax|L] > ?144 membar_acquire > ?146 move [lng:16|J] [rdirdi|J]?????????????????? <=== rdi = 16 > ?148 cmp [NE] [rbxrbx|J] [rdirdi|J] > ?150 branch [NE] [label:0x00007f47bc3543f8] > ?152 move [stack:16|L] [rdi|L] > ?154 cmp [EQ] [rdi|L] [obj:0x0000000000000000|L] > ?156 branch [EQ] [label:0x00007f47bc3543f8] > ?158 move [Base:[rdi|L] Disp: 8|^@] [rdi|M] > ?160 move [Base:[rdi|M] Disp: 395|B] [rdi|I] > ?162 cmp [EQ] [rdi|I] [int:0|I] > ?164 branch [EQ] [label:0x00007f47bc3543f8] > ?166 move [Base:[r15r15|J] Disp: 56|Z] [rdi|I] > ?168 cmp [NE] [rdi|I] [int:0|I] > ?170 branch [NE] [ShenandoahPreBarrierStub: 0x00007f47bc354cc0] > ?172 label [label:0x00007f47bc354d60] > ?174 label [label:0x00007f47bc3543f8] > ?176 move [metadata:0x00007f48e87cf9f8|M] [rsi|M] > ?178 move [r15r15|J] [rdirdi|J]???????????????? <=== no more store > ???? move [rax|L] [stack:20|L] > ?182 rtcall SharedRuntime::dtrace_method_exit > ???? move [stack:20|L] [rax|L] > ?184 checkcast [rax|L] java/util/concurrent/ConcurrentHashMap$Node > [rsi|L] [rdi|L]? [rbx|L]? [bci:18] > > > Thanks, > > -Zhengyu From rkennke at redhat.com Wed Sep 19 09:39:21 2018 From: rkennke at redhat.com (Roman Kennke) Date: Wed, 19 Sep 2018 11:39:21 +0200 Subject: RFR: ClassLoadStatsClosure uses naked oop comparison In-Reply-To: References: Message-ID: <8d3f3667-1af1-8c63-fe27-a3c9a0b5a9f7@redhat.com> > This is an upstream bug, will file a bug. It broke VerifyJCStressTest on > my machine. > > > http://cr.openjdk.java.net/~zgu/shenandoah/cld_stats_oop_equals/webrev.00/ > > Test: > > ? tier3_gc_shenandoah (fastdebug and release) > > Thanks, > > -Zhengyu > > Ok Thanks! Roman From shade at redhat.com Wed Sep 19 09:42:51 2018 From: shade at redhat.com (Aleksey Shipilev) Date: Wed, 19 Sep 2018 11:42:51 +0200 Subject: RFR: Remove Parallel Cleanup counters Message-ID: <2910a8b5-b0e5-0a92-74a7-6e46e61867f7@redhat.com> http://cr.openjdk.java.net/~shade/shenandoah/purge-purge-counters/webrev.01/ We have switched to upstream version of parallel cleanup, which does not have our hooks into the GC counters -- which is why the block is commented out. While we can upstream the API extensions to get that data, it seems more convenient to accept those counters are not really needed, and purge the our own counter infra. Testing: tier3_gc_shenandoah Thanks, -Aleksey From rkennke at redhat.com Wed Sep 19 09:45:23 2018 From: rkennke at redhat.com (Roman Kennke) Date: Wed, 19 Sep 2018 11:45:23 +0200 Subject: RFR: Remove Parallel Cleanup counters In-Reply-To: <2910a8b5-b0e5-0a92-74a7-6e46e61867f7@redhat.com> References: <2910a8b5-b0e5-0a92-74a7-6e46e61867f7@redhat.com> Message-ID: This makes sense. When upstream comes up with its own counters infrastructure, we'll re-introduce whatever is needed. Thanks. Roman > http://cr.openjdk.java.net/~shade/shenandoah/purge-purge-counters/webrev.01/ > > We have switched to upstream version of parallel cleanup, which does not have our hooks into the GC > counters -- which is why the block is commented out. While we can upstream the API extensions to get > that data, it seems more convenient to accept those counters are not really needed, and purge the > our own counter infra. > > Testing: tier3_gc_shenandoah > > Thanks, > -Aleksey > From shade at redhat.com Wed Sep 19 10:07:09 2018 From: shade at redhat.com (Aleksey Shipilev) Date: Wed, 19 Sep 2018 12:07:09 +0200 Subject: RFR: Make sure bitmap is marked incomplete before bitmap resets Message-ID: ShHeap::mark_incomplete_marking_context() appears to be unused. It was supposed to mark the context as incomplete, so that ShHeap::complete_marking_context() would assert in erroneous conditions. Except that I forgot to actually call it. This patch puts it where it belongs, and does a few other asserts to verify the placement: diff -r 4a4a23717517 src/hotspot/share/gc/shenandoah/shenandoahHeap.cpp --- a/src/hotspot/share/gc/shenandoah/shenandoahHeap.cpp Wed Sep 19 11:42:05 2018 +0200 +++ b/src/hotspot/share/gc/shenandoah/shenandoahHeap.cpp Wed Sep 19 11:52:55 2018 +0200 @@ -432,4 +432,5 @@ void ShenandoahHeap::reset_mark_bitmap() { assert_gc_workers(_workers->active_workers()); + mark_incomplete_marking_context(); ShenandoahResetBitmapTask task; @@ -1471,4 +1472,5 @@ assert(marking_context()->is_bitmap_clear(), "need clear marking bitmap"); + assert(!marking_context()->is_complete(), "should not be complete"); if (ShenandoahVerify) { diff -r 4a4a23717517 src/hotspot/share/gc/shenandoah/shenandoahMarkCompact.cpp --- a/src/hotspot/share/gc/shenandoah/shenandoahMarkCompact.cpp Wed Sep 19 11:42:05 2018 +0200 +++ b/src/hotspot/share/gc/shenandoah/shenandoahMarkCompact.cpp Wed Sep 19 11:52:55 2018 +0200 @@ -109,4 +109,5 @@ heap->reset_mark_bitmap(); assert(heap->marking_context()->is_bitmap_clear(), "sanity"); + assert(!heap->marking_context()->is_complete(), "sanity"); // d. Abandon reference discovery and clear all discovered references. diff -r 4a4a23717517 src/hotspot/share/gc/shenandoah/shenandoahTraversalGC.cpp --- a/src/hotspot/share/gc/shenandoah/shenandoahTraversalGC.cpp Wed Sep 19 11:42:05 2018 +0200 +++ b/src/hotspot/share/gc/shenandoah/shenandoahTraversalGC.cpp Wed Sep 19 11:52:55 2018 +0200 @@ -382,4 +382,5 @@ assert(_heap->marking_context()->is_bitmap_clear(), "need clean mark bitmap"); + assert(!_heap->marking_context()->is_complete(), "should not be complete"); ShenandoahFreeSet* free_set = _heap->free_set(); Testing: tier3_gc_shenandoah Thanks, -Aleksey From shade at redhat.com Wed Sep 19 10:23:56 2018 From: shade at redhat.com (Aleksey Shipilev) Date: Wed, 19 Sep 2018 12:23:56 +0200 Subject: RFR: Clean up declarations and uses of marked_object_iterate Message-ID: <2725c94e-2603-b5b9-03a4-a35e276325a0@redhat.com> http://cr.openjdk.java.net/~shade/shenandoah/cleanups-moi/webrev.01/ Continuing on cleaning up ShenandoahHeap interface. marked_object_iterate and friends can be sweeped up. This makes UR code a bit more straight-forward too. Testing: tier3_gc_shenandoah (running) Thanks, -Aleksey From rkennke at redhat.com Wed Sep 19 10:32:22 2018 From: rkennke at redhat.com (Roman Kennke) Date: Wed, 19 Sep 2018 12:32:22 +0200 Subject: RFR: Make sure bitmap is marked incomplete before bitmap resets In-Reply-To: References: Message-ID: <81e707b2-6a8b-580e-9996-b4db372d23a1@redhat.com> Ok. Roman > ShHeap::mark_incomplete_marking_context() appears to be unused. It was supposed to mark the context > as incomplete, so that ShHeap::complete_marking_context() would assert in erroneous conditions. > Except that I forgot to actually call it. > > This patch puts it where it belongs, and does a few other asserts to verify the placement: > > diff -r 4a4a23717517 src/hotspot/share/gc/shenandoah/shenandoahHeap.cpp > --- a/src/hotspot/share/gc/shenandoah/shenandoahHeap.cpp Wed Sep 19 11:42:05 2018 +0200 > +++ b/src/hotspot/share/gc/shenandoah/shenandoahHeap.cpp Wed Sep 19 11:52:55 2018 +0200 > @@ -432,4 +432,5 @@ > void ShenandoahHeap::reset_mark_bitmap() { > assert_gc_workers(_workers->active_workers()); > + mark_incomplete_marking_context(); > > ShenandoahResetBitmapTask task; > @@ -1471,4 +1472,5 @@ > > assert(marking_context()->is_bitmap_clear(), "need clear marking bitmap"); > + assert(!marking_context()->is_complete(), "should not be complete"); > > if (ShenandoahVerify) { > diff -r 4a4a23717517 src/hotspot/share/gc/shenandoah/shenandoahMarkCompact.cpp > --- a/src/hotspot/share/gc/shenandoah/shenandoahMarkCompact.cpp Wed Sep 19 11:42:05 2018 +0200 > +++ b/src/hotspot/share/gc/shenandoah/shenandoahMarkCompact.cpp Wed Sep 19 11:52:55 2018 +0200 > @@ -109,4 +109,5 @@ > heap->reset_mark_bitmap(); > assert(heap->marking_context()->is_bitmap_clear(), "sanity"); > + assert(!heap->marking_context()->is_complete(), "sanity"); > > // d. Abandon reference discovery and clear all discovered references. > diff -r 4a4a23717517 src/hotspot/share/gc/shenandoah/shenandoahTraversalGC.cpp > --- a/src/hotspot/share/gc/shenandoah/shenandoahTraversalGC.cpp Wed Sep 19 11:42:05 2018 +0200 > +++ b/src/hotspot/share/gc/shenandoah/shenandoahTraversalGC.cpp Wed Sep 19 11:52:55 2018 +0200 > @@ -382,4 +382,5 @@ > > assert(_heap->marking_context()->is_bitmap_clear(), "need clean mark bitmap"); > + assert(!_heap->marking_context()->is_complete(), "should not be complete"); > > ShenandoahFreeSet* free_set = _heap->free_set(); > > Testing: tier3_gc_shenandoah > > Thanks, > -Aleksey > From rkennke at redhat.com Wed Sep 19 10:33:21 2018 From: rkennke at redhat.com (Roman Kennke) Date: Wed, 19 Sep 2018 12:33:21 +0200 Subject: RFR: Clean up declarations and uses of marked_object_iterate In-Reply-To: <2725c94e-2603-b5b9-03a4-a35e276325a0@redhat.com> References: <2725c94e-2603-b5b9-03a4-a35e276325a0@redhat.com> Message-ID: Ok > http://cr.openjdk.java.net/~shade/shenandoah/cleanups-moi/webrev.01/ > > Continuing on cleaning up ShenandoahHeap interface. marked_object_iterate and friends can be sweeped > up. This makes UR code a bit more straight-forward too. > > Testing: tier3_gc_shenandoah (running) > > Thanks, > -Aleksey > From shade at redhat.com Wed Sep 19 10:51:42 2018 From: shade at redhat.com (Aleksey Shipilev) Date: Wed, 19 Sep 2018 12:51:42 +0200 Subject: RFR: Remove MemberNameLeak test from ProblemList Message-ID: <04221f36-2633-b933-1f21-05bb314f8b27@redhat.com> We have left-over entry in ProblemList here: https://builds.shipilev.net/patch-openjdk-shenandoah-jdk/v87-vs-f0f5d23449d3/test/hotspot/jtreg/ProblemList.txt.sdiff.html We have cherry-picked it earlier here: http://hg.openjdk.java.net/shenandoah/jdk/rev/1278eeea1a96 Upstream does not have it anymore: http://hg.openjdk.java.net/jdk/jdk/file/3fabe59fe4de/test/hotspot/jtreg/ProblemList.txt#l87 Because it got the fix: http://hg.openjdk.java.net/jdk/jdk/rev/0c4f2b26849e This removes the cherry-pick from sh/jdk: diff -r a0d4bdb59751 test/hotspot/jtreg/ProblemList.txt --- a/test/hotspot/jtreg/ProblemList.txt Wed Sep 19 12:26:35 2018 +0200 +++ b/test/hotspot/jtreg/ProblemList.txt Wed Sep 19 12:33:00 2018 +0200 @@ -85,5 +85,4 @@ runtime/RedefineTests/RedefineRunningMethods.java 8208778 macosx-x64 runtime/SharedArchiveFile/SASymbolTableTest.java 8193639 solaris-all -runtime/MemberName/MemberNameLeak.java 8209844 generic-all ############################################################################# Testing: run-test runtime/MemberName/MemberNameLeak -Aleksey From rkennke at redhat.com Wed Sep 19 11:02:49 2018 From: rkennke at redhat.com (Roman Kennke) Date: Wed, 19 Sep 2018 13:02:49 +0200 Subject: RFR: Remove MemberNameLeak test from ProblemList In-Reply-To: <04221f36-2633-b933-1f21-05bb314f8b27@redhat.com> References: <04221f36-2633-b933-1f21-05bb314f8b27@redhat.com> Message-ID: <486a54e4-68be-7bed-996b-59295ee2e6f4@redhat.com> Sure. Do it! Roman > We have left-over entry in ProblemList here: > > https://builds.shipilev.net/patch-openjdk-shenandoah-jdk/v87-vs-f0f5d23449d3/test/hotspot/jtreg/ProblemList.txt.sdiff.html > > We have cherry-picked it earlier here: > http://hg.openjdk.java.net/shenandoah/jdk/rev/1278eeea1a96 > > Upstream does not have it anymore: > http://hg.openjdk.java.net/jdk/jdk/file/3fabe59fe4de/test/hotspot/jtreg/ProblemList.txt#l87 > > Because it got the fix: > http://hg.openjdk.java.net/jdk/jdk/rev/0c4f2b26849e > > This removes the cherry-pick from sh/jdk: > > diff -r a0d4bdb59751 test/hotspot/jtreg/ProblemList.txt > --- a/test/hotspot/jtreg/ProblemList.txt Wed Sep 19 12:26:35 2018 +0200 > +++ b/test/hotspot/jtreg/ProblemList.txt Wed Sep 19 12:33:00 2018 +0200 > @@ -85,5 +85,4 @@ > runtime/RedefineTests/RedefineRunningMethods.java 8208778 macosx-x64 > runtime/SharedArchiveFile/SASymbolTableTest.java 8193639 solaris-all > -runtime/MemberName/MemberNameLeak.java 8209844 generic-all > > ############################################################################# > > Testing: run-test runtime/MemberName/MemberNameLeak > > -Aleksey > From shade at redhat.com Wed Sep 19 11:02:13 2018 From: shade at redhat.com (shade at redhat.com) Date: Wed, 19 Sep 2018 11:02:13 +0000 Subject: hg: shenandoah/jdk: 5 new changesets Message-ID: <201809191102.w8JB2Ea4020267@aojmv0008.oracle.com> Changeset: d31943a2d045 Author: shade Date: 2018-09-19 11:26 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/d31943a2d045 Clean up dead code - src/hotspot/cpu/aarch64/gc/shenandoah/shenandoahBarrierSet_aarch64.cpp - src/hotspot/cpu/x86/gc/shenandoah/shenandoahBarrierSet_x86.cpp ! src/hotspot/share/gc/shenandoah/c2/shenandoahBarrierSetC2.cpp ! src/hotspot/share/gc/shenandoah/c2/shenandoahSupport.cpp ! src/hotspot/share/gc/shenandoah/c2/shenandoahSupport.hpp ! src/hotspot/share/gc/shenandoah/shenandoahAsserts.cpp ! src/hotspot/share/gc/shenandoah/shenandoahCollectorPolicy.cpp ! src/hotspot/share/gc/shenandoah/shenandoahCollectorPolicy.hpp ! src/hotspot/share/gc/shenandoah/shenandoahConcurrentMark.hpp ! src/hotspot/share/gc/shenandoah/shenandoahHeap.cpp ! src/hotspot/share/gc/shenandoah/shenandoahHeap.hpp ! src/hotspot/share/gc/shenandoah/shenandoahStrDedupQueue.cpp ! src/hotspot/share/gc/shenandoah/shenandoahStrDedupQueue.hpp ! src/hotspot/share/gc/shenandoah/shenandoahTraversalGC.inline.hpp Changeset: 4a4a23717517 Author: shade Date: 2018-09-19 11:42 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/4a4a23717517 Remove Parallel Cleanup counters ! src/hotspot/share/gc/shenandoah/shenandoahHeap.cpp ! src/hotspot/share/gc/shenandoah/shenandoahPhaseTimings.cpp ! src/hotspot/share/gc/shenandoah/shenandoahPhaseTimings.hpp Changeset: 7668813721b1 Author: shade Date: 2018-09-19 12:19 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/7668813721b1 Make sure bitmap is marked incomplete before bitmap resets ! src/hotspot/share/gc/shenandoah/shenandoahHeap.cpp ! src/hotspot/share/gc/shenandoah/shenandoahMarkCompact.cpp ! src/hotspot/share/gc/shenandoah/shenandoahTraversalGC.cpp Changeset: a0d4bdb59751 Author: shade Date: 2018-09-19 12:26 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/a0d4bdb59751 Clean up declarations and uses of marked_object_iterate ! src/hotspot/share/gc/shenandoah/shenandoahHeap.cpp ! src/hotspot/share/gc/shenandoah/shenandoahHeap.hpp ! src/hotspot/share/gc/shenandoah/shenandoahHeap.inline.hpp Changeset: 3c049d83c6ba Author: shade Date: 2018-09-19 12:35 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/3c049d83c6ba Remove MemberNameLeak test from ProblemList ! test/hotspot/jtreg/ProblemList.txt From zgu at redhat.com Wed Sep 19 14:27:35 2018 From: zgu at redhat.com (Zhengyu Gu) Date: Wed, 19 Sep 2018 10:27:35 -0400 Subject: C2 assertion failure with ExtendedDTraceProbes Message-ID: Hi Roland, Could you please take a look: make CONF=linux-x86_64-normal-server-fastdebug run-test TEST=gc/shenandoah/CriticalNativeArgs.java JTREG="VM_OPTIONS=-XX:+ExtendedDTraceProbes" # To suppress the following error report, specify this argument # after -XX: or in .hotspotrc: SuppressErrorAt=/shenandoahSupport.cpp:4018 # # A fatal error has been detected by the Java Runtime Environment: # # Internal Error (/home/zgu/workspace/shenandoah-jdk/src/hotspot/share/gc/shenandoah/c2/shenandoahSupport.cpp:4018), pid=6569, tid=6580 # Error: assert(new_mem->outcnt() > 0) failed # # JRE version: OpenJDK Runtime Environment (12.0) (fastdebug build 12-internal+0-adhoc.zgu.shenandoah-jdk) # Java VM: OpenJDK 64-Bit Server VM (fastdebug 12-internal+0-adhoc.zgu.shenandoah-jdk, compiled mode, tiered, compressed oops, shenandoah gc, linux-amd64) # Core dump will be written. Default location: /home/zgu/workspace/shenandoah-jdk/build/linux-x86_64-normal-server-fastdebug/test-support/jtreg_test_hotspot_jtreg_gc_shenandoah_CriticalNativeArgs_java/scratch/0/core.6569 # Thanks, -Zhengyu From rkennke at redhat.com Wed Sep 19 14:36:36 2018 From: rkennke at redhat.com (Roman Kennke) Date: Wed, 19 Sep 2018 16:36:36 +0200 Subject: RFR: Turn TestReferenceCAS into a standalone/no-testng test Message-ID: <6f15f660-9418-23a7-a30d-61a2643967ec@redhat.com> TestReferenceCAS has been written (by me) as a TestNG test. I am not sure why, but it's impractical when you want to debug this, e.g run standalone, in debugger, etc. It also doesn't add any particular value. This change proposes to turn the test into an ordinary main-test, and also adds a comment how to run it, because I can't remember the magic incantantion to get Unsafe accessible. http://cr.openjdk.java.net/~rkennke/refcastest/webrev.00/ Ok? Testing: TestReferenceCAS ;-) Roman From shade at redhat.com Wed Sep 19 14:36:53 2018 From: shade at redhat.com (Aleksey Shipilev) Date: Wed, 19 Sep 2018 16:36:53 +0200 Subject: RFR: Turn TestReferenceCAS into a standalone/no-testng test In-Reply-To: <6f15f660-9418-23a7-a30d-61a2643967ec@redhat.com> References: <6f15f660-9418-23a7-a30d-61a2643967ec@redhat.com> Message-ID: <3c012ea9-7a3b-ac09-46ad-efd0df968ec7@redhat.com> On 09/19/2018 04:36 PM, Roman Kennke wrote: > TestReferenceCAS has been written (by me) as a TestNG test. I am not > sure why, but it's impractical when you want to debug this, e.g run > standalone, in debugger, etc. It also doesn't add any particular value. > This change proposes to turn the test into an ordinary main-test, and > also adds a comment how to run it, because I can't remember the magic > incantantion to get Unsafe accessible. > > http://cr.openjdk.java.net/~rkennke/refcastest/webrev.00/ Sure, no problem. -Aleksey From rwestrel at redhat.com Wed Sep 19 15:08:23 2018 From: rwestrel at redhat.com (Roland Westrelin) Date: Wed, 19 Sep 2018 17:08:23 +0200 Subject: C2 assertion failure with ExtendedDTraceProbes In-Reply-To: References: Message-ID: > # Internal Error > (/home/zgu/workspace/shenandoah-jdk/src/hotspot/share/gc/shenandoah/c2/shenandoahSupport.cpp:4018), > pid=6569, tid=6580 > # Error: assert(new_mem->outcnt() > 0) failed I can't reproduce that one. I get a crash in c1 code instead. Do you have a replay file? Roland. From zgu at redhat.com Wed Sep 19 15:12:19 2018 From: zgu at redhat.com (Zhengyu Gu) Date: Wed, 19 Sep 2018 11:12:19 -0400 Subject: C2 assertion failure with ExtendedDTraceProbes In-Reply-To: References: Message-ID: <6671e84e-8e1a-f3c9-b94c-ed3d9f47dec8@redhat.com> On 09/19/2018 11:08 AM, Roland Westrelin wrote: > >> # Internal Error >> (/home/zgu/workspace/shenandoah-jdk/src/hotspot/share/gc/shenandoah/c2/shenandoahSupport.cpp:4018), >> pid=6569, tid=6580 >> # Error: assert(new_mem->outcnt() > 0) failed > > I can't reproduce that one. I get a crash in c1 code instead. Do you > have a replay file? Ah, you need: http://mail.openjdk.java.net/pipermail/shenandoah-dev/2018-September/007563.html Could you also take a look this one? Thanks, -Zhengyu > > Roland. > From rwestrel at redhat.com Wed Sep 19 15:17:34 2018 From: rwestrel at redhat.com (Roland Westrelin) Date: Wed, 19 Sep 2018 17:17:34 +0200 Subject: RFR: Fix ExtendedDTraceProbes with Shenandoah In-Reply-To: References: Message-ID: > http://cr.openjdk.java.net/~zgu/shenandoah/extended_dtrace_probes/webrev.00/ Can you give some more details? What destroys the base? Is this a ExtendedDTraceProbes fix? Roland. From roman at kennke.org Wed Sep 19 15:19:02 2018 From: roman at kennke.org (roman at kennke.org) Date: Wed, 19 Sep 2018 15:19:02 +0000 Subject: hg: shenandoah/jdk: Turn TestReferenceCAS into a standalone/no-testng test Message-ID: <201809191519.w8JFJ25H021627@aojmv0008.oracle.com> Changeset: 4c3faf49b391 Author: rkennke Date: 2018-09-19 16:37 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/4c3faf49b391 Turn TestReferenceCAS into a standalone/no-testng test ! test/hotspot/jtreg/gc/shenandoah/compiler/TestReferenceCAS.java From zgu at redhat.com Wed Sep 19 15:30:42 2018 From: zgu at redhat.com (Zhengyu Gu) Date: Wed, 19 Sep 2018 11:30:42 -0400 Subject: RFR: Fix ExtendedDTraceProbes with Shenandoah In-Reply-To: References: Message-ID: On 09/19/2018 11:17 AM, Roland Westrelin wrote: > >> http://cr.openjdk.java.net/~zgu/shenandoah/extended_dtrace_probes/webrev.00/ > > Can you give some more details? What destroys the base? Is this a > ExtendedDTraceProbes fix? This is an attempt to fix C1 crash with ExtendedDTraceProbes. we are not sure about it is right fix (offline chat discussion). This patch might just kill the symptom that described in attached "before fix LIR", since G1 generates similar LIR, but happens to use different register for loading 0x10 @146, so it does not destroy base. Unfortunately, it is not the case for Shenandoah, load @146 destroys the base ... could it be register allocator's bug? Thanks, -Zhengyu > > Roland. > From shade at redhat.com Wed Sep 19 16:34:53 2018 From: shade at redhat.com (Aleksey Shipilev) Date: Wed, 19 Sep 2018 18:34:53 +0200 Subject: RFR: Unclutter ShenandoahHeap (multiple changes) Message-ID: <17f02020-c9ce-3b84-f84d-701aa4e34eed@redhat.com> http://cr.openjdk.java.net/~shade/shenandoah/unclutter-sh-heap/webrev.01/ This is a bulk webrev that tries to unclutter the main ShenandoahHeap class, before we try and rearrange some of the declarations. I deliberately split it in several changesets to simplify backports. A brief tour of changes: *) Homogenize unimplemented stubs handling. This removes most of the stubs that have ShouldNotReachThere/ShouldNotCallThis/Unimplemented in favor of our clear-cut define. Those stubs are needed to match the overly-wide upstream interface, but nothing actually calls those stubs if GC does not want it. *) Remove unused alloc-seq recording for start/end of GC cycle. It was there for partial heuristics, and it is not needed now. These methods are slowly bit-rotting and clutter the ShHeap. *) Move ShenandoahAllocType and ShenandoahAllocRequest to separate file. This cuts down the clutter in ShHeap by moving the 200+ line definition into the separate file. *) Inline ShHeap::prepare_concurrent_evacuation. The method has only one use, and it is small to be inlined into op_final_mark. *) Inline ShHeap::fixup_roots. The method has only one use, and it can be inlined right at use. *) Remove ShHeap::region_in_collection_set in favor of SHR::in_cset. We already have this data in region status, there is no need to keep the separate method for it. Verifier still checks the collection set view and region statuses are in sync. *) Inline ShHeap::do_marked_object_complete. The method was a convenience for two asserts it had. Can be inlined right at use to declutter ShHeap. *) Rename concurrentMark -> concurrent_mark. Obvious camelCase removal. Testing: tier3_gc_shenandoah {fastdebug|release} Thanks, -Aleksey From rwestrel at redhat.com Wed Sep 19 18:11:35 2018 From: rwestrel at redhat.com (Roland Westrelin) Date: Wed, 19 Sep 2018 20:11:35 +0200 Subject: C2 assertion failure with ExtendedDTraceProbes In-Reply-To: <6671e84e-8e1a-f3c9-b94c-ed3d9f47dec8@redhat.com> References: <6671e84e-8e1a-f3c9-b94c-ed3d9f47dec8@redhat.com> Message-ID: > Could you also take a look this one? I'll take a look at both when I have time. Roland. From zgu at redhat.com Wed Sep 19 18:54:47 2018 From: zgu at redhat.com (Zhengyu Gu) Date: Wed, 19 Sep 2018 14:54:47 -0400 Subject: C2 assertion failure with ExtendedDTraceProbes In-Reply-To: References: <6671e84e-8e1a-f3c9-b94c-ed3d9f47dec8@redhat.com> Message-ID: <5a9c867b-7eaa-ec25-d1ad-cc25c4540a6a@redhat.com> On 09/19/2018 02:11 PM, Roland Westrelin wrote: >> Could you also take a look this one? > I'll take a look at both when I have time. Thanks, -Zhengyu > Roland. From rkennke at redhat.com Thu Sep 20 09:12:34 2018 From: rkennke at redhat.com (Roman Kennke) Date: Thu, 20 Sep 2018 11:12:34 +0200 Subject: RFR: Unclutter ShenandoahHeap (multiple changes) In-Reply-To: <17f02020-c9ce-3b84-f84d-701aa4e34eed@redhat.com> References: <17f02020-c9ce-3b84-f84d-701aa4e34eed@redhat.com> Message-ID: <58f44f3d-660c-2ef5-7393-9073536dc7f5@redhat.com> Looks good. Thanks! Roman > http://cr.openjdk.java.net/~shade/shenandoah/unclutter-sh-heap/webrev.01/ > > This is a bulk webrev that tries to unclutter the main ShenandoahHeap class, before we try and > rearrange some of the declarations. I deliberately split it in several changesets to simplify > backports. A brief tour of changes: > > *) Homogenize unimplemented stubs handling. This removes most of the stubs that have > ShouldNotReachThere/ShouldNotCallThis/Unimplemented in favor of our clear-cut define. Those stubs > are needed to match the overly-wide upstream interface, but nothing actually calls those stubs if GC > does not want it. > > *) Remove unused alloc-seq recording for start/end of GC cycle. It was there for partial > heuristics, and it is not needed now. These methods are slowly bit-rotting and clutter the ShHeap. > > *) Move ShenandoahAllocType and ShenandoahAllocRequest to separate file. This cuts down the clutter > in ShHeap by moving the 200+ line definition into the separate file. > > *) Inline ShHeap::prepare_concurrent_evacuation. The method has only one use, and it is small to be > inlined into op_final_mark. > > *) Inline ShHeap::fixup_roots. The method has only one use, and it can be inlined right at use. > > *) Remove ShHeap::region_in_collection_set in favor of SHR::in_cset. We already have this data in > region status, there is no need to keep the separate method for it. Verifier still checks the > collection set view and region statuses are in sync. > > *) Inline ShHeap::do_marked_object_complete. The method was a convenience for two asserts it had. > Can be inlined right at use to declutter ShHeap. > > *) Rename concurrentMark -> concurrent_mark. Obvious camelCase removal. > > Testing: tier3_gc_shenandoah {fastdebug|release} > > Thanks, > -Aleksey > From shade at redhat.com Thu Sep 20 09:35:53 2018 From: shade at redhat.com (shade at redhat.com) Date: Thu, 20 Sep 2018 09:35:53 +0000 Subject: hg: shenandoah/jdk: 9 new changesets Message-ID: <201809200935.w8K9ZsC8004214@aojmv0008.oracle.com> Changeset: 64b87208b2b3 Author: shade Date: 2018-09-20 11:35 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/64b87208b2b3 Homogenize unimplemented stubs handling ! src/hotspot/share/gc/shenandoah/shenandoahAsserts.hpp ! src/hotspot/share/gc/shenandoah/shenandoahBarrierSet.cpp ! src/hotspot/share/gc/shenandoah/shenandoahBarrierSet.hpp ! src/hotspot/share/gc/shenandoah/shenandoahHeap.cpp ! src/hotspot/share/gc/shenandoah/shenandoahHeap.hpp ! src/hotspot/share/gc/shenandoah/shenandoahHeapRegion.cpp ! src/hotspot/share/gc/shenandoah/shenandoahHeapRegion.hpp Changeset: e86a1f2c5c12 Author: shade Date: 2018-09-20 11:35 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/e86a1f2c5c12 Remove unused alloc-seq recording for start/end of GC cycle ! src/hotspot/share/gc/shenandoah/shenandoahControlThread.cpp ! src/hotspot/share/gc/shenandoah/shenandoahHeap.cpp ! src/hotspot/share/gc/shenandoah/shenandoahHeap.hpp ! src/hotspot/share/gc/shenandoah/shenandoahHeuristics.cpp Changeset: 2a6e52a499fe Author: shade Date: 2018-09-20 11:35 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/2a6e52a499fe Move ShenandoahAllocType and ShenandoahAllocRequest to separate file + src/hotspot/share/gc/shenandoah/shenandoahAllocRequest.hpp ! src/hotspot/share/gc/shenandoah/shenandoahAllocTracker.cpp ! src/hotspot/share/gc/shenandoah/shenandoahAllocTracker.hpp ! src/hotspot/share/gc/shenandoah/shenandoahFreeSet.cpp ! src/hotspot/share/gc/shenandoah/shenandoahFreeSet.hpp ! src/hotspot/share/gc/shenandoah/shenandoahHeap.cpp ! src/hotspot/share/gc/shenandoah/shenandoahHeap.hpp ! src/hotspot/share/gc/shenandoah/shenandoahHeap.inline.hpp ! src/hotspot/share/gc/shenandoah/shenandoahHeapRegion.hpp ! src/hotspot/share/gc/shenandoah/shenandoahHeapRegion.inline.hpp ! src/hotspot/share/gc/shenandoah/shenandoahUtils.cpp ! src/hotspot/share/gc/shenandoah/shenandoahUtils.hpp Changeset: 8ce61e1782bd Author: shade Date: 2018-09-20 11:35 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/8ce61e1782bd Inline ShHeap::prepare_concurrent_evacuation ! src/hotspot/share/gc/shenandoah/shenandoahHeap.cpp ! src/hotspot/share/gc/shenandoah/shenandoahHeap.hpp Changeset: 3bfd1e8973b4 Author: shade Date: 2018-09-20 11:35 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/3bfd1e8973b4 Inline ShHeap::fixup_roots ! src/hotspot/share/gc/shenandoah/shenandoahHeap.cpp ! src/hotspot/share/gc/shenandoah/shenandoahHeap.hpp Changeset: 54c4753b1c08 Author: shade Date: 2018-09-20 11:35 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/54c4753b1c08 Remove ShHeap::region_in_collection_set in favor of SHR::in_cset ! src/hotspot/share/gc/shenandoah/shenandoahFreeSet.cpp ! src/hotspot/share/gc/shenandoah/shenandoahHeap.cpp ! src/hotspot/share/gc/shenandoah/shenandoahHeap.hpp ! src/hotspot/share/gc/shenandoah/shenandoahHeap.inline.hpp ! src/hotspot/share/gc/shenandoah/shenandoahHeapRegion.cpp ! src/hotspot/share/gc/shenandoah/shenandoahVerifier.cpp Changeset: 2e157aab4a20 Author: shade Date: 2018-09-20 11:35 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/2e157aab4a20 Inline ShHeap::do_marked_object_complete ! src/hotspot/share/gc/shenandoah/shenandoahHeap.hpp ! src/hotspot/share/gc/shenandoah/shenandoahHeap.inline.hpp Changeset: e4ba9b64c5f0 Author: shade Date: 2018-09-20 11:35 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/e4ba9b64c5f0 Rename concurrentMark -> concurrent_mark ! src/hotspot/share/gc/shenandoah/shenandoahConcurrentMark.cpp ! src/hotspot/share/gc/shenandoah/shenandoahHeap.cpp ! src/hotspot/share/gc/shenandoah/shenandoahHeap.hpp ! src/hotspot/share/gc/shenandoah/shenandoahMarkCompact.cpp ! src/hotspot/share/gc/shenandoah/shenandoahTraversalGC.cpp Changeset: 903dc2ae2b01 Author: shade Date: 2018-09-20 11:35 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/903dc2ae2b01 Remove ShHeap::_heap_expansion_count ! src/hotspot/share/gc/shenandoah/shenandoahHeap.cpp ! src/hotspot/share/gc/shenandoah/shenandoahHeap.hpp From rkennke at redhat.com Thu Sep 20 11:29:56 2018 From: rkennke at redhat.com (Roman Kennke) Date: Thu, 20 Sep 2018 13:29:56 +0200 Subject: RFR: Upstream merge to jdk-12+12 Message-ID: This merges changes from jdk/jdk into sh/jdk, up to tag jdk-12+12. http://cr.openjdk.java.net/~rkennke/upstream-merge-2018-08-19/outgoing.txt Notable changes: 8210713: Let CollectedHeap::ensure_parsability() take care of TLAB statistics gathering Other than that, it was a very straightforward affair. Testing: tier3_gc_shenandoah Ok? Roman From shade at redhat.com Thu Sep 20 12:05:41 2018 From: shade at redhat.com (Aleksey Shipilev) Date: Thu, 20 Sep 2018 14:05:41 +0200 Subject: RFR: Upstream merge to jdk-12+12 In-Reply-To: References: Message-ID: <91f96d82-0c7f-bcea-755d-a159a91dd2f0@redhat.com> On 09/20/2018 01:29 PM, Roman Kennke wrote: > This merges changes from jdk/jdk into sh/jdk, up to tag jdk-12+12. > > http://cr.openjdk.java.net/~rkennke/upstream-merge-2018-08-19/outgoing.txt Looks good. > Notable changes: > 8210713: Let CollectedHeap::ensure_parsability() take care of TLAB > statistics gathering It would probably clash with my shenandoahHeap.hpp reshuffling, but that's okay. -Aleksey From roman at kennke.org Thu Sep 20 12:27:17 2018 From: roman at kennke.org (roman at kennke.org) Date: Thu, 20 Sep 2018 12:27:17 +0000 Subject: hg: shenandoah/jdk: 91 new changesets Message-ID: <201809201227.w8KCROmS027756@aojmv0008.oracle.com> Changeset: d424675a9743 Author: jlaskey Date: 2018-09-12 14:19 -0300 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/d424675a9743 8206981: Compiler support for Raw String Literals Reviewed-by: mcimadamore, briangoetz, abuckley, jjg, vromero, jlahoda ! src/jdk.compiler/share/classes/com/sun/tools/javac/code/Preview.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/code/Source.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/parser/JavaTokenizer.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/parser/UnicodeReader.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/resources/compiler.properties + test/langtools/tools/javac/RawStringLiteralLang.java + test/langtools/tools/javac/RawStringLiteralLangAPI.java ! test/langtools/tools/javac/diags/examples/IllegalChar.java Changeset: 975d3636a2f9 Author: jlaskey Date: 2018-09-12 14:19 -0300 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/975d3636a2f9 8200434: String::align, String::indent Reviewed-by: abuckley, smarks, sherman, rriggs, jrose, sundar, igerasim, briangoetz, darcy, jjg ! 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 + test/jdk/java/lang/String/AlignIndent.java Changeset: 13a63d4a3f8d Author: jcbeyler Date: 2018-09-12 10:27 -0700 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/13a63d4a3f8d 8210593: Clean up JNI_ENV_ARG and factorize the macros for vmTestbase/jvmti[N-R] tests Summary: Remove JNI_ENV/JVMTI_ENV macros from N to R jvmti tests Reviewed-by: amenkov, dholmes ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/PopFrame/popframe001/popframe001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/PopFrame/popframe002/popframe002.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/PopFrame/popframe003/popframe003.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/PopFrame/popframe004/popframe004.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/PopFrame/popframe006/popframe006.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/PopFrame/popframe007/popframe007.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/PopFrame/popframe008/popframe008.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/PopFrame/popframe009/popframe009.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/PopFrame/popframe010/popframe010.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/PopFrame/popframe011/popframe011.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/RawMonitorEnter/rawmonenter001/rawmonenter001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/RawMonitorEnter/rawmonenter002/rawmonenter002.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/RawMonitorEnter/rawmonenter003/rawmonenter003.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/RawMonitorEnter/rawmonenter004/rawmonenter004.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/RawMonitorExit/rawmonexit001/rawmonexit001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/RawMonitorExit/rawmonexit002/rawmonexit002.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/RawMonitorExit/rawmonexit003/rawmonexit003.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/RawMonitorExit/rawmonexit005/rawmonexit005.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/RawMonitorNotify/rawmnntfy001/rawmnntfy001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/RawMonitorNotify/rawmnntfy002/rawmnntfy002.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/RawMonitorNotify/rawmnntfy003/rawmnntfy003.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/RawMonitorNotify/rawmnntfy004/rawmnntfy004.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/RawMonitorNotifyAll/rawmnntfyall001/rawmnntfyall001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/RawMonitorNotifyAll/rawmnntfyall002/rawmnntfyall002.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/RawMonitorNotifyAll/rawmnntfyall003/rawmnntfyall003.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/RawMonitorNotifyAll/rawmnntfyall004/rawmnntfyall004.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/RawMonitorWait/rawmnwait001/rawmnwait001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/RawMonitorWait/rawmnwait002/rawmnwait002.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/RawMonitorWait/rawmnwait003/rawmnwait003.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/RawMonitorWait/rawmnwait004/rawmnwait004.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/RawMonitorWait/rawmnwait005/rawmnwait005.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/RedefineClasses/StressRedefine/stressRedefine.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/RedefineClasses/redefclass001/redefclass001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/RedefineClasses/redefclass002/redefclass002.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/RedefineClasses/redefclass003/redefclass003.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/RedefineClasses/redefclass004/redefclass004.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/RedefineClasses/redefclass005/redefclass005.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/RedefineClasses/redefclass006/redefclass006.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/RedefineClasses/redefclass008/redefclass008.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/RedefineClasses/redefclass009/redefclass009.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/RedefineClasses/redefclass010/redefclass010.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/RedefineClasses/redefclass011/redefclass011.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/RedefineClasses/redefclass012/redefclass012.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/RedefineClasses/redefclass013/redefclass013.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/RedefineClasses/redefclass014/redefclass014.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/RedefineClasses/redefclass015/redefclass015.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/RedefineClasses/redefclass016/redefclass016.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/RedefineClasses/redefclass017/redefclass017.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/RedefineClasses/redefclass018/redefclass018.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/RedefineClasses/redefclass019/redefclass019.cpp Changeset: e7459270ca63 Author: amenkov Date: 2018-09-12 12:29 -0700 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/e7459270ca63 8210560: [TEST] convert com/sun/jdi redefineClass-related tests Reviewed-by: jcbeyler, sspitsyn - test/jdk/com/sun/jdi/Redefine-g.sh + test/jdk/com/sun/jdi/RedefineAbstractClass.java - test/jdk/com/sun/jdi/RedefineAbstractClass.sh + test/jdk/com/sun/jdi/RedefineAddPrivateMethod.java - test/jdk/com/sun/jdi/RedefineAddPrivateMethod.sh + test/jdk/com/sun/jdi/RedefineAnnotation.java - test/jdk/com/sun/jdi/RedefineAnnotation.sh + test/jdk/com/sun/jdi/RedefineChangeClassOrder.java - test/jdk/com/sun/jdi/RedefineChangeClassOrder.sh + test/jdk/com/sun/jdi/RedefineClasses.java - test/jdk/com/sun/jdi/RedefineClasses.sh + test/jdk/com/sun/jdi/RedefineClearBreakpoint.java - test/jdk/com/sun/jdi/RedefineClearBreakpoint.sh + test/jdk/com/sun/jdi/RedefineG.java + test/jdk/com/sun/jdi/RedefineImplementor.java - test/jdk/com/sun/jdi/RedefineImplementor.sh + test/jdk/com/sun/jdi/lib/jdb/ClassTransformer.java ! test/jdk/com/sun/jdi/lib/jdb/JdbCommand.java ! test/jdk/com/sun/jdi/lib/jdb/JdbTest.java Changeset: 75261571c13d Author: jlaskey Date: 2018-09-12 17:14 -0300 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/75261571c13d 8210671: CheckExamples.java fail after Raw String Literals checkin Reviewed-by: vromero, darcy ! test/langtools/tools/javac/diags/examples.not-yet.txt Changeset: 2b7ff77c1496 Author: jwilhelm Date: 2018-09-13 01:41 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/2b7ff77c1496 Added tag jdk-12+11 for changeset f0f5d23449d3 ! .hgtags Changeset: e3411e5e473d Author: vromero Date: 2018-09-12 16:28 -0700 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/e3411e5e473d 8207160: ClassReader::adjustMethodParams can potentially return null if the args list is empty Reviewed-by: mcimadamore, cushon ! src/jdk.compiler/share/classes/com/sun/tools/javac/jvm/ClassReader.java + test/langtools/tools/javac/AvoidNPEAtClassReader/AvoidNPEAtClassReaderTest.java + test/langtools/tools/javac/AvoidNPEAtClassReader/pkg/Outer$Inner.jasm + test/langtools/tools/javac/AvoidNPEAtClassReader/pkg/Outer.jasm Changeset: b7bfd64e43a6 Author: iklam Date: 2018-09-12 17:45 -0700 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/b7bfd64e43a6 8210523: runtime/appcds/cacheObject/DifferentHeapSizes.java crash Reviewed-by: jiangli, ccheung ! src/hotspot/share/classfile/compactHashtable.cpp ! src/hotspot/share/classfile/compactHashtable.inline.hpp ! src/hotspot/share/memory/filemap.cpp ! src/hotspot/share/memory/filemap.hpp ! src/hotspot/share/memory/heapShared.cpp ! src/hotspot/share/memory/heapShared.hpp ! src/hotspot/share/memory/heapShared.inline.hpp ! src/hotspot/share/memory/metaspaceShared.cpp ! test/hotspot/jtreg/runtime/appcds/cacheObject/DifferentHeapSizes.java ! test/lib/jdk/test/lib/cds/CDSTestUtils.java Changeset: 96b76dca2be8 Author: cushon Date: 2018-09-10 16:59 -0700 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/96b76dca2be8 8210483: AssertionError in DeferredAttr at setOverloadKind caused by JDK-8203679 Reviewed-by: mcimadamore, vromero ! src/jdk.compiler/share/classes/com/sun/tools/javac/comp/ArgumentAttr.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/comp/DeferredAttr.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/tree/JCTree.java + test/langtools/tools/javac/lambda/methodReference/MethodRefStuck.java + test/langtools/tools/javac/lambda/methodReference/MethodRefStuck.out Changeset: 49efbe629159 Author: iignatyev Date: 2018-09-12 21:56 -0700 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/49efbe629159 8210699: Problem list tests which times out in Xcomp mode Reviewed-by: kvn + test/hotspot/jtreg/ProblemList-Xcomp.txt + test/jdk/ProblemList-Xcomp.txt Changeset: d3ada4479724 Author: ihse Date: 2018-09-13 12:41 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/d3ada4479724 8210704: Remove dead build tools Reviewed-by: alanb ! make/ToolsJdk.gmk - make/jdk/src/classes/build/tools/hasher/Hasher.java - make/jdk/src/classes/build/tools/jarreorder/JarReorder.java Changeset: 8abb0fa2c334 Author: michaelm Date: 2018-09-13 12:07 +0100 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/8abb0fa2c334 8210311: IllegalArgumentException in CookieManager - Comparison method violates its general contract Reviewed-by: chegar, dfuchs ! src/java.base/share/classes/java/net/CookieManager.java ! src/java.base/share/classes/java/net/HttpCookie.java ! test/jdk/java/net/CookieHandler/CookieManagerTest.java + test/jdk/java/net/whitebox/CookieTestDriver.java + test/jdk/java/net/whitebox/TEST.properties + test/jdk/java/net/whitebox/java.base/java/net/CookieManagerTest.java Changeset: ccea318862ae Author: jlaskey Date: 2018-09-13 14:15 -0300 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/ccea318862ae 8210674: Need to add examples for use of javac properties introduced by Raw String Literals Reviewed-by: vromero, jjg ! test/langtools/tools/javac/diags/examples.not-yet.txt + test/langtools/tools/javac/diags/examples/RawStringLiteral.java Changeset: a3989376ade2 Author: jiangli Date: 2018-09-13 13:30 -0400 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/a3989376ade2 8210193: [TESTBUG]gc/g1/mixedgc/TestOldGenCollectionUsage.java fails intermittently with OutOfMemoryError in CDS mode. Summary: Increase java heap size in TestOldGenCollectionUsage. Catch OOM in tests. Reviewed-by: phh, iklam ! test/hotspot/jtreg/gc/g1/mixedgc/TestLogging.java ! test/hotspot/jtreg/gc/g1/mixedgc/TestOldGenCollectionUsage.java Changeset: 49b885c1711a Author: ihse Date: 2018-09-13 21:12 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/49b885c1711a 8210702: Remove dtrace mapfiles Reviewed-by: erikj ! make/hotspot/lib/CompileDtraceLibraries.gmk - make/mapfiles/libjsound/mapfile-vers - make/mapfiles/libjvm_db/mapfile-vers - make/mapfiles/libjvm_dtrace/mapfile-vers ! src/java.base/solaris/native/libjvm_db/libjvm_db.h ! src/java.base/solaris/native/libjvm_dtrace/jvm_dtrace.h Changeset: 506e9b592f7b Author: ihse Date: 2018-09-13 21:14 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/506e9b592f7b 8207264: solaris-sparcv9-cmp-baseline fails Reviewed-by: erikj, prr ! make/scripts/compare_exceptions.sh.incl Changeset: 1ebe04845112 Author: jcbeyler Date: 2018-09-13 13:03 -0700 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/1ebe04845112 8210665: Clean up JNI_ENV_ARG and factorize the macros for vmTestbase/jvmti[R-U] tests Summary: Remove JNI_ENV and JVMTI_ENV macros from jvmti/[R-U] tests Reviewed-by: cjplummer, sspitsyn ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/RedefineClasses/redefclass020/redefclass020.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/RedefineClasses/redefclass021/redefclass021.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/RedefineClasses/redefclass022/redefclass022.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/RedefineClasses/redefclass023/redefclass023.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/RedefineClasses/redefclass024/redefclass024.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/RedefineClasses/redefclass025/redefclass025.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/RedefineClasses/redefclass026/redefclass026.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/RedefineClasses/redefclass027/redefclass027.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/RedefineClasses/redefclass031/redefclass031.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/RunAgentThread/agentthr001/agentthr001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/RunAgentThread/agentthr002/agentthr002.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/RunAgentThread/agentthr003/agentthr003.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/SetBreakpoint/setbrk002/setbrk002.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/SetBreakpoint/setbrk003/setbrk003.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/SetBreakpoint/setbrk005/setbrk005.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/SetBreakpoint/setbrk007/setbrk007.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/SetBreakpoint/setbrk008/setbrk008.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/SetEventNotificationMode/setnotif001/setnotif001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/SetFieldAccessWatch/setfldw001/setfldw001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/SetFieldAccessWatch/setfldw002/setfldw002.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/SetFieldAccessWatch/setfldw003/setfldw003.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/SetFieldAccessWatch/setfldw004/setfldw004.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/SetFieldAccessWatch/setfldw005/setfldw005.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/SetFieldAccessWatch/setfldw006/setfldw006.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/SetFieldModificationWatch/setfmodw001/setfmodw001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/SetFieldModificationWatch/setfmodw002/setfmodw002.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/SetFieldModificationWatch/setfmodw003/setfmodw003.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/SetFieldModificationWatch/setfmodw004/setfmodw004.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/SetFieldModificationWatch/setfmodw005/setfmodw005.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/SetFieldModificationWatch/setfmodw006/setfmodw006.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/SetJNIFunctionTable/setjniftab001/setjniftab001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/SetJNIFunctionTable/setjniftab002/setjniftab002.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/SetLocalVariable/setlocal001/setlocal001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/SetLocalVariable/setlocal002/setlocal002.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/SetLocalVariable/setlocal003/setlocal003.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/SetLocalVariable/setlocal004/setlocal004.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/StopThread/stopthrd006/stopthrd006.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/ThreadEnd/threadend001/threadend001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/ThreadStart/threadstart001/threadstart001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/ThreadStart/threadstart003/threadstart003.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/VMDeath/vmdeath001/vmdeath001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/VMInit/vminit001/vminit001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/general_functions/GF06/gf06t001/gf06t001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/jni_interception/JI03/ji03t001/ji03t001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/jni_interception/JI03/ji03t002/ji03t002.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/jni_interception/JI03/ji03t003/ji03t003.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/jni_interception/JI03/ji03t004/ji03t004.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/jni_interception/JI05/ji05t001/ji05t001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/jni_interception/JI06/ji06t001/ji06t001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/unit/ForceEarlyReturn/earlyretbase/earlyretbase.cpp Changeset: cd0775f67ab0 Author: naoto Date: 2018-09-13 13:41 -0700 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/cd0775f67ab0 8209167: Use CLDR's time zone mappings for Windows Reviewed-by: erikj, rriggs, ihse ! make/copy/Copy-java.base.gmk ! make/gensrc/GensrcCLDR.gmk ! make/jdk/src/classes/build/tools/cldrconverter/CLDRConverter.java + make/jdk/src/classes/build/tools/cldrconverter/WinZonesParseHandler.java ! make/lib/Lib-java.base.gmk - src/java.base/windows/conf/tzmappings ! src/java.base/windows/native/libjava/TimeZone_md.c Changeset: 8745f8f1b0f8 Author: kvn Date: 2018-09-13 15:27 -0700 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/8745f8f1b0f8 8210220: [AOT] jdwp test cases are failing with error # ERROR: TEST FAILED: Cought IOException while receiving event packet Summary: don't register AOT method if corresponding java method has breakpoints. Reviewed-by: dlong ! src/hotspot/share/aot/aotCodeHeap.cpp ! src/hotspot/share/aot/aotCodeHeap.hpp ! src/hotspot/share/aot/aotCompiledMethod.cpp ! src/hotspot/share/aot/aotCompiledMethod.hpp ! src/hotspot/share/aot/aotLoader.cpp ! src/hotspot/share/aot/aotLoader.hpp Changeset: dc68380e6497 Author: gadams Date: 2018-09-13 07:54 -0400 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/dc68380e6497 8210252: com/sun/jdi/DebuggerThreadTest.java fails with NPE Reviewed-by: cjplummer, sspitsyn ! test/jdk/com/sun/jdi/DebuggerThreadTest.java Changeset: a929ad0569ee Author: xuelei Date: 2018-09-13 17:11 -0700 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/a929ad0569ee 8209916: NPE in SupportedGroupsExtension Reviewed-by: jnimeh, wetmore ! src/java.base/share/classes/sun/security/ssl/SupportedGroupsExtension.java Changeset: e6b524cdcc34 Author: cushon Date: 2018-09-13 15:29 -0700 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/e6b524cdcc34 8193037: package-info annotations are not reported when annotation processing is enabled Reviewed-by: jjg ! src/jdk.compiler/share/classes/com/sun/tools/javac/processing/JavacProcessingEnvironment.java + test/langtools/tools/javac/processing/PackageInfo/ClassAnnotations/ClassAnnotations.java + test/langtools/tools/javac/processing/PackageInfo/ClassAnnotations/Processor.java + test/langtools/tools/javac/processing/PackageInfo/ClassAnnotations/package-info.java + test/langtools/tools/javac/processing/PackageInfo/Overwrite/Overwrite.java + test/langtools/tools/javac/processing/PackageInfo/Overwrite/Processor.java + test/langtools/tools/javac/processing/PackageInfo/Overwrite/package-info.java Changeset: 6ebcec186980 Author: amlu Date: 2018-09-14 13:18 +0800 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/6ebcec186980 8209772: Refactor shell test java/util/ServiceLoader/basic/basic.sh to java Reviewed-by: alanb + test/jdk/java/util/ServiceLoader/basic/ServiceLoaderBasicTest.java - test/jdk/java/util/ServiceLoader/basic/basic.sh Changeset: 42d99cb7f50f Author: iveresov Date: 2018-09-13 22:45 -0700 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/42d99cb7f50f 8210478: Update Graal Reviewed-by: kvn ! src/jdk.aot/share/classes/jdk.tools.jaotc/src/jdk/tools/jaotc/AOTCompiledClass.java ! src/jdk.internal.vm.compiler.management/share/classes/org.graalvm.compiler.hotspot.management/src/org/graalvm/compiler/hotspot/management/HotSpotGraalRuntimeMBean.java ! src/jdk.internal.vm.compiler/share/classes/module-info.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.asm.amd64/src/org/graalvm/compiler/asm/amd64/AMD64Assembler.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.asm.amd64/src/org/graalvm/compiler/asm/amd64/AMD64BaseAssembler.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.core.test/src/org/graalvm/compiler/core/test/CheckGraalInvariants.java + src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.core.test/src/org/graalvm/compiler/core/test/NewInstanceTest.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.core.test/src/org/graalvm/compiler/core/test/ea/EscapeAnalysisTest.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.core/src/org/graalvm/compiler/core/CompilationWrapper.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.core/src/org/graalvm/compiler/core/GraalCompilerOptions.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.debug.test/src/org/graalvm/compiler/debug/test/DebugContextTest.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.debug/src/org/graalvm/compiler/debug/DiagnosticsOutputDirectory.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.debug/src/org/graalvm/compiler/debug/PathUtilities.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot.test/src/org/graalvm/compiler/hotspot/test/CompilationWrapperTest.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot.test/src/org/graalvm/compiler/hotspot/test/GraalOSRTest.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot.test/src/org/graalvm/compiler/hotspot/test/HotSpotGraalManagementTest.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot/src/org/graalvm/compiler/hotspot/HotSpotBackend.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot/src/org/graalvm/compiler/hotspot/HotSpotGraalCompiler.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot/src/org/graalvm/compiler/hotspot/HotSpotGraalRuntimeProvider.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot/src/org/graalvm/compiler/hotspot/JVMCIVersionCheck.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot/src/org/graalvm/compiler/hotspot/meta/HotSpotHostForeignCallsProvider.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot/src/org/graalvm/compiler/hotspot/replacements/NewObjectSnippets.java - src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot/src/org/graalvm/compiler/hotspot/stubs/NewArrayStub.java - src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot/src/org/graalvm/compiler/hotspot/stubs/NewInstanceStub.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot/src/org/graalvm/compiler/hotspot/stubs/SnippetStub.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot/src/org/graalvm/compiler/hotspot/stubs/StubOptions.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.java/src/org/graalvm/compiler/java/BciBlockMapping.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.java/src/org/graalvm/compiler/java/BytecodeParser.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.nodes/src/org/graalvm/compiler/nodes/GraphEncoder.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.nodes/src/org/graalvm/compiler/nodes/StructuredGraph.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.nodes/src/org/graalvm/compiler/nodes/java/InstanceOfNode.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.nodes/src/org/graalvm/compiler/nodes/java/NewInstanceNode.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.nodes/src/org/graalvm/compiler/nodes/java/StoreIndexedNode.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.options/src/org/graalvm/compiler/options/OptionsParser.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.phases.common/src/org/graalvm/compiler/phases/common/ConditionalEliminationPhase.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.phases.common/src/org/graalvm/compiler/phases/common/inlining/InliningUtil.java + src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.phases.common/src/org/graalvm/compiler/phases/common/jmx/HotSpotMBeanOperationProvider.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.phases/src/org/graalvm/compiler/phases/tiers/PhaseContext.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.replacements.test/src/org/graalvm/compiler/replacements/test/PEGraphDecoderTest.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.replacements/src/org/graalvm/compiler/replacements/CachingPEGraphDecoder.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.replacements/src/org/graalvm/compiler/replacements/IntrinsicGraphBuilder.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.replacements/src/org/graalvm/compiler/replacements/PEGraphDecoder.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.replacements/src/org/graalvm/compiler/replacements/ReplacementsImpl.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.replacements/src/org/graalvm/compiler/replacements/SnippetTemplate.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.replacements/src/org/graalvm/compiler/replacements/nodes/MacroNode.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.graphio/src/org/graalvm/graphio/GraphOutput.java Changeset: 30e6a0b9d691 Author: ihse Date: 2018-09-14 09:16 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/30e6a0b9d691 8210731: PropertiesParser does not produce reproducible output Reviewed-by: mchung, jjg, erikj ! make/langtools/tools/propertiesparser/PropertiesParser.java Changeset: 606e039bd655 Author: sgehwolf Date: 2018-09-13 11:07 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/606e039bd655 8210703: vmStructs.cpp compiled with -O0 Reviewed-by: erikj, ihse ! make/hotspot/lib/JvmOverrideFiles.gmk Changeset: 7bed934d439e Author: dpochepk Date: 2018-09-14 14:24 +0300 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/7bed934d439e 8210461: AArch64: Math.cos intrinsic gives incorrect results Reviewed-by: aph ! src/hotspot/cpu/aarch64/macroAssembler_aarch64_trig.cpp + test/hotspot/jtreg/compiler/intrinsics/math/Test8210461.java Changeset: f79cfb07f13f Author: hannesw Date: 2018-09-14 14:45 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/f79cfb07f13f 8209914: javadoc search sometimes generates bad URIs Reviewed-by: jjg ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/resources/search.js Changeset: ed9b1200dd81 Author: pliden Date: 2018-09-14 14:44 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/ed9b1200dd81 8209163: SA: Show Object Histogram asserts with ZGC Reviewed-by: ysuenaga, jcbeyler ! src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/oops/ObjectHeap.java ! src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/utilities/ProgressiveHeapVisitor.java Changeset: 3dd95a83791b Author: pliden Date: 2018-09-14 14:44 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/3dd95a83791b 8210710: Rename ThreadLocalAllocBuffer::myThread() to thread() Reviewed-by: rkennke, tschatzl ! src/hotspot/share/gc/shared/threadLocalAllocBuffer.cpp ! src/hotspot/share/gc/shared/threadLocalAllocBuffer.hpp ! src/hotspot/share/gc/shared/threadLocalAllocBuffer.inline.hpp Changeset: 47466ac8dcf0 Author: pliden Date: 2018-09-14 14:44 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/47466ac8dcf0 8210711: Remove unused offset getters in ThreadLocalAllocBuffer Reviewed-by: rkennke, tschatzl, mdoerr ! src/hotspot/share/gc/shared/threadLocalAllocBuffer.hpp ! src/hotspot/share/runtime/thread.hpp Changeset: 1cb25b6589e9 Author: pliden Date: 2018-09-14 14:44 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/1cb25b6589e9 8210714: ZGC: ZWeakRootsIterator should no longer call reset/finish_dead_counter() Reviewed-by: eosterlund ! src/hotspot/share/gc/z/zRootsIterator.cpp Changeset: 90c1dcdebc64 Author: alanb Date: 2018-09-14 16:56 +0100 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/90c1dcdebc64 8208780: (se) test SelectWithConsumer.testReadableAndWriteable(): failure Reviewed-by: bpb ! test/jdk/java/nio/channels/Selector/SelectWithConsumer.java Changeset: 07ae9da7a230 Author: bpb Date: 2018-09-14 09:00 -0700 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/07ae9da7a230 8210741: Typo in Java API documentation of java.nio.file.Paths Reviewed-by: alanb, rriggs ! src/java.base/share/classes/java/nio/file/Paths.java Changeset: 9bf5205655ee Author: coleenp Date: 2018-09-14 12:10 -0400 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/9bf5205655ee 8210559: ClassLoaderData Symbols can leak Summary: unrefcount the symbol names when the CLD is destroyed Reviewed-by: lfoltan, jiangli, iklam ! src/hotspot/share/classfile/classLoaderData.cpp ! src/hotspot/share/prims/whitebox.cpp ! test/hotspot/jtreg/runtime/ClassUnload/UnloadTest.java ! test/hotspot/jtreg/runtime/testlibrary/ClassUnloadCommon.java ! test/lib/sun/hotspot/WhiteBox.java Changeset: 13d6be5fbfa5 Author: rriggs Date: 2018-09-14 12:53 -0400 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/13d6be5fbfa5 8098798: Thread.join(ms) on Linux still affected by changes to the time-of-day clock 8210004: Thread.sleep(millis, nanos) timeout returns early Reviewed-by: martin, igerasim ! src/java.base/share/classes/java/lang/Thread.java Changeset: a0f0da2c2719 Author: akolarkunnu Date: 2018-09-11 22:16 -0700 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/a0f0da2c2719 8210056: Enable different look and feel tests in SwingSet3 demo test TextFieldDemoTest Reviewed-by: serb Contributed-by: abdul.kolarkunnu at oracle.com ! test/jdk/sanity/client/SwingSet/src/TextFieldDemoTest.java Changeset: 9151fde080e6 Author: ccheung Date: 2018-09-14 11:17 -0700 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/9151fde080e6 8190737: use unicode version of the canonicalize() function to handle long path on windows Summary: also calling CreateFileW in zip_util.c to handle long path Reviewed-by: sherman, iklam ! src/hotspot/os/windows/include/jvm_md.h ! src/java.base/share/native/libzip/zip_util.c ! src/java.base/windows/native/libjava/canonicalize_md.c ! src/java.base/windows/native/libjava/io_util_md.h ! test/hotspot/jtreg/runtime/LoadClass/LongBCP.java Changeset: b5921376ff2c Author: gadams Date: 2018-09-13 07:46 -0400 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/b5921376ff2c 8208468: [TESTBUG] nsk/jdb/locals/locals002: fails with "Prompt is not received during ... milliseconds" Reviewed-by: cjplummer, amenkov ! test/hotspot/jtreg/vmTestbase/nsk/jdb/locals/locals002/locals002a.java Changeset: 43323ced5e40 Author: jcbeyler Date: 2018-09-14 08:48 -0700 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/43323ced5e40 8210724: Change the verbosity threshold of logging for [oopstorage,ref] Summary: Improve logging verbosity levels in oopStorage.cpp Reviewed-by: kbarrett, sjohanss Contributed-by: manc at google.com ! src/hotspot/share/gc/shared/oopStorage.cpp Changeset: 763aa4d1d596 Author: gromero Date: 2018-09-14 15:32 -0400 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/763aa4d1d596 8209972: [GRAAL] Don't run RTM tests with Graal Reviewed-by: kvn, goetz ! test/hotspot/jtreg/TEST.ROOT ! test/hotspot/jtreg/compiler/rtm/cli/TestPrintPreciseRTMLockingStatisticsOptionOnSupportedConfig.java ! test/hotspot/jtreg/compiler/rtm/cli/TestPrintPreciseRTMLockingStatisticsOptionOnUnsupportedConfig.java ! test/hotspot/jtreg/compiler/rtm/cli/TestRTMAbortThresholdOption.java ! test/hotspot/jtreg/compiler/rtm/cli/TestRTMLockingCalculationDelayOption.java ! test/hotspot/jtreg/compiler/rtm/cli/TestRTMLockingThresholdOption.java ! test/hotspot/jtreg/compiler/rtm/cli/TestRTMRetryCountOption.java ! test/hotspot/jtreg/compiler/rtm/cli/TestRTMSpinLoopCountOption.java ! test/hotspot/jtreg/compiler/rtm/cli/TestRTMTotalCountIncrRateOptionOnSupportedConfig.java ! test/hotspot/jtreg/compiler/rtm/cli/TestUseRTMDeoptOptionOnSupportedConfig.java ! test/hotspot/jtreg/compiler/rtm/cli/TestUseRTMDeoptOptionOnUnsupportedConfig.java ! test/hotspot/jtreg/compiler/rtm/cli/TestUseRTMForStackLocksOptionOnSupportedConfig.java ! test/hotspot/jtreg/compiler/rtm/cli/TestUseRTMForStackLocksOptionOnUnsupportedConfig.java ! test/hotspot/jtreg/compiler/rtm/cli/TestUseRTMLockingOptionOnSupportedConfig.java ! test/hotspot/jtreg/compiler/rtm/cli/TestUseRTMLockingOptionOnUnsupportedCPU.java ! test/hotspot/jtreg/compiler/rtm/cli/TestUseRTMLockingOptionWithBiasedLocking.java ! test/hotspot/jtreg/compiler/rtm/cli/TestUseRTMXendForLockBusyOption.java ! test/hotspot/jtreg/compiler/rtm/locking/TestRTMAbortRatio.java ! test/hotspot/jtreg/compiler/rtm/locking/TestRTMAbortThreshold.java ! test/hotspot/jtreg/compiler/rtm/locking/TestRTMAfterNonRTMDeopt.java ! test/hotspot/jtreg/compiler/rtm/locking/TestRTMDeoptOnHighAbortRatio.java ! test/hotspot/jtreg/compiler/rtm/locking/TestRTMDeoptOnLowAbortRatio.java ! test/hotspot/jtreg/compiler/rtm/locking/TestRTMLockingCalculationDelay.java ! test/hotspot/jtreg/compiler/rtm/locking/TestRTMLockingThreshold.java ! test/hotspot/jtreg/compiler/rtm/locking/TestRTMRetryCount.java ! test/hotspot/jtreg/compiler/rtm/locking/TestRTMSpinLoopCount.java ! test/hotspot/jtreg/compiler/rtm/locking/TestRTMTotalCountIncrRate.java ! test/hotspot/jtreg/compiler/rtm/locking/TestUseRTMAfterLockInflation.java ! test/hotspot/jtreg/compiler/rtm/locking/TestUseRTMDeopt.java ! test/hotspot/jtreg/compiler/rtm/locking/TestUseRTMForInflatedLocks.java ! test/hotspot/jtreg/compiler/rtm/locking/TestUseRTMForStackLocks.java ! test/hotspot/jtreg/compiler/rtm/locking/TestUseRTMXendForLockBusy.java ! test/hotspot/jtreg/compiler/rtm/method_options/TestNoRTMLockElidingOption.java ! test/hotspot/jtreg/compiler/rtm/method_options/TestUseRTMLockElidingOption.java ! test/hotspot/jtreg/compiler/rtm/print/TestPrintPreciseRTMLockingStatistics.java ! test/jtreg-ext/requires/VMProps.java Changeset: 594919232b8f Author: iignatyev Date: 2018-09-14 14:02 -0700 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/594919232b8f 8210732: remove jdk.testlibrary.Utils Reviewed-by: alanb, jcbeyler ! test/hotspot/jtreg/runtime/Dictionary/ProtectionDomainCacheTest.java ! test/jdk/com/sun/jdi/BadHandshakeTest.java ! test/jdk/com/sun/jdi/BasicJDWPConnectionTest.java ! test/jdk/com/sun/jdi/DoubleAgentTest.java ! test/jdk/com/sun/jdi/ExclusiveBind.java ! test/jdk/com/sun/tools/attach/RunnerUtil.java ! test/jdk/com/sun/tools/attach/StartManagementAgent.java ! test/jdk/java/awt/datatransfer/ClipboardInterVMTest/ClipboardInterVMTest.java ! test/jdk/java/lang/ClassLoader/forNameLeak/ClassForNameLeak.java ! test/jdk/java/lang/Thread/ThreadStateController.java ! test/jdk/java/lang/instrument/PremainClass/NoPremainAgentTest.java ! test/jdk/java/lang/instrument/PremainClass/PremainClassTest.java ! test/jdk/java/lang/instrument/PremainClass/ZeroArgPremainAgentTest.java ! test/jdk/java/lang/invoke/LFCaching/LambdaFormTestCase.java ! test/jdk/java/lang/invoke/MethodHandles/CatchExceptionTest.java ! test/jdk/java/lang/invoke/MethodHandlesAsCollectorTest.java ! test/jdk/java/lang/invoke/MethodHandlesCastFailureTest.java ! test/jdk/java/lang/invoke/MethodHandlesGeneralTest.java ! test/jdk/java/lang/invoke/MethodHandlesInsertArgumentsTest.java ! test/jdk/java/lang/invoke/MethodHandlesInvokersTest.java ! test/jdk/java/lang/invoke/MethodHandlesPermuteArgumentsTest.java ! test/jdk/java/lang/invoke/MethodHandlesSpreadArgumentsTest.java ! test/jdk/java/lang/invoke/PermuteArgsTest.java ! test/jdk/java/lang/invoke/TestCatchExceptionWithVarargs.java ! test/jdk/java/lang/invoke/VarargsArrayTest.java ! test/jdk/java/lang/invoke/common/test/java/lang/invoke/lib/CodeCacheOverflowProcessor.java ! test/jdk/java/lang/management/MemoryMXBean/LowMemoryTest.java ! test/jdk/java/lang/management/MemoryMXBean/RunUtil.java ! test/jdk/java/net/MulticastSocket/MultiDead.java ! test/jdk/java/net/httpclient/security/Driver.java ! test/jdk/java/nio/channels/FileChannel/LoopingTruncate.java ! test/jdk/java/nio/channels/Selector/Wakeup.java ! test/jdk/java/util/concurrent/BlockingQueue/CancelledProducerConsumerLoops.java ! test/jdk/java/util/concurrent/BlockingQueue/Interrupt.java ! test/jdk/java/util/concurrent/BlockingQueue/MultipleProducersSingleConsumerLoops.java ! test/jdk/java/util/concurrent/BlockingQueue/ProducerConsumerLoops.java ! test/jdk/java/util/concurrent/BlockingQueue/SingleProducerMultipleConsumerLoops.java ! test/jdk/java/util/concurrent/CompletableFuture/Basic.java ! test/jdk/java/util/concurrent/ConcurrentHashMap/MapLoops.java ! test/jdk/java/util/concurrent/ConcurrentQueues/ConcurrentQueueLoops.java ! test/jdk/java/util/concurrent/CyclicBarrier/Basic.java ! test/jdk/java/util/concurrent/Exchanger/ExchangeLoops.java ! test/jdk/java/util/concurrent/ExecutorCompletionService/ExecutorCompletionServiceLoops.java ! test/jdk/java/util/concurrent/Executors/AutoShutdown.java ! test/jdk/java/util/concurrent/FutureTask/BlockingTaskExecutor.java ! test/jdk/java/util/concurrent/FutureTask/CancelledFutureLoops.java ! test/jdk/java/util/concurrent/FutureTask/DoneMeansDone.java ! test/jdk/java/util/concurrent/ScheduledThreadPoolExecutor/DelayOverflow.java ! test/jdk/java/util/concurrent/ScheduledThreadPoolExecutor/ZeroCorePoolSize.java ! test/jdk/java/util/concurrent/ScheduledThreadPoolExecutor/ZeroCoreThreads.java ! test/jdk/java/util/concurrent/ThreadPoolExecutor/CoreThreadTimeOut.java ! test/jdk/java/util/concurrent/ThreadPoolExecutor/Custom.java ! test/jdk/java/util/concurrent/ThreadPoolExecutor/FlakyThreadFactory.java ! test/jdk/java/util/concurrent/ThreadPoolExecutor/SelfInterrupt.java ! test/jdk/java/util/concurrent/ThreadPoolExecutor/ThreadRestarts.java ! test/jdk/java/util/concurrent/ThreadPoolExecutor/TimeOutShrink.java ! test/jdk/java/util/concurrent/forkjoin/SubmissionTest.java ! test/jdk/java/util/concurrent/locks/Lock/CheckedLockLoops.java ! test/jdk/java/util/concurrent/locks/Lock/TimedAcquireLeak.java ! test/jdk/java/util/concurrent/locks/ReentrantLock/LockOncePerThreadLoops.java ! test/jdk/java/util/concurrent/locks/ReentrantLock/SimpleReentrantLockLoops.java ! test/jdk/java/util/concurrent/locks/ReentrantLock/TimeoutLockLoops.java ! test/jdk/java/util/concurrent/locks/ReentrantReadWriteLock/Count.java ! test/jdk/java/util/concurrent/locks/ReentrantReadWriteLock/MapLoops.java ! test/jdk/java/util/concurrent/locks/StampedLock/Basic.java ! test/jdk/javax/management/monitor/GaugeMonitorDeadlockTest.java ! test/jdk/javax/management/monitor/StartStopTest.java ! test/jdk/javax/management/mxbean/MXBeanWeirdParamTest.java ! test/jdk/javax/management/remote/mandatory/connection/DefaultAgentFilterTest.java ! test/jdk/javax/management/remote/mandatory/loading/MethodResultTest.java ! test/jdk/javax/management/security/AuthorizationTest.java ! test/jdk/javax/management/security/SecurityTest.java - test/jdk/lib/testlibrary/jdk/testlibrary/Utils.java ! test/jdk/sun/jvmstat/monitor/MonitoredVm/TestPollingInterval.java ! test/jdk/sun/management/jdp/DynamicLauncher.java ! test/jdk/sun/management/jdp/PortAlreadyInUseTest.java ! test/jdk/sun/management/jmxremote/bootstrap/AbstractFilePermissionTest.java ! test/jdk/sun/management/jmxremote/bootstrap/LocalManagementTest.java ! test/jdk/sun/management/jmxremote/bootstrap/RmiBootstrapTest.java ! test/jdk/sun/management/jmxremote/bootstrap/RmiBootstrapTest.sh ! test/jdk/sun/management/jmxremote/bootstrap/RmiRegistrySslTest.java ! test/jdk/sun/management/jmxremote/bootstrap/RmiRegistrySslTestApp.java ! test/jdk/sun/management/jmxremote/bootstrap/RmiSslBootstrapTest.sh ! test/jdk/sun/management/jmxremote/startstop/JMXStartStopTest.java ! test/jdk/sun/security/ssl/SSLEngineImpl/SSLEngineKeyLimit.java ! test/jdk/sun/security/ssl/SSLSocketImpl/SSLSocketKeyLimit.java ! test/jdk/sun/tools/jcmd/TestJcmdDefaults.java ! test/jdk/sun/tools/jcmd/TestJcmdSanity.java ! test/jdk/sun/tools/jhsdb/BasicLauncherTest.java ! test/jdk/sun/tools/jhsdb/heapconfig/JMapHeapConfigTest.java ! test/jdk/sun/tools/jhsdb/heapconfig/TmtoolTestScenario.java ! test/jdk/sun/tools/jps/JpsHelper.java ! test/jdk/sun/tools/jstack/DeadlockDetectionTest.java ! test/jdk/sun/tools/jstatd/JstatGCUtilParser.java ! test/jdk/sun/tools/jstatd/JstatdTest.java Changeset: 6c394ed56b07 Author: xuelei Date: 2018-09-14 20:30 -0700 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/6c394ed56b07 8210785: Trivial typo fix in X509ExtendedKeyManager javadoc Reviewed-by: xuelei Contributed-by: Jaikiran Pai ! src/java.base/share/classes/javax/net/ssl/X509ExtendedKeyManager.java Changeset: 4bd35a5ec694 Author: mikael Date: 2018-09-14 22:35 -0700 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/4bd35a5ec694 8210676: Remove some unused Label variables Reviewed-by: kvn, dholmes, njian, aph ! src/hotspot/cpu/aarch64/c1_LIRAssembler_aarch64.cpp ! src/hotspot/cpu/aarch64/c1_MacroAssembler_aarch64.cpp ! src/hotspot/cpu/aarch64/c1_Runtime1_aarch64.cpp ! src/hotspot/cpu/aarch64/macroAssembler_aarch64.cpp ! src/hotspot/cpu/aarch64/stubGenerator_aarch64.cpp ! src/hotspot/cpu/aarch64/templateInterpreterGenerator_aarch64.cpp ! src/hotspot/cpu/arm/arm.ad ! src/hotspot/cpu/arm/c1_MacroAssembler_arm.cpp ! src/hotspot/cpu/arm/macroAssembler_arm.cpp ! src/hotspot/cpu/arm/methodHandles_arm.cpp ! src/hotspot/cpu/arm/sharedRuntime_arm.cpp ! src/hotspot/cpu/ppc/stubGenerator_ppc.cpp ! src/hotspot/cpu/ppc/templateTable_ppc_64.cpp ! src/hotspot/cpu/s390/macroAssembler_s390.cpp ! src/hotspot/cpu/s390/stubGenerator_s390.cpp ! src/hotspot/cpu/s390/templateTable_s390.cpp ! src/hotspot/cpu/sparc/macroAssembler_sparc.cpp ! src/hotspot/cpu/sparc/vtableStubs_sparc.cpp ! src/hotspot/cpu/x86/c1_LIRAssembler_x86.cpp ! src/hotspot/cpu/x86/c1_Runtime1_x86.cpp ! src/hotspot/cpu/x86/interp_masm_x86.cpp ! src/hotspot/cpu/x86/macroAssembler_x86.cpp ! src/hotspot/cpu/x86/macroAssembler_x86_cos.cpp ! src/hotspot/cpu/x86/macroAssembler_x86_exp.cpp ! src/hotspot/cpu/x86/macroAssembler_x86_log.cpp ! src/hotspot/cpu/x86/macroAssembler_x86_log10.cpp ! src/hotspot/cpu/x86/macroAssembler_x86_sin.cpp ! src/hotspot/cpu/x86/macroAssembler_x86_tan.cpp ! src/hotspot/cpu/x86/sharedRuntime_x86_64.cpp ! src/hotspot/cpu/x86/stubGenerator_x86_64.cpp ! src/hotspot/cpu/x86/templateInterpreterGenerator_x86.cpp ! src/hotspot/cpu/x86/templateTable_x86.cpp Changeset: 5b033f23aced Author: bsrbnd Date: 2018-09-15 22:16 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/5b033f23aced 8183548: Comma-expressions shouldn't use any temporary variable Summary: Uses enhanced let-expressions allowing multiple statements Reviewed-by: vromero ! src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Lower.java ! test/langtools/tools/javac/desugar/BoxingAndSuper.java Changeset: 6c956c883137 Author: igerasim Date: 2018-09-15 13:53 -0700 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/6c956c883137 8210787: Object.wait(long, int) throws inappropriate IllegalArgumentException Reviewed-by: martin, rriggs ! src/java.base/share/classes/java/lang/Object.java + test/jdk/java/lang/Object/WaitTooLong.java Changeset: ac6e9a2ebc04 Author: igerasim Date: 2018-09-15 22:02 -0700 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/ac6e9a2ebc04 8210786: Typo s/overriden/overridden/ in several places Reviewed-by: weijun ! src/java.base/share/classes/java/security/Identity.java ! src/java.base/share/classes/java/security/Provider.java ! src/java.base/share/classes/java/security/Security.java ! src/java.base/share/classes/java/text/RuleBasedCollator.java ! src/java.base/share/classes/java/util/Random.java ! src/java.base/share/classes/java/util/StringJoiner.java ! src/java.base/share/classes/javax/crypto/CipherInputStream.java ! src/java.base/share/classes/javax/crypto/CipherOutputStream.java ! src/java.base/share/classes/javax/net/ssl/HttpsURLConnection.java ! src/java.base/share/classes/javax/net/ssl/SSLServerSocket.java ! src/java.base/unix/classes/sun/net/www/protocol/file/Handler.java ! src/java.base/windows/classes/sun/net/www/protocol/file/Handler.java Changeset: caac55d48dc3 Author: xyin Date: 2018-09-17 13:49 +0800 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/caac55d48dc3 8210695: Create test to cover JDK-8205330 InitialDirContext ctor sometimes throws NPE if the server has sent a disconnection Reviewed-by: vtewari, dfuchs, chegar + test/jdk/com/sun/jndi/ldap/DisconnectNPETest.java Changeset: 5f868838bc5f Author: weijun Date: 2018-09-17 14:52 +0800 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/5f868838bc5f 8210736: jdk/javax/xml/crypto/dsig/GenerationTests.java slow on linux Reviewed-by: alanb ! test/jdk/javax/xml/crypto/dsig/GenerationTests.java Changeset: c608b2190460 Author: sgehwolf Date: 2018-09-14 14:47 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/c608b2190460 8210647: libsaproc is being compiled without optimization. Summary: Compile with high optimization instead of none. Reviewed-by: erikj, jgeorge, sballal ! make/lib/Lib-jdk.hotspot.agent.gmk Changeset: caef940517be Author: rgoel Date: 2018-09-17 14:16 +0530 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/caef940517be 8210490: TimeZone.getDisplayName given Locale.US doesn't always honor the Locale. Summary: specified locale for formatting.. Reviewed-by: naoto ! src/java.base/share/classes/sun/util/cldr/CLDRTimeZoneNameProviderImpl.java ! test/jdk/java/util/TimeZone/CLDRDisplayNamesTest.java Changeset: d883f528689d Author: jlahoda Date: 2018-09-17 11:49 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/d883f528689d 8193561: Cyclic hierarchy causes a NullPointerException when setting DEFAULT flag Summary: When marking interface as having default methods, use .owner as it is always defined. Reviewed-by: mcimadamore ! src/jdk.compiler/share/classes/com/sun/tools/javac/comp/MemberEnter.java + test/langtools/tools/javac/cycle/T8193561.java + test/langtools/tools/javac/cycle/T8193561.out Changeset: e10ade04afe5 Author: sgehwolf Date: 2018-09-17 10:53 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/e10ade04afe5 8210416: [linux] Poor StrictMath performance due to non-optimized compilation Summary: Compile fdlibm with -O2 -ffp-contract=off on gcc/clang arches. Reviewed-by: aph, erikj, dholmes, darcy, ihse ! make/autoconf/flags-cflags.m4 ! make/autoconf/spec.gmk.in ! make/lib/CoreLibraries.gmk Changeset: 3ca7d5385653 Author: rfield Date: 2018-09-17 08:37 -0700 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/3ca7d5385653 8210596: jshell does not support raw string literals Reviewed-by: jlahoda, jlaskey ! src/jdk.jshell/share/classes/jdk/jshell/CompletenessAnalyzer.java ! src/jdk.jshell/share/classes/jdk/jshell/MaskCommentsAndModifiers.java ! src/jdk.jshell/share/classes/jdk/jshell/SourceCodeAnalysisImpl.java ! test/langtools/jdk/jshell/ToolLocalSimpleTest.java ! test/langtools/jdk/jshell/ToolSimpleTest.java Changeset: 497950fd69a7 Author: jcbeyler Date: 2018-09-17 09:07 -0700 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/497950fd69a7 8210726: Fix up a few minor nits forgotten by JDK-8210665 Summary: Minor changes to 4 tests to make one-liners Reviewed-by: cjplummer, iignatyev, sspitsyn ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/SetFieldAccessWatch/setfldw005/setfldw005.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/SetFieldAccessWatch/setfldw006/setfldw006.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/SetFieldModificationWatch/setfmodw006/setfmodw006.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/SetLocalVariable/setlocal002/setlocal002.cpp Changeset: 9884b717f2ed Author: iris Date: 2018-09-17 10:14 -0700 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/9884b717f2ed 8210775: JVM TI Spec missing copyright Reviewed-by: dholmes, mchung, sspitsyn ! src/hotspot/share/prims/jvmti.xml ! src/hotspot/share/prims/jvmti.xsl Changeset: 0ae80830256e Author: iignatyev Date: 2018-09-17 11:50 -0700 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/0ae80830256e 8210779: 8182404 and 8210732 haven't updated copyright years Reviewed-by: bchristi ! test/jdk/com/sun/jdi/BasicJDWPConnectionTest.java ! test/jdk/java/awt/datatransfer/ClipboardInterVMTest/ClipboardInterVMTest.java ! test/jdk/java/lang/Thread/ThreadStateController.java ! test/jdk/java/lang/invoke/LFCaching/LambdaFormTestCase.java ! test/jdk/java/lang/invoke/MethodHandles/CatchExceptionTest.java ! test/jdk/java/lang/invoke/PermuteArgsTest.java ! test/jdk/java/lang/invoke/TestCatchExceptionWithVarargs.java ! test/jdk/java/lang/invoke/VarargsArrayTest.java ! test/jdk/java/lang/invoke/common/test/java/lang/invoke/lib/CodeCacheOverflowProcessor.java ! test/jdk/java/net/MulticastSocket/MultiDead.java ! test/jdk/java/net/spi/URLStreamHandlerProvider/Basic.java ! test/jdk/java/nio/channels/FileChannel/LoopingTruncate.java ! test/jdk/java/nio/channels/Selector/Wakeup.java ! test/jdk/java/security/KeyStore/PKCS12/EntryProtectionTest.java ! test/jdk/java/util/concurrent/BlockingQueue/Interrupt.java ! test/jdk/java/util/concurrent/CyclicBarrier/Basic.java ! test/jdk/java/util/concurrent/Executors/AutoShutdown.java ! test/jdk/java/util/concurrent/FutureTask/BlockingTaskExecutor.java ! test/jdk/java/util/concurrent/ScheduledThreadPoolExecutor/ZeroCorePoolSize.java ! test/jdk/java/util/concurrent/ThreadPoolExecutor/CoreThreadTimeOut.java ! test/jdk/java/util/concurrent/ThreadPoolExecutor/Custom.java ! test/jdk/java/util/concurrent/ThreadPoolExecutor/SelfInterrupt.java ! test/jdk/java/util/concurrent/ThreadPoolExecutor/TimeOutShrink.java ! test/jdk/java/util/concurrent/forkjoin/SubmissionTest.java ! test/jdk/java/util/concurrent/locks/Lock/TimedAcquireLeak.java ! test/jdk/java/util/concurrent/locks/ReentrantReadWriteLock/Count.java ! test/jdk/javax/management/monitor/GaugeMonitorDeadlockTest.java ! test/jdk/javax/management/monitor/StartStopTest.java ! test/jdk/javax/management/remote/mandatory/loading/MethodResultTest.java ! test/jdk/sun/jvmstat/monitor/MonitoredVm/TestPollingInterval.java ! test/jdk/sun/management/jmxremote/bootstrap/RmiBootstrapTest.java ! test/jdk/sun/management/jmxremote/bootstrap/RmiBootstrapTest.sh ! test/jdk/sun/management/jmxremote/bootstrap/RmiRegistrySslTestApp.java ! test/jdk/sun/management/jmxremote/bootstrap/RmiSslBootstrapTest.sh ! test/jdk/sun/tools/jhsdb/heapconfig/TmtoolTestScenario.java ! test/jdk/tools/jar/compat/CLICompatibility.java Changeset: b19734760ed3 Author: kvn Date: 2018-09-17 13:43 -0700 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/b19734760ed3 8209574: [AOT] breakpoint events are generated in different threads does not meet expected count Summary: Disable AOT when debugger is attached. Reviewed-by: dlong ! src/hotspot/share/aot/aotLoader.cpp ! src/hotspot/share/aot/aotLoader.hpp ! test/hotspot/jtreg/compiler/aot/AotCompiler.java Changeset: 1f805481d8de Author: ascarpino Date: 2018-09-17 14:04 -0700 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/1f805481d8de 8209031: SSLSocket should throw an exception when configuring DTLS Reviewed-by: xuelei ! src/java.base/share/classes/javax/net/ssl/SSLServerSocketFactory.java ! src/java.base/share/classes/javax/net/ssl/SSLSocketFactory.java ! src/java.base/share/classes/sun/security/ssl/SSLContextImpl.java ! test/jdk/sun/security/ssl/SSLContextImpl/CustomizedDTLSDefaultProtocols.java ! test/jdk/sun/security/ssl/SSLContextImpl/CustomizedDTLSServerDefaultProtocols.java ! test/jdk/sun/security/ssl/SSLContextImpl/DefaultDTLSEnabledProtocols.java Changeset: 5432cebf6627 Author: mchung Date: 2018-09-17 15:22 -0700 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/5432cebf6627 8210721: Replace legacy serial exception field with Throwable::cause Reviewed-by: dfuchs, lancea ! src/java.base/share/classes/java/lang/ClassNotFoundException.java ! src/java.base/share/classes/java/lang/ExceptionInInitializerError.java ! src/java.base/share/classes/java/lang/System.java ! src/java.base/share/classes/java/lang/Throwable.java ! src/java.base/share/classes/java/lang/reflect/InvocationTargetException.java ! src/java.base/share/classes/java/lang/reflect/UndeclaredThrowableException.java ! src/java.base/share/classes/java/security/PrivilegedActionException.java ! src/java.base/share/classes/jdk/internal/misc/JavaLangAccess.java ! test/jdk/java/lang/Throwable/LegacyChainedExceptionSerialization.java Changeset: 720fd6544b03 Author: jnimeh Date: 2018-09-17 15:25 -0700 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/720fd6544b03 8140466: ChaCha20 and Poly1305 TLS Cipher Suites Reviewed-by: xuelei, mullan ! src/java.base/share/classes/sun/security/ssl/CipherSuite.java ! src/java.base/share/classes/sun/security/ssl/JsseJce.java ! src/java.base/share/classes/sun/security/ssl/SSLCipher.java ! test/jdk/javax/net/ssl/TLSCommon/CipherSuite.java ! test/jdk/javax/net/ssl/TLSCommon/SSLEngineTestCase.java Changeset: 79dc492c00ab Author: jcbeyler Date: 2018-09-17 19:36 -0700 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/79dc492c00ab 8210481: Remove #ifdef cplusplus from vmTestbase Summary: Remove all cplusplus ifdefs from vmTestbase Reviewed-by: dholmes, iignatyev, cjplummer, sspitsyn ! test/hotspot/jtreg/vmTestbase/gc/gctests/mallocWithGC1/libmallocWithGC1.cpp ! test/hotspot/jtreg/vmTestbase/gc/gctests/mallocWithGC2/libmallocWithGC2.cpp ! test/hotspot/jtreg/vmTestbase/gc/gctests/mallocWithGC3/libmallocWithGC3.cpp ! test/hotspot/jtreg/vmTestbase/gc/gctests/nativeGC01/libnativeGC01.cpp ! test/hotspot/jtreg/vmTestbase/gc/gctests/nativeGC02/libnativeGC02.cpp ! test/hotspot/jtreg/vmTestbase/gc/gctests/nativeGC03/libnativeGC03.cpp ! test/hotspot/jtreg/vmTestbase/gc/gctests/nativeGC05/libnativeGC05.cpp ! test/hotspot/jtreg/vmTestbase/nsk/aod/VirtualMachine/VirtualMachine07/agent00.cpp ! test/hotspot/jtreg/vmTestbase/nsk/aod/VirtualMachine/VirtualMachine07/agent01.cpp ! test/hotspot/jtreg/vmTestbase/nsk/aod/VirtualMachine/VirtualMachine07/agent02.cpp ! test/hotspot/jtreg/vmTestbase/nsk/aod/VirtualMachine/VirtualMachine07/agent03.cpp ! test/hotspot/jtreg/vmTestbase/nsk/aod/VirtualMachine/VirtualMachine09/agent00.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/AddCapabilities/addcaps001/addcaps001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/AddCapabilities/addcaps002/addcaps002.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/AddCapabilities/addcaps003/addcaps003.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/Agent_OnLoad/agentonload001/agentonload001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/Agent_OnLoad/agentonload002/agentonload002.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/Agent_OnLoad/agentonload003/agentonload003.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/Agent_OnUnload/agentonunload001/agentonunload001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/AttachOnDemand/attach002/attach002Agent00.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/AttachOnDemand/attach002a/attach002aAgent00.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/AttachOnDemand/attach008/attach008Agent00.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/AttachOnDemand/attach009/attach009Agent00.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/AttachOnDemand/attach012/attach012Agent00.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/AttachOnDemand/attach014/attach014Agent00.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/AttachOnDemand/attach015/attach015Agent00.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/AttachOnDemand/attach015/attach015Agent01.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/AttachOnDemand/attach015/attach015Target.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/AttachOnDemand/attach020/attach020Agent00.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/AttachOnDemand/attach021/attach021Agent00.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/AttachOnDemand/attach022/attach022Agent00.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/AttachOnDemand/attach037/attach037Agent00.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/AttachOnDemand/attach038/attach038Agent00.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/AttachOnDemand/attach039/attach039Agent00.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/AttachOnDemand/attach040/attach040Agent00.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/AttachOnDemand/attach041/attach041Agent00.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/AttachOnDemand/attach042/attach042Agent00.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/AttachOnDemand/attach045/attach045Agent00.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/AttachOnDemand/attach045/attach045Agent01.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/AttachOnDemand/attach045/attach045Agent02.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/AttachOnDemand/attach045/attach045Agent03.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/AttachOnDemand/attach046/attach046Agent00.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/AttachOnDemand/attach050/attach050Agent00.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/AttachOnDemand/sharedAgents/simpleAgent00.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/Breakpoint/breakpoint001/breakpoint001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/ClassFileLoadHook/classfloadhk001/classfloadhk001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/ClassFileLoadHook/classfloadhk002/classfloadhk002.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/ClassFileLoadHook/classfloadhk003/classfloadhk003.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/ClassFileLoadHook/classfloadhk004/classfloadhk004.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/ClassFileLoadHook/classfloadhk005/classfloadhk005.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/ClassFileLoadHook/classfloadhk006/classfloadhk006.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/ClassFileLoadHook/classfloadhk007/classfloadhk007.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/ClassFileLoadHook/classfloadhk008/classfloadhk008.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/ClassFileLoadHook/classfloadhk009/classfloadhk009.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/ClassLoad/classload001/classload001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/CompiledMethodLoad/compmethload001/compmethload001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/CompiledMethodUnload/compmethunload001/compmethunload001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/DataDumpRequest/datadumpreq001/datadumpreq001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/DisposeEnvironment/disposeenv001/disposeenv001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/DisposeEnvironment/disposeenv002/disposeenv002.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/DynamicCodeGenerated/dyncodgen001/dyncodgen001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/ForceEarlyReturn/ForceEarlyReturn001/ForceEarlyReturn001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/ForceGarbageCollection/forcegc001/forcegc001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/ForceGarbageCollection/forcegc002/forcegc002.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/GarbageCollectionFinish/gcfinish001/gcfinish001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/GarbageCollectionStart/gcstart001/gcstart001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/GarbageCollectionStart/gcstart002/gcstart002.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/GenerateEvents/genevents001/genevents001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/InterruptThread/intrpthrd001/intrpthrd001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/IsMethodObsolete/isobsolete001/isobsolete001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/IterateOverHeap/iterheap001/iterheap001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/IterateOverHeap/iterheap002/iterheap002.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/IterateOverHeap/iterheap003/iterheap003.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/IterateOverHeap/iterheap004/iterheap004.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/IterateOverHeap/iterheap005/iterheap005.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/IterateOverHeap/iterheap006/iterheap006.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/IterateOverHeap/iterheap007/iterheap007.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/IterateOverInstancesOfClass/iterinstcls001/iterinstcls001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/IterateOverInstancesOfClass/iterinstcls002/iterinstcls002.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/IterateOverInstancesOfClass/iterinstcls003/iterinstcls003.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/IterateOverInstancesOfClass/iterinstcls004/iterinstcls004.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/IterateOverInstancesOfClass/iterinstcls005/iterinstcls005.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/IterateOverInstancesOfClass/iterinstcls006/iterinstcls006.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/IterateOverInstancesOfClass/iterinstcls007/iterinstcls007.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/IterateOverObjectsReachableFromObject/iterobjreachobj001/iterobjreachobj001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/IterateOverObjectsReachableFromObject/iterobjreachobj002/iterobjreachobj002.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/IterateOverObjectsReachableFromObject/iterobjreachobj003/iterobjreachobj003.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/IterateOverObjectsReachableFromObject/iterobjreachobj004/iterobjreachobj004.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/IterateOverObjectsReachableFromObject/iterobjreachobj005/iterobjreachobj005.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/IterateOverReachableObjects/iterreachobj001/iterreachobj001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/IterateOverReachableObjects/iterreachobj002/iterreachobj002.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/IterateOverReachableObjects/iterreachobj003/iterreachobj003.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/IterateOverReachableObjects/iterreachobj004/iterreachobj004.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/IterateOverReachableObjects/iterreachobj005/iterreachobj005.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/IterateThroughHeap/abort/Abort.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/IterateThroughHeap/callbacks/Callbacks.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/IterateThroughHeap/concrete-klass-filter/ConcreteKlassFilter.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/IterateThroughHeap/filter-tagged/HeapFilter.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/IterateThroughHeap/non-concrete-klass-filter/NonConcreteKlassFilter.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/MonitorContendedEnter/mcontenter001/mcontenter001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/MonitorContendedEntered/mcontentered001/mcontentered001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/MonitorWait/monitorwait001/monitorwait001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/MonitorWaited/monitorwaited001/monitorwaited001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/NativeMethodBind/nativemethbind001/nativemethbind001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/NativeMethodBind/nativemethbind002/nativemethbind002.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/NativeMethodBind/nativemethbind003/nativemethbind003.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/NativeMethodBind/nativemethbind004/nativemethbind004.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/ObjectFree/objfree001/objfree001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/ObjectFree/objfree002/objfree002.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/PopFrame/popframe005/popframe005.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/RedefineClasses/redefclass028/redefclass028.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/RedefineClasses/redefclass029/redefclass029.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/RedefineClasses/redefclass030/redefclass030.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/RelinquishCapabilities/relcaps001/relcaps001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/RelinquishCapabilities/relcaps002/relcaps002.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/ResourceExhausted/resexhausted.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/ResumeThread/resumethrd001/resumethrd001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/ResumeThread/resumethrd002/resumethrd002.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/ResumeThreadList/resumethrdlst001/resumethrdlst001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/ResumeThreadList/resumethrdlst002/resumethrdlst002.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/RetransformClasses/retransform002/retransform002.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/RetransformClasses/retransform003/retransform003.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/RetransformClasses/retransform004/retransform004.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/SetEnvironmentLocalStorage/setenvstor001/setenvstor001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/SetEnvironmentLocalStorage/setenvstor002/setenvstor002.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/SetEnvironmentLocalStorage/setenvstor003/setenvstor003.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/SetEventCallbacks/setevntcallb001/setevntcallb001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/SetEventCallbacks/setevntcallb002/setevntcallb002.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/SetEventCallbacks/setevntcallb003/setevntcallb003.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/SetExtensionEventCallback/setextevent001/setextevent001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/SetNativeMethodPrefix/SetNativeMethodPrefix001/SetNativeMethodPrefix001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/SetNativeMethodPrefix/SetNativeMethodPrefix002/SetNativeMethodPrefix002.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/SetNativeMethodPrefix/SetNativeMethodPrefix002/SetNativeMethodPrefix002Main.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/SetSystemProperty/setsysprop002/setsysprop002.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/SetSystemProperty/setsysprop003/setsysprop003.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/SetTag/settag001/settag001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/SetThreadLocalStorage/setthrdstor001/setthrdstor001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/SetThreadLocalStorage/setthrdstor002/setthrdstor002.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/SetThreadLocalStorage/setthrdstor003/setthrdstor003.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/SetVerboseFlag/setvrbflag001/setvrbflag001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/SetVerboseFlag/setvrbflag002/setvrbflag002.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/SingleStep/singlestep001/singlestep001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/SingleStep/singlestep002/singlestep002.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/SingleStep/singlestep003/singlestep003.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/StopThread/stopthrd007/stopthrd007.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/SuspendThread/suspendthrd001/suspendthrd001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/SuspendThread/suspendthrd002/suspendthrd002.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/SuspendThread/suspendthrd003/suspendthrd003.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/SuspendThreadList/suspendthrdlst001/suspendthrdlst001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/SuspendThreadList/suspendthrdlst002/suspendthrdlst002.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/ThreadEnd/threadend002/threadend002.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/ThreadStart/threadstart002/threadstart002.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/VMObjectAlloc/vmobjalloc001/vmobjalloc001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/allocation/AP01/ap01t001/ap01t001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/allocation/AP02/ap02t001/ap02t001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/allocation/AP03/ap03t001/ap03t001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/allocation/AP04/ap04t001/ap04t001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/allocation/AP04/ap04t002/ap04t002.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/allocation/AP04/ap04t003/ap04t003.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/allocation/AP05/ap05t001/ap05t001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/allocation/AP05/ap05t002/ap05t002.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/allocation/AP06/ap06t001/ap06t001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/allocation/AP07/ap07t001/ap07t001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/allocation/AP07/ap07t002/ap07t002.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/allocation/AP09/ap09t001/ap09t001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/allocation/AP10/ap10t001/ap10t001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/allocation/AP11/ap11t001/ap11t001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/allocation/AP12/ap12t001/ap12t001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/bcinstr/BI01/bi01t001/bi01t001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/bcinstr/BI01/bi01t002/bi01t002.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/bcinstr/BI02/bi02t001/bi02t001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/bcinstr/BI02/bi02t002/bi02t002.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/bcinstr/BI03/bi03t001/bi03t001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/bcinstr/BI03/bi03t002/bi03t002.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/bcinstr/BI04/bi04t002/bi04t002.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/capability/CM01/cm01t001/cm01t001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/capability/CM01/cm01t002/cm01t002.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/capability/CM01/cm01t003/cm01t003.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/capability/CM01/cm01t004/cm01t004.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/capability/CM01/cm01t005/cm01t005.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/capability/CM01/cm01t006/cm01t006.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/capability/CM01/cm01t007/cm01t007.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/capability/CM01/cm01t008/cm01t008.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/capability/CM01/cm01t009/cm01t009.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/capability/CM01/cm01t010/cm01t010.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/capability/CM01/cm01t011/cm01t011.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/capability/CM01/cm01t012/cm01t012.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/capability/CM01/cm01t013/cm01t013.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/capability/CM01/cm01t014/cm01t014.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/capability/CM01/cm01t015/cm01t015.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/capability/CM01/cm01t016/cm01t016.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/capability/CM01/cm01t017/cm01t017.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/capability/CM01/cm01t018/cm01t018.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/capability/CM01/cm01t019/cm01t019.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/capability/CM01/cm01t020/cm01t020.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/capability/CM01/cm01t021/cm01t021.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/capability/CM02/cm02t001/cm02t001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/capability/CM03/cm03t001/cm03t001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/contention/TC01/tc01t001/tc01t001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/contention/TC02/tc02t001/tc02t001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/contention/TC03/tc03t001/tc03t001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/contention/TC03/tc03t002/tc03t002.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/contention/TC04/tc04t001/tc04t001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/contention/TC05/tc05t001/tc05t001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/events/EM01/em01t001/em01t001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/events/EM01/em01t002/em01t002.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/events/EM02/em02t001/em02t001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/events/EM02/em02t002/em02t002.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/events/EM02/em02t003/em02t003.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/events/EM02/em02t004/em02t004.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/events/EM02/em02t005/em02t005.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/events/EM02/em02t006/em02t006.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/events/EM02/em02t007/em02t007.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/events/EM02/em02t008/em02t008.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/events/EM02/em02t009/em02t009.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/events/EM02/em02t010/em02t010.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/events/EM02/em02t011/em02t011.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/events/EM02/em02t012/em02t012.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/events/EM04/em04t001/em04t001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/events/EM05/em05t001/em05t001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/events/EM05/em05t002/em05t002.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/events/EM06/em06t001/em06t001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/events/EM07/em07t001/em07t001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/events/EM07/em07t002/em07t002.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/extension/EX03/ex03t001/ex03t001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/general_functions/GF01/gf01t001/gf01t001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/general_functions/GF04/gf04t001/gf04t001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/general_functions/GF08/gf08t001/gf08t001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/general_functions/GF08/gf08t002/gf08t002.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/general_functions/GF08/gf08t003/gf08t003.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/hotswap/HS103/hs103t002/hs103t002.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/hotswap/HS104/hs104t001/hs104t001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/hotswap/HS104/hs104t002/hs104t002.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/hotswap/HS201/hs201t001/hs201t001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/hotswap/HS201/hs201t002/hs201t002.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/hotswap/HS201/hs201t003/hs201t003.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/hotswap/HS202/hs202t001/hs202t001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/hotswap/HS202/hs202t002/hs202t002.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/hotswap/HS203/hs203t001/hs203t001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/hotswap/HS203/hs203t002/hs203t002.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/hotswap/HS203/hs203t003/hs203t003.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/hotswap/HS203/hs203t004/hs203t004.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/hotswap/HS204/hs204t001/hs204t001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/hotswap/HS204/hs204t002/hs204t002.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/hotswap/HS204/hs204t002/hs204t002.h ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/hotswap/HS204/hs204t003/hs204t003.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/hotswap/HS204/hs204t004/hs204t004.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/hotswap/HS301/hs301t001/hs301t001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/hotswap/HS301/hs301t002/hs301t002.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/hotswap/HS301/hs301t003/hs301t003.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/hotswap/HS301/hs301t004/hs301t004.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/hotswap/HS301/hs301t005/hs301t005.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/hotswap/HS302/hs302t001/hs302t001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/hotswap/HS302/hs302t002/hs302t002.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/hotswap/HS302/hs302t003/hs302t003.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/hotswap/HS302/hs302t004/hs302t004.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/hotswap/HS302/hs302t005/hs302t005.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/hotswap/HS302/hs302t006/hs302t006.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/hotswap/HS302/hs302t007/hs302t007.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/hotswap/HS302/hs302t008/hs302t008.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/hotswap/HS302/hs302t009/hs302t009.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/hotswap/HS302/hs302t010/hs302t010.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/hotswap/HS302/hs302t011/hs302t011.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/hotswap/HS302/hs302t012/hs302t012.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/jni_interception/JI01/ji01t001/ji01t001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/multienv/MA01/ma01t001/ma01t001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/multienv/MA01/ma01t001/ma01t001a.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/multienv/MA02/ma02t001/ma02t001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/multienv/MA02/ma02t001/ma02t001a.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/multienv/MA03/ma03t001/ma03t001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/multienv/MA03/ma03t001/ma03t001a.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/multienv/MA04/ma04t001/ma04t001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/multienv/MA04/ma04t001/ma04t001a.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/multienv/MA04/ma04t002/ma04t002.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/multienv/MA04/ma04t002/ma04t002a.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/multienv/MA04/ma04t003/ma04t003.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/multienv/MA04/ma04t003/ma04t003a.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/multienv/MA05/ma05t001/ma05t001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/multienv/MA05/ma05t001/ma05t001a.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/multienv/MA06/ma06t001/ma06t001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/multienv/MA06/ma06t001/ma06t001a.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/multienv/MA07/ma07t001/ma07t001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/multienv/MA07/ma07t001/ma07t001a.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/multienv/MA08/ma08t001/ma08t001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/multienv/MA08/ma08t001/ma08t001a.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/multienv/MA10/ma10t001/ma10t001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/multienv/MA10/ma10t001/ma10t001a.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/multienv/MA10/ma10t002/ma10t002.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/multienv/MA10/ma10t002/ma10t002a.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/multienv/MA10/ma10t003/ma10t003.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/multienv/MA10/ma10t003/ma10t003a.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/multienv/MA10/ma10t004/ma10t004.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/multienv/MA10/ma10t004/ma10t004a.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/multienv/MA10/ma10t005/ma10t005.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/multienv/MA10/ma10t005/ma10t005a.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/multienv/MA10/ma10t006/ma10t006.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/multienv/MA10/ma10t006/ma10t006a.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/multienv/MA10/ma10t007/ma10t007.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/multienv/MA10/ma10t007/ma10t007a.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/multienv/MA10/ma10t008/ma10t008.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/multienv/MA10/ma10t008/ma10t008a.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/sampling/SP01/sp01t001/sp01t001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/sampling/SP01/sp01t002/sp01t002.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/sampling/SP01/sp01t003/sp01t003.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/sampling/SP02/sp02t001/sp02t001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/sampling/SP02/sp02t002/sp02t002.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/sampling/SP02/sp02t003/sp02t003.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/sampling/SP03/sp03t001/sp03t001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/sampling/SP03/sp03t002/sp03t002.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/sampling/SP04/sp04t001/sp04t001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/sampling/SP04/sp04t002/sp04t002.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/sampling/SP05/sp05t002/sp05t002.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/sampling/SP05/sp05t003/sp05t003.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/sampling/SP06/sp06t001/sp06t001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/sampling/SP06/sp06t002/sp06t002.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/sampling/SP06/sp06t003/sp06t003.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/sampling/SP07/sp07t001/sp07t001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/sampling/SP07/sp07t002/sp07t002.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/unit/FollowReferences/followref001/followref001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/unit/FollowReferences/followref002/followref002.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/unit/FollowReferences/followref003/followref003.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/unit/FollowReferences/followref004/followref004.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/unit/FollowReferences/followref005/followref005.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/unit/FollowReferences/followref006/followref006.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/unit/extmech/extmech.cpp ! test/hotspot/jtreg/vmTestbase/nsk/monitoring/share/StackTraceController.cpp ! test/hotspot/jtreg/vmTestbase/nsk/monitoring/share/ThreadController.cpp ! test/hotspot/jtreg/vmTestbase/nsk/monitoring/share/thread/Deadlock.cpp ! test/hotspot/jtreg/vmTestbase/nsk/monitoring/share/thread/LockingThreads.cpp ! test/hotspot/jtreg/vmTestbase/nsk/monitoring/share/thread/RecursiveMonitoringThread.cpp ! test/hotspot/jtreg/vmTestbase/nsk/monitoring/share/thread/libNativeBlockedThread.cpp ! test/hotspot/jtreg/vmTestbase/nsk/share/JVMDITools.cpp ! test/hotspot/jtreg/vmTestbase/nsk/share/JVMDITools.h ! test/hotspot/jtreg/vmTestbase/nsk/share/JVMTIagent.cpp ! test/hotspot/jtreg/vmTestbase/nsk/share/aod/aod.cpp ! test/hotspot/jtreg/vmTestbase/nsk/share/aod/aod.h ! test/hotspot/jtreg/vmTestbase/nsk/share/gc/lock/jni/BooleanArrayCriticalLocker.cpp ! test/hotspot/jtreg/vmTestbase/nsk/share/gc/lock/jni/ByteArrayCriticalLocker.cpp ! test/hotspot/jtreg/vmTestbase/nsk/share/gc/lock/jni/CharArrayCriticalLocker.cpp ! test/hotspot/jtreg/vmTestbase/nsk/share/gc/lock/jni/DoubleArrayCriticalLocker.cpp ! test/hotspot/jtreg/vmTestbase/nsk/share/gc/lock/jni/FloatArrayCriticalLocker.cpp ! test/hotspot/jtreg/vmTestbase/nsk/share/gc/lock/jni/IntArrayCriticalLocker.cpp ! test/hotspot/jtreg/vmTestbase/nsk/share/gc/lock/jni/LongArrayCriticalLocker.cpp ! test/hotspot/jtreg/vmTestbase/nsk/share/gc/lock/jni/ShortArrayCriticalLocker.cpp ! test/hotspot/jtreg/vmTestbase/nsk/share/gc/lock/jni/StringCriticalLocker.cpp ! test/hotspot/jtreg/vmTestbase/nsk/share/gc/lock/jniref/JNIGlobalRefLocker.cpp ! test/hotspot/jtreg/vmTestbase/nsk/share/gc/lock/jniref/JNILocalRefLocker.cpp ! test/hotspot/jtreg/vmTestbase/nsk/share/gc/lock/jniref/JNIRefLocker.cpp ! test/hotspot/jtreg/vmTestbase/nsk/share/gc/lock/jniref/JNIWeakGlobalRefLocker.cpp ! test/hotspot/jtreg/vmTestbase/nsk/share/gc/lock/jvmti/JVMTIAllocLocker.cpp ! test/hotspot/jtreg/vmTestbase/nsk/share/gc/lock/malloc/MallocLocker.cpp ! test/hotspot/jtreg/vmTestbase/nsk/share/jni/jni_tools.cpp ! test/hotspot/jtreg/vmTestbase/nsk/share/jni/jni_tools.h ! test/hotspot/jtreg/vmTestbase/nsk/share/jvmti/AddToBootstrapClassLoaderSearch/bootclssearch_agent.cpp ! test/hotspot/jtreg/vmTestbase/nsk/share/jvmti/AddToSystemClassLoaderSearch/systemclssearch_agent.cpp ! test/hotspot/jtreg/vmTestbase/nsk/share/jvmti/Injector.cpp ! test/hotspot/jtreg/vmTestbase/nsk/share/jvmti/Injector.h ! test/hotspot/jtreg/vmTestbase/nsk/share/jvmti/JVMTITools.cpp ! test/hotspot/jtreg/vmTestbase/nsk/share/jvmti/JVMTITools.h ! test/hotspot/jtreg/vmTestbase/nsk/share/jvmti/agent_common/agent_common.cpp ! test/hotspot/jtreg/vmTestbase/nsk/share/jvmti/agent_common/agent_common.h ! test/hotspot/jtreg/vmTestbase/nsk/share/jvmti/agent_tools.cpp ! test/hotspot/jtreg/vmTestbase/nsk/share/jvmti/aod/jvmti_aod.cpp ! test/hotspot/jtreg/vmTestbase/nsk/share/jvmti/aod/jvmti_aod.h ! test/hotspot/jtreg/vmTestbase/nsk/share/jvmti/hotswap/HotSwap.cpp ! test/hotspot/jtreg/vmTestbase/nsk/share/jvmti/jvmti_FollowRefObjects.cpp ! test/hotspot/jtreg/vmTestbase/nsk/share/jvmti/jvmti_FollowRefObjects.h ! test/hotspot/jtreg/vmTestbase/nsk/share/jvmti/jvmti_tools.cpp ! test/hotspot/jtreg/vmTestbase/nsk/share/jvmti/jvmti_tools.h ! test/hotspot/jtreg/vmTestbase/nsk/share/jvmti/unit/Heap.cpp ! test/hotspot/jtreg/vmTestbase/nsk/share/native/native_thread.cpp ! test/hotspot/jtreg/vmTestbase/nsk/share/native/native_thread.h ! test/hotspot/jtreg/vmTestbase/nsk/share/native/native_utils.cpp ! test/hotspot/jtreg/vmTestbase/nsk/share/native/nsk_list.cpp ! test/hotspot/jtreg/vmTestbase/nsk/share/native/nsk_list.h ! test/hotspot/jtreg/vmTestbase/nsk/share/native/nsk_mutex.cpp ! test/hotspot/jtreg/vmTestbase/nsk/share/native/nsk_mutex.h ! test/hotspot/jtreg/vmTestbase/nsk/share/native/nsk_tools.cpp ! test/hotspot/jtreg/vmTestbase/nsk/share/native/nsk_tools.h ! test/hotspot/jtreg/vmTestbase/nsk/stress/jni/gclocker/libgcl001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/stress/jni/libjnistress001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/stress/jni/libjnistress002.cpp ! test/hotspot/jtreg/vmTestbase/nsk/stress/jni/libjnistress003.cpp ! test/hotspot/jtreg/vmTestbase/nsk/stress/jni/libjnistress004.cpp ! test/hotspot/jtreg/vmTestbase/nsk/stress/jni/libjnistress005.cpp ! test/hotspot/jtreg/vmTestbase/nsk/stress/jni/libjnistress006.cpp ! test/hotspot/jtreg/vmTestbase/nsk/stress/jni/libjnistress007.cpp ! test/hotspot/jtreg/vmTestbase/nsk/stress/strace/strace003.cpp ! test/hotspot/jtreg/vmTestbase/nsk/stress/strace/strace004.cpp ! test/hotspot/jtreg/vmTestbase/nsk/stress/strace/strace005.cpp ! test/hotspot/jtreg/vmTestbase/nsk/stress/strace/strace006.cpp ! test/hotspot/jtreg/vmTestbase/nsk/stress/strace/strace008.cpp ! test/hotspot/jtreg/vmTestbase/nsk/stress/strace/strace009.cpp ! test/hotspot/jtreg/vmTestbase/nsk/stress/strace/strace011.cpp ! test/hotspot/jtreg/vmTestbase/nsk/stress/strace/strace012.cpp ! test/hotspot/jtreg/vmTestbase/nsk/stress/strace/strace014.cpp ! test/hotspot/jtreg/vmTestbase/nsk/stress/strace/strace015.cpp ! test/hotspot/jtreg/vmTestbase/vm/jit/LongTransitions/libLTTest.cpp ! test/hotspot/jtreg/vmTestbase/vm/mlvm/indy/func/jvmti/share/IndyRedefineClass.cpp ! test/hotspot/jtreg/vmTestbase/vm/mlvm/indy/func/jvmti/stepBreakPopReturn/stepBreakPopReturn.cpp ! test/hotspot/jtreg/vmTestbase/vm/mlvm/meth/stress/jni/nativeAndMH/nativeAndMH.cpp ! test/hotspot/jtreg/vmTestbase/vm/mlvm/share/mlvmJvmtiUtils.cpp ! test/hotspot/jtreg/vmTestbase/vm/mlvm/share/mlvmJvmtiUtils.h ! test/hotspot/jtreg/vmTestbase/vm/share/ProcessUtils.cpp Changeset: dfed97156841 Author: jcbeyler Date: 2018-09-17 19:48 -0700 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/dfed97156841 8210700: Clean up JNI_ENV_ARG and factorize the macros for vmTestbase/jvmti/unit tests Summary: Remove JNI_ENV macros from the remaining vmTestbase tests Reviewed-by: amenkov, sspitsyn, dholmes, cjplummer ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/unit/ForceEarlyReturn/earlyretfp/earlyretfp.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/unit/ForceEarlyReturn/earlyretint/earlyretint.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/unit/ForceEarlyReturn/earlyretlong/earlyretlong.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/unit/ForceEarlyReturn/earlyretobj/earlyretobj.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/unit/ForceEarlyReturn/earlyretstr/earlyretstr.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/unit/ForceEarlyReturn/earlyretvoid/earlyretvoid.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/unit/GetAllStackTraces/getallstktr001/getallstktr001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/unit/GetConstantPool/getcpool001/getcpool001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/unit/GetLineNumberTable/linetab004/linetab004.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/unit/GetLocalVariable/getlocal003/getlocal003.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/unit/GetLocalVariable/getlocal004/getlocal004.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/unit/IsSynthetic/issynth001/issynth001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/unit/MethodBind/JvmtiTest/JvmtiTest.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/unit/OnUnload/JvmtiTest/JvmtiTest.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/unit/StackTrace/JvmtiTest/JvmtiTest.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/unit/agentthr/agentthr.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/unit/clsldrclss00x/clsldrclss00x.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/unit/events/redefineCFLH/JvmtiTest/JvmtiTest.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/unit/functions/AddToBootstrapClassLoaderSearch/JvmtiTest/JvmtiTest.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/unit/functions/Dispose/JvmtiTest/JvmtiTest.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/unit/functions/ForceGarbageCollection/gc/gc.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/unit/functions/environment/JvmtiTest/JvmtiTest.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/unit/functions/nosuspendMonitorInfo/JvmtiTest/JvmtiTest.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/unit/functions/nosuspendStackTrace/JvmtiTest/JvmtiTest.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/unit/functions/rawmonitor/rawmonitor.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/unit/heapref/heapref.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/unit/refignore/refignore.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/unit/setNullVMInit/JvmtiTest/JvmtiTest.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/unit/timers/JvmtiTest/JvmtiTest.cpp Changeset: 925d79f56c05 Author: fyuan Date: 2018-09-18 11:09 +0800 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/925d79f56c05 8210819: Update the host name in CNameTest.java Reviewed-by: chegar ! test/jdk/sun/net/InetAddress/nameservice/dns/CNameTest.java Changeset: 9c6d5e31618e Author: mhorie Date: 2018-09-17 23:35 -0400 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/9c6d5e31618e 8210660: PPC64: Mapping floating point registers to vsx registers in ppc.ad Reviewed-by: mdoerr, gromero ! src/hotspot/cpu/ppc/assembler_ppc.hpp ! src/hotspot/cpu/ppc/assembler_ppc.inline.hpp ! src/hotspot/cpu/ppc/ppc.ad ! src/hotspot/cpu/ppc/register_ppc.cpp ! src/hotspot/cpu/ppc/register_ppc.hpp Changeset: 300523d8b7b3 Author: mli Date: 2018-09-18 13:24 +0800 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/300523d8b7b3 8210802: temp files left by tests in jdk/java/net/httpclient Reviewed-by: chegar, clanger ! test/jdk/java/net/httpclient/EchoHandler.java Changeset: 1740b162dc0e Author: mchung Date: 2018-09-17 22:56 -0700 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/1740b162dc0e 8210841: test/jdk/vm/runtime/ReflectStackOverflow.java fails with NoClassDefFoundError Reviewed-by: dholmes, mikael ! src/java.base/share/classes/java/lang/reflect/InvocationTargetException.java Changeset: 23e7cd5a9c54 Author: ihse Date: 2018-09-18 10:29 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/23e7cd5a9c54 8210723: Better information in configure for invalid Xcode Reviewed-by: erikj ! make/autoconf/toolchain.m4 Changeset: dd737bf6abde Author: ihse Date: 2018-09-18 10:35 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/dd737bf6abde 8210750: Clean up compare.sh exceptions Reviewed-by: erikj ! make/scripts/compare.sh ! make/scripts/compare_exceptions.sh.incl Changeset: a50956e2368c Author: sgehwolf Date: 2018-09-11 18:18 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/a50956e2368c 8210425: [x86] sharedRuntimeTrig/sharedRuntimeTrans compiled without optimization Summary: Compile with -O2 and -ffp-contract=off as for fdlibm. Reviewed-by: erikj, lucy, aph ! make/hotspot/lib/JvmOverrideFiles.gmk Changeset: 4482acfef2a5 Author: ihse Date: 2018-09-18 13:32 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/4482acfef2a5 8210729: Clean up macosx static library handling Reviewed-by: erikj ! make/autoconf/flags-other.m4 ! make/autoconf/flags.m4 ! make/launcher/LauncherCommon.gmk ! make/lib/CoreLibraries.gmk ! make/lib/Lib-java.instrument.gmk Changeset: fbec908e2783 Author: coleenp Date: 2018-09-18 08:27 -0400 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/fbec908e2783 8203466: intermittent crash at jdk.internal.misc.Unsafe::getObjectVolatile (native) Summary: Store rsi, rdi on thread local memory, store r15 in r9, for the stubs that have gc barriers Reviewed-by: dlong, eosterlund ! src/hotspot/cpu/x86/stubGenerator_x86_64.cpp ! src/hotspot/os_cpu/windows_x86/thread_windows_x86.hpp Changeset: 05b05af6c160 Author: jiangli Date: 2018-09-18 11:55 -0400 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/05b05af6c160 8210237: [TESTBUG]gc/stress/TestStressIHOPMultiThread.java fails with 'Unexpected exit from test [exit code: 1]' in CDS mode Summary: Fix TestStressIHOPMultiThread to handle possible OutOfMemoryError. Reviewed-by: ccheung, gziemski ! test/hotspot/jtreg/gc/stress/TestStressIHOPMultiThread.java Changeset: c93f14a4ae29 Author: joehw Date: 2018-09-18 09:44 -0700 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/c93f14a4ae29 8207760: SAXException: Invalid UTF-16 surrogate detected: d83c ? Reviewed-by: lancea, dfuchs ! src/java.xml/share/classes/com/sun/org/apache/xml/internal/serializer/ToHTMLStream.java ! src/java.xml/share/classes/com/sun/org/apache/xml/internal/serializer/ToStream.java ! src/java.xml/share/classes/com/sun/org/apache/xml/internal/serializer/ToTextStream.java + test/jaxp/javax/xml/jaxp/unittest/transform/JDK8207760.java Changeset: ba51515b64e5 Author: sherman Date: 2018-09-18 10:43 -0700 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/ba51515b64e5 8034802: (zipfs) newFileSystem throws UOE when the zip file is located in a custom file system Reviewed-by: xiaofeya, clanger + src/jdk.zipfs/share/classes/jdk/nio/zipfs/ByteArrayChannel.java ! src/jdk.zipfs/share/classes/jdk/nio/zipfs/ZipFileSystem.java ! src/jdk.zipfs/share/classes/jdk/nio/zipfs/ZipFileSystemProvider.java ! test/jdk/jdk/nio/zipfs/ZipFSTester.java Changeset: c0f9161f591e Author: jgeorge Date: 2018-09-18 23:20 +0530 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/c0f9161f591e 8210836: Build fails with warn_unused_result in openjdk/src/jdk.hotspot.agent/linux/native/libsaproc/ps_core.c Summary: Read in and process the return value of pread() while dealing with the PT_INTERP segment Reviewed-by: stuefe, jcbeyler ! src/jdk.hotspot.agent/linux/native/libsaproc/ps_core.c Changeset: 0535b5a54b83 Author: naoto Date: 2018-09-18 12:42 -0700 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/0535b5a54b83 8209880: tzdb.dat is not reproducibly built Reviewed-by: erikj, rriggs ! make/jdk/src/classes/build/tools/tzdb/TzdbZoneRulesCompiler.java ! make/jdk/src/classes/build/tools/tzdb/TzdbZoneRulesProvider.java Changeset: 62a8579bb6f1 Author: bpb Date: 2018-09-18 13:18 -0700 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/62a8579bb6f1 8210817: Minor typo in java.nio.file.attribute package summary Reviewed-by: dfuchs, alanb ! src/java.base/share/classes/java/nio/file/attribute/package-info.java Changeset: 4f48bad8220f Author: joehw Date: 2018-09-18 13:31 -0700 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/4f48bad8220f 8210874: Test for JDK-8209615 Reviewed-by: lancea + test/jaxp/javax/xml/jaxp/unittest/stream/XMLEventReaderTest/JDK8209615.java Changeset: d0dfb9775c08 Author: dnsimon Date: 2018-09-18 22:32 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/d0dfb9775c08 8210793: [JVMCI] AllocateCompileIdTest.java failed to find DiagnosticCommand.class Reviewed-by: thartmann, kvn ! test/hotspot/jtreg/compiler/jvmci/compilerToVM/AllocateCompileIdTest.java Changeset: 6cd1ee2b4fa1 Author: coleenp Date: 2018-09-18 16:11 -0400 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/6cd1ee2b4fa1 8210861: Move assert to help diagnose rare RedefineStress crash Summary: assert that Method being marked on stack hasn't been missed by previous metadata walk Reviewed-by: lfoltan ! src/hotspot/share/oops/method.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/RedefineClasses/StressRedefineWithoutBytecodeCorruption/TestDescription.java Changeset: 4129f43607cb Author: pliden Date: 2018-09-18 22:46 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/4129f43607cb 8210753: Make ThreadLocalAllocBuffer::resize() public Reviewed-by: eosterlund, jcbeyler ! src/hotspot/share/gc/shared/collectedHeap.cpp ! src/hotspot/share/gc/shared/threadLocalAllocBuffer.cpp ! src/hotspot/share/gc/shared/threadLocalAllocBuffer.hpp Changeset: feb4c9e03aed Author: sherman Date: 2018-09-18 19:44 -0700 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/feb4c9e03aed 8210899: (zipfs) ZipFileSystem.EntryOutputStreamCRC32 mistakenly set the crc32 value into size field Reviewed-by: bpb ! src/jdk.zipfs/share/classes/jdk/nio/zipfs/ZipFileSystem.java ! test/jdk/jdk/nio/zipfs/ZipFSTester.java Changeset: 9d3a00c8c047 Author: iklam Date: 2018-09-18 21:46 -0700 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/9d3a00c8c047 8210864: Reduce the use of metaspaceShared.hpp Reviewed-by: coleenp, lfoltan ! src/hotspot/share/classfile/javaClasses.cpp ! src/hotspot/share/classfile/stringTable.cpp ! src/hotspot/share/gc/g1/g1CollectedHeap.cpp ! src/hotspot/share/gc/serial/markSweep.inline.hpp ! src/hotspot/share/memory/heapShared.cpp ! src/hotspot/share/memory/metaspaceShared.cpp ! src/hotspot/share/memory/metaspaceShared.hpp + src/hotspot/share/memory/metaspaceShared.inline.hpp ! src/hotspot/share/oops/oop.cpp ! src/hotspot/share/oops/oop.hpp ! src/hotspot/share/oops/oop.inline.hpp ! src/hotspot/share/prims/whitebox.cpp ! src/hotspot/share/runtime/flags/jvmFlagRangeList.hpp Changeset: 3efead10e303 Author: pmuthuswamy Date: 2018-09-19 12:14 +0530 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/3efead10e303 8210047: some pages contain content outside of landmark region Reviewed-by: jjg ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/AbstractModuleIndexWriter.java ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/AbstractPackageIndexWriter.java ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/AllClassesFrameWriter.java ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/HtmlDocletWriter.java ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/ModuleIndexFrameWriter.java ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/ModuleIndexWriter.java ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/ModulePackageIndexFrameWriter.java ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/PackageIndexFrameWriter.java ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/PackageIndexWriter.java + test/langtools/jdk/javadoc/doclet/testHtmlLandmarkRegions/TestHtmlLankmarkRegions.java ! test/langtools/jdk/javadoc/doclet/testHtmlVersion/TestHtmlVersion.java ! test/langtools/jdk/javadoc/doclet/testOverview/TestOverview.java Changeset: f55a4bc91ef4 Author: alanb Date: 2018-09-19 08:49 +0100 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/f55a4bc91ef4 8210496: Improve filtering for classes with security sensitive fields Reviewed-by: plevart, mchung ! src/java.base/share/classes/java/lang/invoke/MethodHandles.java ! src/java.base/share/classes/jdk/internal/reflect/ConstantPool.java ! src/java.base/share/classes/jdk/internal/reflect/Reflection.java ! src/java.base/share/classes/jdk/internal/reflect/UnsafeStaticFieldAccessorImpl.java ! src/jdk.unsupported/share/classes/sun/misc/Unsafe.java ! test/hotspot/jtreg/compiler/jvmci/jdk.vm.ci.runtime.test/src/jdk/vm/ci/runtime/test/TestResolvedJavaType.java ! test/jdk/java/lang/reflect/callerCache/AccessTest.java + test/jdk/jdk/internal/reflect/Reflection/Filtering.java Changeset: 3fabe59fe4de Author: jlahoda Date: 2018-09-19 10:50 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/3fabe59fe4de 8207954: Data for --release 11 Summary: Adding support for --release 11 Reviewed-by: erikj, ihse, jjg + make/data/symbols/java.activation-B.sym.txt + make/data/symbols/java.base-B.sym.txt + make/data/symbols/java.compiler-B.sym.txt + make/data/symbols/java.corba-B.sym.txt + make/data/symbols/java.datatransfer-B.sym.txt + make/data/symbols/java.desktop-B.sym.txt + make/data/symbols/java.instrument-B.sym.txt + make/data/symbols/java.logging-B.sym.txt + make/data/symbols/java.management-B.sym.txt + make/data/symbols/java.management.rmi-B.sym.txt + make/data/symbols/java.naming-B.sym.txt + make/data/symbols/java.net.http-B.sym.txt + make/data/symbols/java.prefs-B.sym.txt + make/data/symbols/java.rmi-B.sym.txt + make/data/symbols/java.scripting-B.sym.txt + make/data/symbols/java.se-B.sym.txt + make/data/symbols/java.se.ee-B.sym.txt + make/data/symbols/java.security.jgss-B.sym.txt + make/data/symbols/java.security.sasl-B.sym.txt + make/data/symbols/java.smartcardio-B.sym.txt + make/data/symbols/java.sql-B.sym.txt + make/data/symbols/java.sql.rowset-B.sym.txt + make/data/symbols/java.transaction-B.sym.txt + make/data/symbols/java.transaction.xa-B.sym.txt + make/data/symbols/java.xml-B.sym.txt + make/data/symbols/java.xml.bind-B.sym.txt + make/data/symbols/java.xml.crypto-B.sym.txt + make/data/symbols/java.xml.ws-B.sym.txt + make/data/symbols/java.xml.ws.annotation-B.sym.txt + make/data/symbols/jdk.accessibility-B.sym.txt + make/data/symbols/jdk.attach-B.sym.txt + make/data/symbols/jdk.charsets-B.sym.txt + make/data/symbols/jdk.compiler-B.sym.txt + make/data/symbols/jdk.crypto.cryptoki-B.sym.txt + make/data/symbols/jdk.crypto.ec-B.sym.txt + make/data/symbols/jdk.dynalink-B.sym.txt + make/data/symbols/jdk.editpad-B.sym.txt + make/data/symbols/jdk.hotspot.agent-B.sym.txt + make/data/symbols/jdk.httpserver-B.sym.txt + make/data/symbols/jdk.incubator.httpclient-B.sym.txt + make/data/symbols/jdk.jartool-B.sym.txt + make/data/symbols/jdk.javadoc-B.sym.txt + make/data/symbols/jdk.jcmd-B.sym.txt + make/data/symbols/jdk.jconsole-B.sym.txt + make/data/symbols/jdk.jdeps-B.sym.txt + make/data/symbols/jdk.jdi-B.sym.txt + make/data/symbols/jdk.jdwp.agent-B.sym.txt + make/data/symbols/jdk.jfr-B.sym.txt + make/data/symbols/jdk.jlink-B.sym.txt + make/data/symbols/jdk.jshell-B.sym.txt + make/data/symbols/jdk.jsobject-B.sym.txt + make/data/symbols/jdk.jstatd-B.sym.txt + make/data/symbols/jdk.localedata-B.sym.txt + make/data/symbols/jdk.management-B.sym.txt + make/data/symbols/jdk.management.agent-B.sym.txt + make/data/symbols/jdk.management.jfr-B.sym.txt + make/data/symbols/jdk.naming.dns-B.sym.txt + make/data/symbols/jdk.naming.rmi-B.sym.txt + make/data/symbols/jdk.net-B.sym.txt + make/data/symbols/jdk.pack-B.sym.txt + make/data/symbols/jdk.rmic-B.sym.txt + make/data/symbols/jdk.scripting.nashorn-B.sym.txt + make/data/symbols/jdk.sctp-B.sym.txt + make/data/symbols/jdk.security.auth-B.sym.txt + make/data/symbols/jdk.security.jgss-B.sym.txt + make/data/symbols/jdk.unsupported-B.sym.txt + make/data/symbols/jdk.xml.dom-B.sym.txt + make/data/symbols/jdk.zipfs-B.sym.txt ! make/data/symbols/symbols ! make/gendata/Gendata-jdk.compiler.gmk ! make/langtools/src/classes/build/tools/symbolgenerator/CreateSymbols.java + test/langtools/tools/javac/platform/CanHandleClassFilesTest.java Changeset: bccd9966f1ed Author: mbalao Date: 2018-09-12 13:09 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/bccd9966f1ed 8029661: Support TLS v1.2 algorithm in SunPKCS11 provider Summary: TLS v1.2 algorithms for key and MAC derivation added to SunPKCS11 crypto provider. Reviewed-by: valeriep ! src/jdk.crypto.cryptoki/share/classes/sun/security/pkcs11/P11TlsKeyMaterialGenerator.java ! src/jdk.crypto.cryptoki/share/classes/sun/security/pkcs11/P11TlsMasterSecretGenerator.java ! src/jdk.crypto.cryptoki/share/classes/sun/security/pkcs11/P11TlsPrfGenerator.java ! src/jdk.crypto.cryptoki/share/classes/sun/security/pkcs11/P11TlsRsaPremasterSecretGenerator.java ! src/jdk.crypto.cryptoki/share/classes/sun/security/pkcs11/SunPKCS11.java ! src/jdk.crypto.cryptoki/share/classes/sun/security/pkcs11/wrapper/CK_MECHANISM.java + src/jdk.crypto.cryptoki/share/classes/sun/security/pkcs11/wrapper/CK_TLS12_KEY_MAT_PARAMS.java + src/jdk.crypto.cryptoki/share/classes/sun/security/pkcs11/wrapper/CK_TLS12_MASTER_KEY_DERIVE_PARAMS.java + src/jdk.crypto.cryptoki/share/classes/sun/security/pkcs11/wrapper/CK_TLS_MAC_PARAMS.java ! src/jdk.crypto.cryptoki/share/classes/sun/security/pkcs11/wrapper/Functions.java ! src/jdk.crypto.cryptoki/share/classes/sun/security/pkcs11/wrapper/PKCS11Constants.java ! src/jdk.crypto.cryptoki/share/native/libj2pkcs11/p11_convert.c ! src/jdk.crypto.cryptoki/share/native/libj2pkcs11/p11_keymgmt.c ! src/jdk.crypto.cryptoki/share/native/libj2pkcs11/pkcs11t.h ! src/jdk.crypto.cryptoki/share/native/libj2pkcs11/pkcs11wrapper.h + test/jdk/sun/security/pkcs11/fips/TestTLS12.java ! test/jdk/sun/security/pkcs11/fips/cert8.db ! test/jdk/sun/security/pkcs11/fips/key3.db ! test/jdk/sun/security/pkcs11/fips/keystore Changeset: 09e8e51c948a Author: pliden Date: 2018-09-19 14:09 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/09e8e51c948a 8210713: Let CollectedHeap::ensure_parsability() take care of TLAB statistics gathering Reviewed-by: eosterlund, sjohanss ! src/hotspot/share/gc/g1/g1CollectedHeap.cpp ! src/hotspot/share/gc/parallel/parallelScavengeHeap.cpp ! src/hotspot/share/gc/parallel/parallelScavengeHeap.hpp ! src/hotspot/share/gc/parallel/psMarkSweep.cpp ! src/hotspot/share/gc/parallel/psParallelCompact.cpp ! src/hotspot/share/gc/parallel/psScavenge.cpp ! src/hotspot/share/gc/shared/collectedHeap.cpp ! src/hotspot/share/gc/shared/collectedHeap.hpp ! src/hotspot/share/gc/shared/genCollectedHeap.cpp ! src/hotspot/share/gc/z/zCollectedHeap.hpp ! src/hotspot/share/gc/z/zObjectAllocator.cpp Changeset: 15094d12a632 Author: mikael Date: 2018-09-19 09:24 -0700 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/15094d12a632 8210912: Build error in src/jdk.crypto.cryptoki/share/native/libj2pkcs11/p11_convert.c after JDK-8029661 Reviewed-by: mullan ! src/jdk.crypto.cryptoki/share/native/libj2pkcs11/p11_convert.c Changeset: 9c62292e443d Author: rkennke Date: 2018-09-20 13:25 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/9c62292e443d Merge ! .hgtags ! make/hotspot/lib/JvmOverrideFiles.gmk - make/jdk/src/classes/build/tools/hasher/Hasher.java - make/jdk/src/classes/build/tools/jarreorder/JarReorder.java - make/mapfiles/libjsound/mapfile-vers - make/mapfiles/libjvm_db/mapfile-vers - make/mapfiles/libjvm_dtrace/mapfile-vers ! src/hotspot/cpu/aarch64/c1_LIRAssembler_aarch64.cpp ! src/hotspot/cpu/aarch64/macroAssembler_aarch64.cpp ! src/hotspot/cpu/aarch64/templateInterpreterGenerator_aarch64.cpp ! src/hotspot/cpu/x86/c1_LIRAssembler_x86.cpp ! src/hotspot/cpu/x86/macroAssembler_x86.cpp ! src/hotspot/cpu/x86/sharedRuntime_x86_64.cpp ! src/hotspot/cpu/x86/templateInterpreterGenerator_x86.cpp ! src/hotspot/cpu/x86/templateTable_x86.cpp ! src/hotspot/share/classfile/classLoaderData.cpp ! src/hotspot/share/classfile/javaClasses.cpp ! src/hotspot/share/gc/shared/collectedHeap.cpp ! src/hotspot/share/gc/shared/collectedHeap.hpp ! src/hotspot/share/gc/shenandoah/shenandoahHeap.cpp ! src/hotspot/share/gc/shenandoah/shenandoahHeap.hpp ! src/hotspot/share/gc/shenandoah/shenandoahPhaseTimings.cpp ! src/hotspot/share/gc/shenandoah/shenandoahPhaseTimings.hpp ! src/hotspot/share/gc/shenandoah/shenandoahTraversalGC.cpp ! src/hotspot/share/oops/oop.cpp ! src/hotspot/share/oops/oop.hpp ! src/hotspot/share/oops/oop.inline.hpp ! src/hotspot/share/prims/whitebox.cpp ! src/hotspot/share/runtime/thread.hpp - src/java.base/windows/conf/tzmappings ! src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/oops/ObjectHeap.java - src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot/src/org/graalvm/compiler/hotspot/stubs/NewArrayStub.java - src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot/src/org/graalvm/compiler/hotspot/stubs/NewInstanceStub.java ! test/hotspot/jtreg/TEST.ROOT ! test/hotspot/jtreg/vmTestbase/gc/gctests/mallocWithGC1/libmallocWithGC1.cpp ! test/hotspot/jtreg/vmTestbase/gc/gctests/mallocWithGC2/libmallocWithGC2.cpp ! test/hotspot/jtreg/vmTestbase/gc/gctests/mallocWithGC3/libmallocWithGC3.cpp ! test/hotspot/jtreg/vmTestbase/gc/gctests/nativeGC01/libnativeGC01.cpp ! test/hotspot/jtreg/vmTestbase/gc/gctests/nativeGC02/libnativeGC02.cpp ! test/hotspot/jtreg/vmTestbase/gc/gctests/nativeGC03/libnativeGC03.cpp ! test/hotspot/jtreg/vmTestbase/gc/gctests/nativeGC05/libnativeGC05.cpp ! test/hotspot/jtreg/vmTestbase/nsk/aod/VirtualMachine/VirtualMachine07/agent00.cpp ! test/hotspot/jtreg/vmTestbase/nsk/aod/VirtualMachine/VirtualMachine07/agent01.cpp ! test/hotspot/jtreg/vmTestbase/nsk/aod/VirtualMachine/VirtualMachine07/agent02.cpp ! test/hotspot/jtreg/vmTestbase/nsk/aod/VirtualMachine/VirtualMachine07/agent03.cpp ! test/hotspot/jtreg/vmTestbase/nsk/aod/VirtualMachine/VirtualMachine09/agent00.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/AddCapabilities/addcaps001/addcaps001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/AddCapabilities/addcaps002/addcaps002.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/AddCapabilities/addcaps003/addcaps003.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/Agent_OnLoad/agentonload001/agentonload001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/Agent_OnLoad/agentonload002/agentonload002.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/Agent_OnLoad/agentonload003/agentonload003.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/Agent_OnUnload/agentonunload001/agentonunload001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/AttachOnDemand/attach002/attach002Agent00.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/AttachOnDemand/attach002a/attach002aAgent00.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/AttachOnDemand/attach008/attach008Agent00.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/AttachOnDemand/attach009/attach009Agent00.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/AttachOnDemand/attach012/attach012Agent00.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/AttachOnDemand/attach014/attach014Agent00.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/AttachOnDemand/attach015/attach015Agent00.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/AttachOnDemand/attach015/attach015Agent01.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/AttachOnDemand/attach015/attach015Target.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/AttachOnDemand/attach020/attach020Agent00.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/AttachOnDemand/attach021/attach021Agent00.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/AttachOnDemand/attach022/attach022Agent00.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/AttachOnDemand/attach037/attach037Agent00.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/AttachOnDemand/attach038/attach038Agent00.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/AttachOnDemand/attach039/attach039Agent00.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/AttachOnDemand/attach040/attach040Agent00.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/AttachOnDemand/attach041/attach041Agent00.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/AttachOnDemand/attach042/attach042Agent00.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/AttachOnDemand/attach045/attach045Agent00.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/AttachOnDemand/attach045/attach045Agent01.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/AttachOnDemand/attach045/attach045Agent02.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/AttachOnDemand/attach045/attach045Agent03.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/AttachOnDemand/attach046/attach046Agent00.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/AttachOnDemand/attach050/attach050Agent00.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/AttachOnDemand/sharedAgents/simpleAgent00.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/Breakpoint/breakpoint001/breakpoint001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/ClassFileLoadHook/classfloadhk001/classfloadhk001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/ClassFileLoadHook/classfloadhk002/classfloadhk002.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/ClassFileLoadHook/classfloadhk003/classfloadhk003.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/ClassFileLoadHook/classfloadhk004/classfloadhk004.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/ClassFileLoadHook/classfloadhk005/classfloadhk005.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/ClassFileLoadHook/classfloadhk006/classfloadhk006.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/ClassFileLoadHook/classfloadhk007/classfloadhk007.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/ClassFileLoadHook/classfloadhk008/classfloadhk008.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/ClassFileLoadHook/classfloadhk009/classfloadhk009.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/ClassLoad/classload001/classload001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/CompiledMethodLoad/compmethload001/compmethload001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/CompiledMethodUnload/compmethunload001/compmethunload001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/DataDumpRequest/datadumpreq001/datadumpreq001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/DisposeEnvironment/disposeenv001/disposeenv001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/DisposeEnvironment/disposeenv002/disposeenv002.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/DynamicCodeGenerated/dyncodgen001/dyncodgen001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/ForceEarlyReturn/ForceEarlyReturn001/ForceEarlyReturn001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/ForceGarbageCollection/forcegc001/forcegc001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/ForceGarbageCollection/forcegc002/forcegc002.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/GarbageCollectionFinish/gcfinish001/gcfinish001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/GarbageCollectionStart/gcstart001/gcstart001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/GarbageCollectionStart/gcstart002/gcstart002.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/GenerateEvents/genevents001/genevents001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/InterruptThread/intrpthrd001/intrpthrd001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/IsMethodObsolete/isobsolete001/isobsolete001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/IterateOverHeap/iterheap001/iterheap001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/IterateOverHeap/iterheap002/iterheap002.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/IterateOverHeap/iterheap003/iterheap003.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/IterateOverHeap/iterheap004/iterheap004.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/IterateOverHeap/iterheap005/iterheap005.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/IterateOverHeap/iterheap006/iterheap006.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/IterateOverHeap/iterheap007/iterheap007.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/IterateOverInstancesOfClass/iterinstcls001/iterinstcls001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/IterateOverInstancesOfClass/iterinstcls002/iterinstcls002.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/IterateOverInstancesOfClass/iterinstcls003/iterinstcls003.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/IterateOverInstancesOfClass/iterinstcls004/iterinstcls004.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/IterateOverInstancesOfClass/iterinstcls005/iterinstcls005.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/IterateOverInstancesOfClass/iterinstcls006/iterinstcls006.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/IterateOverInstancesOfClass/iterinstcls007/iterinstcls007.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/IterateOverObjectsReachableFromObject/iterobjreachobj001/iterobjreachobj001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/IterateOverObjectsReachableFromObject/iterobjreachobj002/iterobjreachobj002.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/IterateOverObjectsReachableFromObject/iterobjreachobj003/iterobjreachobj003.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/IterateOverObjectsReachableFromObject/iterobjreachobj004/iterobjreachobj004.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/IterateOverObjectsReachableFromObject/iterobjreachobj005/iterobjreachobj005.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/IterateOverReachableObjects/iterreachobj001/iterreachobj001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/IterateOverReachableObjects/iterreachobj002/iterreachobj002.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/IterateOverReachableObjects/iterreachobj003/iterreachobj003.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/IterateOverReachableObjects/iterreachobj004/iterreachobj004.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/IterateOverReachableObjects/iterreachobj005/iterreachobj005.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/IterateThroughHeap/abort/Abort.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/IterateThroughHeap/callbacks/Callbacks.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/IterateThroughHeap/concrete-klass-filter/ConcreteKlassFilter.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/IterateThroughHeap/filter-tagged/HeapFilter.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/IterateThroughHeap/non-concrete-klass-filter/NonConcreteKlassFilter.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/MonitorContendedEnter/mcontenter001/mcontenter001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/MonitorContendedEntered/mcontentered001/mcontentered001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/MonitorWait/monitorwait001/monitorwait001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/MonitorWaited/monitorwaited001/monitorwaited001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/NativeMethodBind/nativemethbind001/nativemethbind001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/NativeMethodBind/nativemethbind002/nativemethbind002.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/NativeMethodBind/nativemethbind003/nativemethbind003.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/NativeMethodBind/nativemethbind004/nativemethbind004.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/ObjectFree/objfree001/objfree001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/ObjectFree/objfree002/objfree002.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/PopFrame/popframe001/popframe001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/PopFrame/popframe002/popframe002.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/PopFrame/popframe003/popframe003.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/PopFrame/popframe004/popframe004.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/PopFrame/popframe005/popframe005.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/PopFrame/popframe006/popframe006.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/PopFrame/popframe007/popframe007.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/PopFrame/popframe008/popframe008.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/PopFrame/popframe009/popframe009.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/PopFrame/popframe010/popframe010.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/PopFrame/popframe011/popframe011.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/RawMonitorEnter/rawmonenter001/rawmonenter001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/RawMonitorEnter/rawmonenter002/rawmonenter002.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/RawMonitorEnter/rawmonenter003/rawmonenter003.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/RawMonitorEnter/rawmonenter004/rawmonenter004.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/RawMonitorExit/rawmonexit001/rawmonexit001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/RawMonitorExit/rawmonexit002/rawmonexit002.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/RawMonitorExit/rawmonexit003/rawmonexit003.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/RawMonitorExit/rawmonexit005/rawmonexit005.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/RawMonitorNotify/rawmnntfy001/rawmnntfy001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/RawMonitorNotify/rawmnntfy002/rawmnntfy002.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/RawMonitorNotify/rawmnntfy003/rawmnntfy003.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/RawMonitorNotify/rawmnntfy004/rawmnntfy004.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/RawMonitorNotifyAll/rawmnntfyall001/rawmnntfyall001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/RawMonitorNotifyAll/rawmnntfyall002/rawmnntfyall002.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/RawMonitorNotifyAll/rawmnntfyall003/rawmnntfyall003.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/RawMonitorNotifyAll/rawmnntfyall004/rawmnntfyall004.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/RawMonitorWait/rawmnwait001/rawmnwait001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/RawMonitorWait/rawmnwait002/rawmnwait002.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/RawMonitorWait/rawmnwait003/rawmnwait003.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/RawMonitorWait/rawmnwait004/rawmnwait004.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/RawMonitorWait/rawmnwait005/rawmnwait005.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/RedefineClasses/StressRedefine/stressRedefine.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/RedefineClasses/redefclass001/redefclass001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/RedefineClasses/redefclass002/redefclass002.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/RedefineClasses/redefclass003/redefclass003.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/RedefineClasses/redefclass004/redefclass004.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/RedefineClasses/redefclass005/redefclass005.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/RedefineClasses/redefclass006/redefclass006.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/RedefineClasses/redefclass008/redefclass008.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/RedefineClasses/redefclass009/redefclass009.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/RedefineClasses/redefclass010/redefclass010.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/RedefineClasses/redefclass011/redefclass011.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/RedefineClasses/redefclass012/redefclass012.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/RedefineClasses/redefclass013/redefclass013.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/RedefineClasses/redefclass014/redefclass014.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/RedefineClasses/redefclass015/redefclass015.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/RedefineClasses/redefclass016/redefclass016.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/RedefineClasses/redefclass017/redefclass017.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/RedefineClasses/redefclass018/redefclass018.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/RedefineClasses/redefclass019/redefclass019.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/RedefineClasses/redefclass020/redefclass020.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/RedefineClasses/redefclass021/redefclass021.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/RedefineClasses/redefclass022/redefclass022.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/RedefineClasses/redefclass023/redefclass023.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/RedefineClasses/redefclass024/redefclass024.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/RedefineClasses/redefclass025/redefclass025.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/RedefineClasses/redefclass026/redefclass026.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/RedefineClasses/redefclass027/redefclass027.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/RedefineClasses/redefclass028/redefclass028.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/RedefineClasses/redefclass029/redefclass029.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/RedefineClasses/redefclass030/redefclass030.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/RedefineClasses/redefclass031/redefclass031.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/RelinquishCapabilities/relcaps001/relcaps001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/RelinquishCapabilities/relcaps002/relcaps002.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/ResourceExhausted/resexhausted.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/ResumeThread/resumethrd001/resumethrd001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/ResumeThread/resumethrd002/resumethrd002.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/ResumeThreadList/resumethrdlst001/resumethrdlst001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/ResumeThreadList/resumethrdlst002/resumethrdlst002.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/RetransformClasses/retransform002/retransform002.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/RetransformClasses/retransform003/retransform003.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/RetransformClasses/retransform004/retransform004.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/RunAgentThread/agentthr001/agentthr001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/RunAgentThread/agentthr002/agentthr002.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/RunAgentThread/agentthr003/agentthr003.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/SetBreakpoint/setbrk002/setbrk002.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/SetBreakpoint/setbrk003/setbrk003.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/SetBreakpoint/setbrk005/setbrk005.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/SetBreakpoint/setbrk007/setbrk007.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/SetBreakpoint/setbrk008/setbrk008.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/SetEnvironmentLocalStorage/setenvstor001/setenvstor001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/SetEnvironmentLocalStorage/setenvstor002/setenvstor002.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/SetEnvironmentLocalStorage/setenvstor003/setenvstor003.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/SetEventCallbacks/setevntcallb001/setevntcallb001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/SetEventCallbacks/setevntcallb002/setevntcallb002.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/SetEventCallbacks/setevntcallb003/setevntcallb003.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/SetEventNotificationMode/setnotif001/setnotif001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/SetExtensionEventCallback/setextevent001/setextevent001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/SetFieldAccessWatch/setfldw001/setfldw001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/SetFieldAccessWatch/setfldw002/setfldw002.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/SetFieldAccessWatch/setfldw003/setfldw003.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/SetFieldAccessWatch/setfldw004/setfldw004.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/SetFieldAccessWatch/setfldw005/setfldw005.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/SetFieldAccessWatch/setfldw006/setfldw006.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/SetFieldModificationWatch/setfmodw001/setfmodw001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/SetFieldModificationWatch/setfmodw002/setfmodw002.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/SetFieldModificationWatch/setfmodw003/setfmodw003.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/SetFieldModificationWatch/setfmodw004/setfmodw004.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/SetFieldModificationWatch/setfmodw005/setfmodw005.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/SetFieldModificationWatch/setfmodw006/setfmodw006.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/SetJNIFunctionTable/setjniftab001/setjniftab001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/SetJNIFunctionTable/setjniftab002/setjniftab002.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/SetLocalVariable/setlocal001/setlocal001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/SetLocalVariable/setlocal002/setlocal002.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/SetLocalVariable/setlocal003/setlocal003.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/SetLocalVariable/setlocal004/setlocal004.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/SetNativeMethodPrefix/SetNativeMethodPrefix001/SetNativeMethodPrefix001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/SetNativeMethodPrefix/SetNativeMethodPrefix002/SetNativeMethodPrefix002.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/SetNativeMethodPrefix/SetNativeMethodPrefix002/SetNativeMethodPrefix002Main.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/SetSystemProperty/setsysprop002/setsysprop002.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/SetSystemProperty/setsysprop003/setsysprop003.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/SetTag/settag001/settag001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/SetThreadLocalStorage/setthrdstor001/setthrdstor001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/SetThreadLocalStorage/setthrdstor002/setthrdstor002.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/SetThreadLocalStorage/setthrdstor003/setthrdstor003.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/SetVerboseFlag/setvrbflag001/setvrbflag001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/SetVerboseFlag/setvrbflag002/setvrbflag002.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/SingleStep/singlestep001/singlestep001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/SingleStep/singlestep002/singlestep002.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/SingleStep/singlestep003/singlestep003.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/StopThread/stopthrd006/stopthrd006.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/StopThread/stopthrd007/stopthrd007.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/SuspendThread/suspendthrd001/suspendthrd001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/SuspendThread/suspendthrd002/suspendthrd002.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/SuspendThread/suspendthrd003/suspendthrd003.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/SuspendThreadList/suspendthrdlst001/suspendthrdlst001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/SuspendThreadList/suspendthrdlst002/suspendthrdlst002.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/ThreadEnd/threadend001/threadend001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/ThreadEnd/threadend002/threadend002.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/ThreadStart/threadstart001/threadstart001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/ThreadStart/threadstart002/threadstart002.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/ThreadStart/threadstart003/threadstart003.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/VMDeath/vmdeath001/vmdeath001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/VMInit/vminit001/vminit001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/VMObjectAlloc/vmobjalloc001/vmobjalloc001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/allocation/AP01/ap01t001/ap01t001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/allocation/AP02/ap02t001/ap02t001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/allocation/AP03/ap03t001/ap03t001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/allocation/AP04/ap04t001/ap04t001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/allocation/AP04/ap04t002/ap04t002.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/allocation/AP04/ap04t003/ap04t003.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/allocation/AP05/ap05t001/ap05t001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/allocation/AP05/ap05t002/ap05t002.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/allocation/AP06/ap06t001/ap06t001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/allocation/AP07/ap07t001/ap07t001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/allocation/AP07/ap07t002/ap07t002.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/allocation/AP09/ap09t001/ap09t001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/allocation/AP10/ap10t001/ap10t001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/allocation/AP11/ap11t001/ap11t001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/allocation/AP12/ap12t001/ap12t001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/bcinstr/BI01/bi01t001/bi01t001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/bcinstr/BI01/bi01t002/bi01t002.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/bcinstr/BI02/bi02t001/bi02t001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/bcinstr/BI02/bi02t002/bi02t002.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/bcinstr/BI03/bi03t001/bi03t001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/bcinstr/BI03/bi03t002/bi03t002.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/bcinstr/BI04/bi04t002/bi04t002.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/capability/CM01/cm01t001/cm01t001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/capability/CM01/cm01t002/cm01t002.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/capability/CM01/cm01t003/cm01t003.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/capability/CM01/cm01t004/cm01t004.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/capability/CM01/cm01t005/cm01t005.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/capability/CM01/cm01t006/cm01t006.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/capability/CM01/cm01t007/cm01t007.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/capability/CM01/cm01t008/cm01t008.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/capability/CM01/cm01t009/cm01t009.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/capability/CM01/cm01t010/cm01t010.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/capability/CM01/cm01t011/cm01t011.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/capability/CM01/cm01t012/cm01t012.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/capability/CM01/cm01t013/cm01t013.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/capability/CM01/cm01t014/cm01t014.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/capability/CM01/cm01t015/cm01t015.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/capability/CM01/cm01t016/cm01t016.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/capability/CM01/cm01t017/cm01t017.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/capability/CM01/cm01t018/cm01t018.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/capability/CM01/cm01t019/cm01t019.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/capability/CM01/cm01t020/cm01t020.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/capability/CM01/cm01t021/cm01t021.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/capability/CM02/cm02t001/cm02t001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/capability/CM03/cm03t001/cm03t001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/contention/TC01/tc01t001/tc01t001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/contention/TC02/tc02t001/tc02t001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/contention/TC03/tc03t001/tc03t001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/contention/TC03/tc03t002/tc03t002.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/contention/TC04/tc04t001/tc04t001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/contention/TC05/tc05t001/tc05t001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/events/EM01/em01t001/em01t001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/events/EM01/em01t002/em01t002.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/events/EM02/em02t001/em02t001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/events/EM02/em02t002/em02t002.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/events/EM02/em02t003/em02t003.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/events/EM02/em02t004/em02t004.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/events/EM02/em02t005/em02t005.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/events/EM02/em02t006/em02t006.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/events/EM02/em02t007/em02t007.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/events/EM02/em02t008/em02t008.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/events/EM02/em02t009/em02t009.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/events/EM02/em02t010/em02t010.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/events/EM02/em02t011/em02t011.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/events/EM02/em02t012/em02t012.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/events/EM04/em04t001/em04t001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/events/EM05/em05t001/em05t001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/events/EM05/em05t002/em05t002.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/events/EM06/em06t001/em06t001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/events/EM07/em07t001/em07t001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/events/EM07/em07t002/em07t002.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/extension/EX03/ex03t001/ex03t001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/general_functions/GF01/gf01t001/gf01t001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/general_functions/GF04/gf04t001/gf04t001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/general_functions/GF06/gf06t001/gf06t001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/general_functions/GF08/gf08t001/gf08t001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/general_functions/GF08/gf08t002/gf08t002.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/general_functions/GF08/gf08t003/gf08t003.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/hotswap/HS103/hs103t002/hs103t002.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/hotswap/HS104/hs104t001/hs104t001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/hotswap/HS104/hs104t002/hs104t002.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/hotswap/HS201/hs201t001/hs201t001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/hotswap/HS201/hs201t002/hs201t002.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/hotswap/HS201/hs201t003/hs201t003.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/hotswap/HS202/hs202t001/hs202t001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/hotswap/HS202/hs202t002/hs202t002.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/hotswap/HS203/hs203t001/hs203t001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/hotswap/HS203/hs203t002/hs203t002.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/hotswap/HS203/hs203t003/hs203t003.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/hotswap/HS203/hs203t004/hs203t004.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/hotswap/HS204/hs204t001/hs204t001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/hotswap/HS204/hs204t002/hs204t002.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/hotswap/HS204/hs204t003/hs204t003.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/hotswap/HS204/hs204t004/hs204t004.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/hotswap/HS301/hs301t001/hs301t001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/hotswap/HS301/hs301t002/hs301t002.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/hotswap/HS301/hs301t003/hs301t003.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/hotswap/HS301/hs301t004/hs301t004.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/hotswap/HS301/hs301t005/hs301t005.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/hotswap/HS302/hs302t001/hs302t001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/hotswap/HS302/hs302t002/hs302t002.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/hotswap/HS302/hs302t003/hs302t003.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/hotswap/HS302/hs302t004/hs302t004.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/hotswap/HS302/hs302t005/hs302t005.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/hotswap/HS302/hs302t006/hs302t006.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/hotswap/HS302/hs302t007/hs302t007.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/hotswap/HS302/hs302t008/hs302t008.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/hotswap/HS302/hs302t009/hs302t009.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/hotswap/HS302/hs302t010/hs302t010.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/hotswap/HS302/hs302t011/hs302t011.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/hotswap/HS302/hs302t012/hs302t012.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/jni_interception/JI01/ji01t001/ji01t001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/jni_interception/JI03/ji03t001/ji03t001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/jni_interception/JI03/ji03t002/ji03t002.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/jni_interception/JI03/ji03t003/ji03t003.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/jni_interception/JI03/ji03t004/ji03t004.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/jni_interception/JI05/ji05t001/ji05t001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/jni_interception/JI06/ji06t001/ji06t001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/multienv/MA01/ma01t001/ma01t001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/multienv/MA01/ma01t001/ma01t001a.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/multienv/MA02/ma02t001/ma02t001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/multienv/MA02/ma02t001/ma02t001a.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/multienv/MA03/ma03t001/ma03t001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/multienv/MA03/ma03t001/ma03t001a.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/multienv/MA04/ma04t001/ma04t001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/multienv/MA04/ma04t001/ma04t001a.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/multienv/MA04/ma04t002/ma04t002.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/multienv/MA04/ma04t002/ma04t002a.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/multienv/MA04/ma04t003/ma04t003.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/multienv/MA04/ma04t003/ma04t003a.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/multienv/MA05/ma05t001/ma05t001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/multienv/MA05/ma05t001/ma05t001a.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/multienv/MA06/ma06t001/ma06t001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/multienv/MA06/ma06t001/ma06t001a.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/multienv/MA07/ma07t001/ma07t001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/multienv/MA07/ma07t001/ma07t001a.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/multienv/MA08/ma08t001/ma08t001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/multienv/MA08/ma08t001/ma08t001a.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/multienv/MA10/ma10t001/ma10t001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/multienv/MA10/ma10t001/ma10t001a.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/multienv/MA10/ma10t002/ma10t002.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/multienv/MA10/ma10t002/ma10t002a.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/multienv/MA10/ma10t003/ma10t003.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/multienv/MA10/ma10t003/ma10t003a.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/multienv/MA10/ma10t004/ma10t004.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/multienv/MA10/ma10t004/ma10t004a.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/multienv/MA10/ma10t005/ma10t005.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/multienv/MA10/ma10t005/ma10t005a.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/multienv/MA10/ma10t006/ma10t006.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/multienv/MA10/ma10t006/ma10t006a.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/multienv/MA10/ma10t007/ma10t007.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/multienv/MA10/ma10t007/ma10t007a.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/multienv/MA10/ma10t008/ma10t008.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/multienv/MA10/ma10t008/ma10t008a.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/sampling/SP01/sp01t001/sp01t001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/sampling/SP01/sp01t002/sp01t002.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/sampling/SP01/sp01t003/sp01t003.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/sampling/SP02/sp02t001/sp02t001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/sampling/SP02/sp02t002/sp02t002.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/sampling/SP02/sp02t003/sp02t003.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/sampling/SP03/sp03t001/sp03t001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/sampling/SP03/sp03t002/sp03t002.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/sampling/SP04/sp04t001/sp04t001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/sampling/SP04/sp04t002/sp04t002.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/sampling/SP05/sp05t002/sp05t002.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/sampling/SP05/sp05t003/sp05t003.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/sampling/SP06/sp06t001/sp06t001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/sampling/SP06/sp06t002/sp06t002.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/sampling/SP06/sp06t003/sp06t003.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/sampling/SP07/sp07t001/sp07t001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/sampling/SP07/sp07t002/sp07t002.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/unit/FollowReferences/followref001/followref001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/unit/FollowReferences/followref002/followref002.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/unit/FollowReferences/followref003/followref003.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/unit/FollowReferences/followref004/followref004.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/unit/FollowReferences/followref005/followref005.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/unit/FollowReferences/followref006/followref006.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/unit/ForceEarlyReturn/earlyretbase/earlyretbase.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/unit/ForceEarlyReturn/earlyretfp/earlyretfp.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/unit/ForceEarlyReturn/earlyretint/earlyretint.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/unit/ForceEarlyReturn/earlyretlong/earlyretlong.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/unit/ForceEarlyReturn/earlyretobj/earlyretobj.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/unit/ForceEarlyReturn/earlyretstr/earlyretstr.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/unit/ForceEarlyReturn/earlyretvoid/earlyretvoid.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/unit/GetAllStackTraces/getallstktr001/getallstktr001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/unit/GetConstantPool/getcpool001/getcpool001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/unit/GetLineNumberTable/linetab004/linetab004.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/unit/GetLocalVariable/getlocal003/getlocal003.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/unit/GetLocalVariable/getlocal004/getlocal004.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/unit/IsSynthetic/issynth001/issynth001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/unit/MethodBind/JvmtiTest/JvmtiTest.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/unit/OnUnload/JvmtiTest/JvmtiTest.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/unit/StackTrace/JvmtiTest/JvmtiTest.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/unit/agentthr/agentthr.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/unit/clsldrclss00x/clsldrclss00x.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/unit/events/redefineCFLH/JvmtiTest/JvmtiTest.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/unit/extmech/extmech.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/unit/functions/AddToBootstrapClassLoaderSearch/JvmtiTest/JvmtiTest.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/unit/functions/Dispose/JvmtiTest/JvmtiTest.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/unit/functions/ForceGarbageCollection/gc/gc.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/unit/functions/environment/JvmtiTest/JvmtiTest.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/unit/functions/nosuspendMonitorInfo/JvmtiTest/JvmtiTest.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/unit/functions/nosuspendStackTrace/JvmtiTest/JvmtiTest.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/unit/functions/rawmonitor/rawmonitor.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/unit/heapref/heapref.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/unit/refignore/refignore.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/unit/setNullVMInit/JvmtiTest/JvmtiTest.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/unit/timers/JvmtiTest/JvmtiTest.cpp ! test/hotspot/jtreg/vmTestbase/nsk/monitoring/share/StackTraceController.cpp ! test/hotspot/jtreg/vmTestbase/nsk/monitoring/share/ThreadController.cpp ! test/hotspot/jtreg/vmTestbase/nsk/monitoring/share/thread/Deadlock.cpp ! test/hotspot/jtreg/vmTestbase/nsk/monitoring/share/thread/LockingThreads.cpp ! test/hotspot/jtreg/vmTestbase/nsk/monitoring/share/thread/RecursiveMonitoringThread.cpp ! test/hotspot/jtreg/vmTestbase/nsk/monitoring/share/thread/libNativeBlockedThread.cpp ! test/hotspot/jtreg/vmTestbase/nsk/share/JVMDITools.cpp ! test/hotspot/jtreg/vmTestbase/nsk/share/JVMTIagent.cpp ! test/hotspot/jtreg/vmTestbase/nsk/share/aod/aod.cpp ! test/hotspot/jtreg/vmTestbase/nsk/share/gc/lock/jni/BooleanArrayCriticalLocker.cpp ! test/hotspot/jtreg/vmTestbase/nsk/share/gc/lock/jni/ByteArrayCriticalLocker.cpp ! test/hotspot/jtreg/vmTestbase/nsk/share/gc/lock/jni/CharArrayCriticalLocker.cpp ! test/hotspot/jtreg/vmTestbase/nsk/share/gc/lock/jni/DoubleArrayCriticalLocker.cpp ! test/hotspot/jtreg/vmTestbase/nsk/share/gc/lock/jni/FloatArrayCriticalLocker.cpp ! test/hotspot/jtreg/vmTestbase/nsk/share/gc/lock/jni/IntArrayCriticalLocker.cpp ! test/hotspot/jtreg/vmTestbase/nsk/share/gc/lock/jni/LongArrayCriticalLocker.cpp ! test/hotspot/jtreg/vmTestbase/nsk/share/gc/lock/jni/ShortArrayCriticalLocker.cpp ! test/hotspot/jtreg/vmTestbase/nsk/share/gc/lock/jni/StringCriticalLocker.cpp ! test/hotspot/jtreg/vmTestbase/nsk/share/gc/lock/jniref/JNIGlobalRefLocker.cpp ! test/hotspot/jtreg/vmTestbase/nsk/share/gc/lock/jniref/JNILocalRefLocker.cpp ! test/hotspot/jtreg/vmTestbase/nsk/share/gc/lock/jniref/JNIRefLocker.cpp ! test/hotspot/jtreg/vmTestbase/nsk/share/gc/lock/jniref/JNIWeakGlobalRefLocker.cpp ! test/hotspot/jtreg/vmTestbase/nsk/share/gc/lock/jvmti/JVMTIAllocLocker.cpp ! test/hotspot/jtreg/vmTestbase/nsk/share/gc/lock/malloc/MallocLocker.cpp ! test/hotspot/jtreg/vmTestbase/nsk/share/jni/jni_tools.cpp ! test/hotspot/jtreg/vmTestbase/nsk/share/jvmti/AddToBootstrapClassLoaderSearch/bootclssearch_agent.cpp ! test/hotspot/jtreg/vmTestbase/nsk/share/jvmti/AddToSystemClassLoaderSearch/systemclssearch_agent.cpp ! test/hotspot/jtreg/vmTestbase/nsk/share/jvmti/Injector.cpp ! test/hotspot/jtreg/vmTestbase/nsk/share/jvmti/JVMTITools.cpp ! test/hotspot/jtreg/vmTestbase/nsk/share/jvmti/agent_common/agent_common.cpp ! test/hotspot/jtreg/vmTestbase/nsk/share/jvmti/agent_tools.cpp ! test/hotspot/jtreg/vmTestbase/nsk/share/jvmti/aod/jvmti_aod.cpp ! test/hotspot/jtreg/vmTestbase/nsk/share/jvmti/hotswap/HotSwap.cpp ! test/hotspot/jtreg/vmTestbase/nsk/share/jvmti/jvmti_FollowRefObjects.cpp ! test/hotspot/jtreg/vmTestbase/nsk/share/jvmti/jvmti_tools.cpp ! test/hotspot/jtreg/vmTestbase/nsk/share/jvmti/unit/Heap.cpp ! test/hotspot/jtreg/vmTestbase/nsk/share/native/native_thread.cpp ! test/hotspot/jtreg/vmTestbase/nsk/share/native/native_utils.cpp ! test/hotspot/jtreg/vmTestbase/nsk/share/native/nsk_list.cpp ! test/hotspot/jtreg/vmTestbase/nsk/share/native/nsk_mutex.cpp ! test/hotspot/jtreg/vmTestbase/nsk/share/native/nsk_tools.cpp ! test/hotspot/jtreg/vmTestbase/nsk/stress/jni/gclocker/libgcl001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/stress/jni/libjnistress001.cpp ! test/hotspot/jtreg/vmTestbase/nsk/stress/jni/libjnistress002.cpp ! test/hotspot/jtreg/vmTestbase/nsk/stress/jni/libjnistress003.cpp ! test/hotspot/jtreg/vmTestbase/nsk/stress/jni/libjnistress004.cpp ! test/hotspot/jtreg/vmTestbase/nsk/stress/jni/libjnistress005.cpp ! test/hotspot/jtreg/vmTestbase/nsk/stress/jni/libjnistress006.cpp ! test/hotspot/jtreg/vmTestbase/nsk/stress/jni/libjnistress007.cpp ! test/hotspot/jtreg/vmTestbase/nsk/stress/strace/strace003.cpp ! test/hotspot/jtreg/vmTestbase/nsk/stress/strace/strace004.cpp ! test/hotspot/jtreg/vmTestbase/nsk/stress/strace/strace005.cpp ! test/hotspot/jtreg/vmTestbase/nsk/stress/strace/strace006.cpp ! test/hotspot/jtreg/vmTestbase/nsk/stress/strace/strace008.cpp ! test/hotspot/jtreg/vmTestbase/nsk/stress/strace/strace009.cpp ! test/hotspot/jtreg/vmTestbase/nsk/stress/strace/strace011.cpp ! test/hotspot/jtreg/vmTestbase/nsk/stress/strace/strace012.cpp ! test/hotspot/jtreg/vmTestbase/nsk/stress/strace/strace014.cpp ! test/hotspot/jtreg/vmTestbase/nsk/stress/strace/strace015.cpp ! test/hotspot/jtreg/vmTestbase/vm/jit/LongTransitions/libLTTest.cpp ! test/hotspot/jtreg/vmTestbase/vm/mlvm/indy/func/jvmti/share/IndyRedefineClass.cpp ! test/hotspot/jtreg/vmTestbase/vm/mlvm/indy/func/jvmti/stepBreakPopReturn/stepBreakPopReturn.cpp ! test/hotspot/jtreg/vmTestbase/vm/mlvm/meth/stress/jni/nativeAndMH/nativeAndMH.cpp ! test/hotspot/jtreg/vmTestbase/vm/mlvm/share/mlvmJvmtiUtils.cpp ! test/hotspot/jtreg/vmTestbase/vm/share/ProcessUtils.cpp - test/jdk/com/sun/jdi/Redefine-g.sh - test/jdk/com/sun/jdi/RedefineAbstractClass.sh - test/jdk/com/sun/jdi/RedefineAddPrivateMethod.sh - test/jdk/com/sun/jdi/RedefineAnnotation.sh - test/jdk/com/sun/jdi/RedefineChangeClassOrder.sh - test/jdk/com/sun/jdi/RedefineClasses.sh - test/jdk/com/sun/jdi/RedefineClearBreakpoint.sh - test/jdk/com/sun/jdi/RedefineImplementor.sh - test/jdk/java/util/ServiceLoader/basic/basic.sh - test/jdk/lib/testlibrary/jdk/testlibrary/Utils.java From shade at redhat.com Thu Sep 20 13:10:30 2018 From: shade at redhat.com (Aleksey Shipilev) Date: Thu, 20 Sep 2018 15:10:30 +0200 Subject: RFR [8]: Excess barriers before JNI accesses, already covered by "Move barriers into typeArrayOop.hpp direct memory accessors" Message-ID: http://cr.openjdk.java.net/~shade/shenandoah/8u-jni-barriers/webrev.01/ Found this while cross-referencing integration repo and sh/jdk8u. It seems to me these barriers are excessive, because they would be all redone when doing typeArrayOop::*_at_addr accessor. This is partially done by our previous change: http://hg.openjdk.java.net/shenandoah/jdk8u/hotspot/rev/a8d83c1c5fce ...and the patch above seems to complete it. Testing: tier3_gc_shenandoah {fastdebug|release} Thanks, -Aleksey From roman at kennke.org Thu Sep 20 13:39:14 2018 From: roman at kennke.org (Roman Kennke) Date: Thu, 20 Sep 2018 15:39:14 +0200 Subject: RFR [8]: Excess barriers before JNI accesses, already covered by "Move barriers into typeArrayOop.hpp direct memory accessors" In-Reply-To: References: Message-ID: <3470deaf-f4ef-f485-6e47-8da0caafcdab@kennke.org> > http://cr.openjdk.java.net/~shade/shenandoah/8u-jni-barriers/webrev.01/ > > Found this while cross-referencing integration repo and sh/jdk8u. It seems to me these barriers are > excessive, because they would be all redone when doing typeArrayOop::*_at_addr accessor. This is > partially done by our previous change: > http://hg.openjdk.java.net/shenandoah/jdk8u/hotspot/rev/a8d83c1c5fce > > ...and the patch above seems to complete it. > > Testing: tier3_gc_shenandoah {fastdebug|release} Looks correct. Thanks! Roman From shade at redhat.com Thu Sep 20 13:50:55 2018 From: shade at redhat.com (shade at redhat.com) Date: Thu, 20 Sep 2018 13:50:55 +0000 Subject: hg: shenandoah/jdk8u/hotspot: Excess barriers before JNI accesses, already covered by "Move barriers into typeArrayOop.hpp direct memory accessors" Message-ID: <201809201350.w8KDotHS021147@aojmv0008.oracle.com> Changeset: 06f02c19e973 Author: shade Date: 2018-09-20 14:55 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/hotspot/rev/06f02c19e973 Excess barriers before JNI accesses, already covered by "Move barriers into typeArrayOop.hpp direct memory accessors" ! src/share/vm/prims/jni.cpp From shade at redhat.com Thu Sep 20 14:50:53 2018 From: shade at redhat.com (Aleksey Shipilev) Date: Thu, 20 Sep 2018 16:50:53 +0200 Subject: RFR: Unclutter ShenandoahHeap, take 2 Message-ID: <319c0354-4895-e1bd-5ec2-62c935e919f1@redhat.com> http://cr.openjdk.java.net/~shade/shenandoah/unclutter-sh-heap-2/webrev.01/ Since recent sh/jdk merge wrecked up my patch that reorders stuff in shenandoahHeap.hpp, I prefer to push the parts of pending shenandoahHeap.cpp changes ahead. This would give me the opportunity to just copy over the "new" shenandoahHeap.hpp with reshuffling over the old one. Testing: tier3_gc_shenandoah Thanks, -Aleksey From rkennke at redhat.com Thu Sep 20 14:52:52 2018 From: rkennke at redhat.com (Roman Kennke) Date: Thu, 20 Sep 2018 16:52:52 +0200 Subject: RFR: Unclutter ShenandoahHeap, take 2 In-Reply-To: <319c0354-4895-e1bd-5ec2-62c935e919f1@redhat.com> References: <319c0354-4895-e1bd-5ec2-62c935e919f1@redhat.com> Message-ID: Am 20.09.2018 um 16:50 schrieb Aleksey Shipilev: > http://cr.openjdk.java.net/~shade/shenandoah/unclutter-sh-heap-2/webrev.01/ > > Since recent sh/jdk merge wrecked up my patch that reorders stuff in shenandoahHeap.hpp, I prefer to > push the parts of pending shenandoahHeap.cpp changes ahead. This would give me the opportunity to > just copy over the "new" shenandoahHeap.hpp with reshuffling over the old one. > > Testing: tier3_gc_shenandoah > Sure. Go! Sorry for messing up. Roman From zgu at redhat.com Thu Sep 20 15:24:47 2018 From: zgu at redhat.com (Zhengyu Gu) Date: Thu, 20 Sep 2018 11:24:47 -0400 Subject: RFR: Unclutter ShenandoahHeap, take 2 In-Reply-To: <319c0354-4895-e1bd-5ec2-62c935e919f1@redhat.com> References: <319c0354-4895-e1bd-5ec2-62c935e919f1@redhat.com> Message-ID: <5480c2b9-861c-fe92-1acf-b091ecf6774e@redhat.com> Looks good. -Zhengyu On 09/20/2018 10:50 AM, Aleksey Shipilev wrote: > http://cr.openjdk.java.net/~shade/shenandoah/unclutter-sh-heap-2/webrev.01/ > > Since recent sh/jdk merge wrecked up my patch that reorders stuff in shenandoahHeap.hpp, I prefer to > push the parts of pending shenandoahHeap.cpp changes ahead. This would give me the opportunity to > just copy over the "new" shenandoahHeap.hpp with reshuffling over the old one. > > Testing: tier3_gc_shenandoah > > Thanks, > -Aleksey > From shade at redhat.com Thu Sep 20 15:25:18 2018 From: shade at redhat.com (shade at redhat.com) Date: Thu, 20 Sep 2018 15:25:18 +0000 Subject: hg: shenandoah/jdk: 2 new changesets Message-ID: <201809201525.w8KFPIss022517@aojmv0008.oracle.com> Changeset: b71d37b06789 Author: shade Date: 2018-09-20 15:55 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/b71d37b06789 Remove useless ShHeap::heap_region_iterate ! src/hotspot/share/gc/shenandoah/shenandoahHeap.cpp ! src/hotspot/share/gc/shenandoah/shenandoahHeap.hpp Changeset: 90a438b30ec1 Author: shade Date: 2018-09-20 16:06 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/90a438b30ec1 Inline trivial ShHeap methods right in header ! src/hotspot/share/gc/shenandoah/shenandoahHeap.cpp ! src/hotspot/share/gc/shenandoah/shenandoahHeap.hpp From rwestrel at redhat.com Thu Sep 20 20:35:08 2018 From: rwestrel at redhat.com (Roland Westrelin) Date: Thu, 20 Sep 2018 22:35:08 +0200 Subject: RFR: Fix ExtendedDTraceProbes with Shenandoah In-Reply-To: References: Message-ID: Hi Zhengyu, > we are not sure about it is right fix (offline chat discussion). This > patch might just kill the symptom that described in attached "before fix > LIR", since G1 generates similar LIR, but happens to use different > register for loading 0x10 @146, so it does not destroy base. > > Unfortunately, it is not the case for Shenandoah, load @146 destroys the > base ... could it be register allocator's bug? I don't think the fix is the right one. Here is HIR+LIR of a section of the method where the crash occurs: . 3 1 a99 UnsafeGetObject.(a71, l94) move [R584|L] [R594|L] cmp [EQ] [R594|L] [obj:0x0000000000000000|L] branch [EQ] [label:0x00007fe0e81b86a8] move [Base:[R594|L] Disp: -8|^@] [R594|L] label [label:0x00007fe0e81b86a8] move [Base:[R594|L] Index:[R591|J] Disp: 0|L] [R593|L] membar_acquire move [lng:12|J] [R595|J] cmp [NE] [R591|J] [R595|J] branch [NE] [label:0x00007fe0e81b8a48] cmp [EQ] [R584|L] [obj:0x0000000000000000|L] branch [EQ] [label:0x00007fe0e81b8a48] move [Base:[R584|L] Disp: 8|^@] [R596|M] move [Base:[R596|M] Disp: 395|B] [R597|I] cmp [EQ] [R597|I] [int:0|I] branch [EQ] [label:0x00007fe0e81b8a48] move [Base:[r15r15|J] Disp: 56|Z] [R598|I] cmp [NE] [R598|I] [int:0|I] branch [NE] [ShenandoahPreBarrierStub: 0x00007fe0e81b92c0] label [label:0x00007fe0e81b9360] label [label:0x00007fe0e81b8a48] And now LIR+Assembly: 152 move [stack:16|L] [rdi|L] 0x00007fe114aac427: mov 0xc0(%rsp),%rdi 154 cmp [EQ] [rdi|L] [obj:0x0000000000000000|L] 0x00007fe114aac42f: cmp $0x0,%rdi 156 branch [EQ] [label:0x00007fe0e81b86a8] 0x00007fe114aac433: je 0x00007fe114aac439 158 move [Base:[rdi|L] Disp: -8|^@] [rdi|L] 0x00007fe114aac439: mov -0x8(%rdi),%rdi 160 label [label:0x00007fe0e81b86a8] move [dbl_stack:18|J] [rbxrbx|J] 0x00007fe114aac43d: mov 0xc8(%rsp),%rbx 162 move [Base:[rdi|L] Index:[rbxrbx|J] Disp: 0|L] [rax|L] 0x00007fe114aac445: mov (%rdi,%rbx,1),%eax 164 membar_acquire 166 move [lng:12|J] [rdirdi|J] 0x00007fe114aac448: movabs $0xc,%rdi 168 cmp [NE] [rbxrbx|J] [rdirdi|J] 0x00007fe114aac452: cmp %rdi,%rbx 170 branch [NE] [label:0x00007fe0e81b8a48] 0x00007fe114aac455: jne 0x00007fe114aac45b move [stack:16|L] [rdi|L] 0x00007fe114aac45b: mov 0xc0(%rsp),%rdi 172 cmp [EQ] [rdi|L] [obj:0x0000000000000000|L] 0x00007fe114aac463: cmp $0x0,%rdi 174 branch [EQ] [label:0x00007fe0e81b8a48] 0x00007fe114aac467: je 0x00007fe114aac46d 176 move [Base:[rdi|L] Disp: 8|^@] [rsi|M] 0x00007fe114aac46d: mov 0x8(%rdi),%esi 0x00007fe114aac470: shl $0x3,%rsi 178 move [Base:[rsi|M] Disp: 395|B] [rsi|I] 0x00007fe114aac474: movsbl 0x18b(%rsi),%esi 180 cmp [EQ] [rsi|I] [int:0|I] 0x00007fe114aac47b: cmp $0x0,%esi 182 branch [EQ] [label:0x00007fe0e81b8a48] 0x00007fe114aac47e: je 0x00007fe114aac484 184 move [Base:[r15r15|J] Disp: 56|Z] [rsi|I] 0x00007fe114aac484: movsbl 0x38(%r15),%esi 186 cmp [NE] [rsi|I] [int:0|I] 0x00007fe114aac489: cmp $0x0,%esi 188 branch [NE] [ShenandoahPreBarrierStub: 0x00007fe0e81b92c0] 0x00007fe114aac48c: jne 0x00007fe114aac492 190 label [label:0x00007fe0e81b9360] 192 label [label:0x00007fe0e81b8a48] R595 is short lived (only for the move + cmp) and assigned rdi. R584 was lived before this piece of code and is used right after R595 goes dead. R584 was spilled, is assigned rdi and is reloaded from the stack. The problem is that there's control flow here that's invisible to the register allocator. The register allocator only knows about control flow that connects basic blocks. The control flow here is within a block. So as far as the register allocator is concerned the code above is a linear sequence of instructions all of which are all executed: so once R584 is live by restoring the value from the stack into rdi, that value in rdi is live too at the end of the code sequence above. Of course, it's not true, the code sequence has branches, if branch at LIR instruction 170 is taken, the value is not restored in rdi as expected and that's why we have the crash. So it's not a register allocator bug. The problem is hidden control flow in basic blocks. The right fix I think is to move all of that code in the backend (c1_LIRAssembler). That's quite a bit of work so I'll see if I can think of a work around. Note that this is an upstream bug. Roland. From rkennke at redhat.com Thu Sep 20 20:42:28 2018 From: rkennke at redhat.com (Roman Kennke) Date: Thu, 20 Sep 2018 22:42:28 +0200 Subject: RFR: Fix ExtendedDTraceProbes with Shenandoah In-Reply-To: References: Message-ID: Thanks, Roland! How is this an upstream bug if it's related to Shenandoah barriers (it is, from what I can tell) ? Roman > > Hi Zhengyu, > >> we are not sure about it is right fix (offline chat discussion). This >> patch might just kill the symptom that described in attached "before fix >> LIR", since G1 generates similar LIR, but happens to use different >> register for loading 0x10 @146, so it does not destroy base. >> >> Unfortunately, it is not the case for Shenandoah, load @146 destroys the >> base ... could it be register allocator's bug? > > I don't think the fix is the right one. Here is HIR+LIR of a section of > the method where the crash occurs: > > . 3 1 a99 UnsafeGetObject.(a71, l94) > move [R584|L] [R594|L] > cmp [EQ] [R594|L] [obj:0x0000000000000000|L] > branch [EQ] [label:0x00007fe0e81b86a8] > move [Base:[R594|L] Disp: -8|^@] [R594|L] > label [label:0x00007fe0e81b86a8] > move [Base:[R594|L] Index:[R591|J] Disp: 0|L] [R593|L] > membar_acquire > move [lng:12|J] [R595|J] > cmp [NE] [R591|J] [R595|J] > branch [NE] [label:0x00007fe0e81b8a48] > cmp [EQ] [R584|L] [obj:0x0000000000000000|L] > branch [EQ] [label:0x00007fe0e81b8a48] > move [Base:[R584|L] Disp: 8|^@] [R596|M] > move [Base:[R596|M] Disp: 395|B] [R597|I] > cmp [EQ] [R597|I] [int:0|I] > branch [EQ] [label:0x00007fe0e81b8a48] > move [Base:[r15r15|J] Disp: 56|Z] [R598|I] > cmp [NE] [R598|I] [int:0|I] > branch [NE] [ShenandoahPreBarrierStub: 0x00007fe0e81b92c0] > label [label:0x00007fe0e81b9360] > label [label:0x00007fe0e81b8a48] > > And now LIR+Assembly: > > 152 move [stack:16|L] [rdi|L] > 0x00007fe114aac427: mov 0xc0(%rsp),%rdi > 154 cmp [EQ] [rdi|L] [obj:0x0000000000000000|L] > 0x00007fe114aac42f: cmp $0x0,%rdi > 156 branch [EQ] [label:0x00007fe0e81b86a8] > 0x00007fe114aac433: je 0x00007fe114aac439 > 158 move [Base:[rdi|L] Disp: -8|^@] [rdi|L] > 0x00007fe114aac439: mov -0x8(%rdi),%rdi > 160 label [label:0x00007fe0e81b86a8] > move [dbl_stack:18|J] [rbxrbx|J] > 0x00007fe114aac43d: mov 0xc8(%rsp),%rbx > 162 move [Base:[rdi|L] Index:[rbxrbx|J] Disp: 0|L] [rax|L] > 0x00007fe114aac445: mov (%rdi,%rbx,1),%eax > 164 membar_acquire > 166 move [lng:12|J] [rdirdi|J] > 0x00007fe114aac448: movabs $0xc,%rdi > 168 cmp [NE] [rbxrbx|J] [rdirdi|J] > 0x00007fe114aac452: cmp %rdi,%rbx > 170 branch [NE] [label:0x00007fe0e81b8a48] > 0x00007fe114aac455: jne 0x00007fe114aac45b > move [stack:16|L] [rdi|L] > 0x00007fe114aac45b: mov 0xc0(%rsp),%rdi > 172 cmp [EQ] [rdi|L] [obj:0x0000000000000000|L] > 0x00007fe114aac463: cmp $0x0,%rdi > 174 branch [EQ] [label:0x00007fe0e81b8a48] > 0x00007fe114aac467: je 0x00007fe114aac46d > 176 move [Base:[rdi|L] Disp: 8|^@] [rsi|M] > 0x00007fe114aac46d: mov 0x8(%rdi),%esi > 0x00007fe114aac470: shl $0x3,%rsi > 178 move [Base:[rsi|M] Disp: 395|B] [rsi|I] > 0x00007fe114aac474: movsbl 0x18b(%rsi),%esi > 180 cmp [EQ] [rsi|I] [int:0|I] > 0x00007fe114aac47b: cmp $0x0,%esi > 182 branch [EQ] [label:0x00007fe0e81b8a48] > 0x00007fe114aac47e: je 0x00007fe114aac484 > 184 move [Base:[r15r15|J] Disp: 56|Z] [rsi|I] > 0x00007fe114aac484: movsbl 0x38(%r15),%esi > 186 cmp [NE] [rsi|I] [int:0|I] > 0x00007fe114aac489: cmp $0x0,%esi > 188 branch [NE] [ShenandoahPreBarrierStub: 0x00007fe0e81b92c0] > 0x00007fe114aac48c: jne 0x00007fe114aac492 > 190 label [label:0x00007fe0e81b9360] > 192 label [label:0x00007fe0e81b8a48] > > R595 is short lived (only for the move + cmp) and assigned rdi. R584 was > lived before this piece of code and is used right after R595 goes > dead. R584 was spilled, is assigned rdi and is reloaded from the > stack. The problem is that there's control flow here that's invisible to > the register allocator. The register allocator only knows about control > flow that connects basic blocks. The control flow here is within a > block. So as far as the register allocator is concerned the code above > is a linear sequence of instructions all of which are all executed: so > once R584 is live by restoring the value from the stack into rdi, that > value in rdi is live too at the end of the code sequence above. Of > course, it's not true, the code sequence has branches, if branch at LIR > instruction 170 is taken, the value is not restored in rdi as expected > and that's why we have the crash. > > So it's not a register allocator bug. The problem is hidden control flow > in basic blocks. The right fix I think is to move all of that code in > the backend (c1_LIRAssembler). That's quite a bit of work so I'll see if > I can think of a work around. Note that this is an upstream bug. > > Roland. > From rwestrel at redhat.com Thu Sep 20 20:44:24 2018 From: rwestrel at redhat.com (Roland Westrelin) Date: Thu, 20 Sep 2018 22:44:24 +0200 Subject: RFR: Fix ExtendedDTraceProbes with Shenandoah In-Reply-To: References: Message-ID: > How is this an upstream bug if it's related to Shenandoah barriers (it > is, from what I can tell) ? It's code in BarrierSetC1::generate_referent_check() so shared between shenandoah and other collectors. Roland. From rwestrel at redhat.com Thu Sep 20 20:52:44 2018 From: rwestrel at redhat.com (Roland Westrelin) Date: Thu, 20 Sep 2018 22:52:44 +0200 Subject: RFR: Fix ExtendedDTraceProbes with Shenandoah In-Reply-To: References: Message-ID: Below is a possible fix. Roland. diff --git a/src/hotspot/share/gc/shared/c1/barrierSetC1.cpp b/src/hotspot/share/gc/shared/c1/barrierSetC1.cpp --- a/src/hotspot/share/gc/shared/c1/barrierSetC1.cpp +++ b/src/hotspot/share/gc/shared/c1/barrierSetC1.cpp @@ -301,6 +301,8 @@ if (gen_pre_barrier) { // We can have generate one runtime check here. Let's start with // the offset check. + LIR_Opr base_reg = gen->new_register(T_OBJECT); + __ move(base.result(), base_reg); if (gen_offset_check) { // if (offset != referent_offset) -> continue // If offset is an int then we can do the comparison with the @@ -323,14 +325,14 @@ if (gen_source_check) { // offset is a const and equals referent offset // if (source == null) -> continue - __ cmp(lir_cond_equal, base.result(), LIR_OprFact::oopConst(NULL)); + __ cmp(lir_cond_equal, base_reg, LIR_OprFact::oopConst(NULL)); __ branch(lir_cond_equal, T_OBJECT, cont->label()); } LIR_Opr src_klass = gen->new_register(T_METADATA); if (gen_type_check) { // We have determined that offset == referent_offset && src != null. // if (src->_klass->_reference_type == REF_NONE) -> continue - __ move(new LIR_Address(base.result(), oopDesc::klass_offset_in_bytes(), T_ADDRESS), src_klass); + __ move(new LIR_Address(base_reg, oopDesc::klass_offset_in_bytes(), T_ADDRESS), src_klass); LIR_Address* reference_type_addr = new LIR_Address(src_klass, in_bytes(InstanceKlass::reference_type_offset()), T_BYTE); LIR_Opr reference_type = gen->new_register(T_INT); __ move(reference_type_addr, reference_type); From zgu at redhat.com Fri Sep 21 01:29:34 2018 From: zgu at redhat.com (Zhengyu Gu) Date: Thu, 20 Sep 2018 21:29:34 -0400 Subject: RFR: Fix ExtendedDTraceProbes with Shenandoah In-Reply-To: References: Message-ID: <322eda1d-dd3d-ccb7-db60-15b9586959cb@redhat.com> Passed most tier2 with ExtendedDTraceProbes (some of tests timeout). Of course, still failed CriticalNativeArgs.java with C2/traversal. Thanks, -Zhengyu On 09/20/2018 04:52 PM, Roland Westrelin wrote: > > Below is a possible fix. > > Roland. > > diff --git a/src/hotspot/share/gc/shared/c1/barrierSetC1.cpp b/src/hotspot/share/gc/shared/c1/barrierSetC1.cpp > --- a/src/hotspot/share/gc/shared/c1/barrierSetC1.cpp > +++ b/src/hotspot/share/gc/shared/c1/barrierSetC1.cpp > @@ -301,6 +301,8 @@ > if (gen_pre_barrier) { > // We can have generate one runtime check here. Let's start with > // the offset check. > + LIR_Opr base_reg = gen->new_register(T_OBJECT); > + __ move(base.result(), base_reg); > if (gen_offset_check) { > // if (offset != referent_offset) -> continue > // If offset is an int then we can do the comparison with the > @@ -323,14 +325,14 @@ > if (gen_source_check) { > // offset is a const and equals referent offset > // if (source == null) -> continue > - __ cmp(lir_cond_equal, base.result(), LIR_OprFact::oopConst(NULL)); > + __ cmp(lir_cond_equal, base_reg, LIR_OprFact::oopConst(NULL)); > __ branch(lir_cond_equal, T_OBJECT, cont->label()); > } > LIR_Opr src_klass = gen->new_register(T_METADATA); > if (gen_type_check) { > // We have determined that offset == referent_offset && src != null. > // if (src->_klass->_reference_type == REF_NONE) -> continue > - __ move(new LIR_Address(base.result(), oopDesc::klass_offset_in_bytes(), T_ADDRESS), src_klass); > + __ move(new LIR_Address(base_reg, oopDesc::klass_offset_in_bytes(), T_ADDRESS), src_klass); > LIR_Address* reference_type_addr = new LIR_Address(src_klass, in_bytes(InstanceKlass::reference_type_offset()), T_BYTE); > LIR_Opr reference_type = gen->new_register(T_INT); > __ move(reference_type_addr, reference_type); > From rkennke at redhat.com Fri Sep 21 07:13:23 2018 From: rkennke at redhat.com (Roman Kennke) Date: Fri, 21 Sep 2018 09:13:23 +0200 Subject: RFR: Fix ExtendedDTraceProbes with Shenandoah In-Reply-To: <322eda1d-dd3d-ccb7-db60-15b9586959cb@redhat.com> References: <322eda1d-dd3d-ccb7-db60-15b9586959cb@redhat.com> Message-ID: <14a599eb-b068-766d-386e-6abf2a7674d6@redhat.com> Very good! The interesting question is: is this reproducible with upstream+G1 somehow? Can you make a testcase against G1, and fix it upstream? Also, might we have more 'hidden-ctrl-flow-bugs' lurking in our code? We've seen some suspcious failures with C1/Level3-compiled code lately, where embedded oops seem to point to garbled-heap-space, even before the first GC cycle. (Shade will provide more info on that later today I suppose.) Roman > Passed most tier2 with ExtendedDTraceProbes (some of tests timeout).? Of > course, still failed CriticalNativeArgs.java with C2/traversal. > > Thanks, > > -Zhengyu > > On 09/20/2018 04:52 PM, Roland Westrelin wrote: >> >> Below is a possible fix. >> >> Roland. >> >> diff --git a/src/hotspot/share/gc/shared/c1/barrierSetC1.cpp >> b/src/hotspot/share/gc/shared/c1/barrierSetC1.cpp >> --- a/src/hotspot/share/gc/shared/c1/barrierSetC1.cpp >> +++ b/src/hotspot/share/gc/shared/c1/barrierSetC1.cpp >> @@ -301,6 +301,8 @@ >> ??? if (gen_pre_barrier) { >> ????? // We can have generate one runtime check here. Let's start with >> ????? // the offset check. >> +??? LIR_Opr base_reg = gen->new_register(T_OBJECT); >> +??? __ move(base.result(), base_reg); >> ????? if (gen_offset_check) { >> ??????? // if (offset != referent_offset) -> continue >> ??????? // If offset is an int then we can do the comparison with the >> @@ -323,14 +325,14 @@ >> ????? if (gen_source_check) { >> ??????? // offset is a const and equals referent offset >> ??????? // if (source == null) -> continue >> -????? __ cmp(lir_cond_equal, base.result(), >> LIR_OprFact::oopConst(NULL)); >> +????? __ cmp(lir_cond_equal, base_reg, LIR_OprFact::oopConst(NULL)); >> ??????? __ branch(lir_cond_equal, T_OBJECT, cont->label()); >> ????? } >> ????? LIR_Opr src_klass = gen->new_register(T_METADATA); >> ????? if (gen_type_check) { >> ??????? // We have determined that offset == referent_offset && src != >> null. >> ??????? // if (src->_klass->_reference_type == REF_NONE) -> continue >> -????? __ move(new LIR_Address(base.result(), >> oopDesc::klass_offset_in_bytes(), T_ADDRESS), src_klass); >> +????? __ move(new LIR_Address(base_reg, >> oopDesc::klass_offset_in_bytes(), T_ADDRESS), src_klass); >> ??????? LIR_Address* reference_type_addr = new LIR_Address(src_klass, >> in_bytes(InstanceKlass::reference_type_offset()), T_BYTE); >> ??????? LIR_Opr reference_type = gen->new_register(T_INT); >> ??????? __ move(reference_type_addr, reference_type); >> From shade at redhat.com Fri Sep 21 08:34:52 2018 From: shade at redhat.com (Aleksey Shipilev) Date: Fri, 21 Sep 2018 10:34:52 +0200 Subject: RFR: Fix ExtendedDTraceProbes with Shenandoah In-Reply-To: <14a599eb-b068-766d-386e-6abf2a7674d6@redhat.com> References: <322eda1d-dd3d-ccb7-db60-15b9586959cb@redhat.com> <14a599eb-b068-766d-386e-6abf2a7674d6@redhat.com> Message-ID: On 09/21/2018 09:13 AM, Roman Kennke wrote: > The interesting question is: is this reproducible with upstream+G1 > somehow? Can you make a testcase against G1, and fix it upstream? > > Also, might we have more 'hidden-ctrl-flow-bugs' lurking in our code? And on top of that, is there a way to mechanically check there is no control flow within the C1 BB? This sounds like a serious trouble that needs to be asserted by the compiler itself. -Aleksey From rkennke at redhat.com Fri Sep 21 08:51:05 2018 From: rkennke at redhat.com (Roman Kennke) Date: Fri, 21 Sep 2018 10:51:05 +0200 Subject: RFR: Fix ExtendedDTraceProbes with Shenandoah In-Reply-To: References: <322eda1d-dd3d-ccb7-db60-15b9586959cb@redhat.com> <14a599eb-b068-766d-386e-6abf2a7674d6@redhat.com> Message-ID: <9ed4dff6-c356-8da5-423c-3a9f286d1fc4@redhat.com> Am 21.09.2018 um 10:34 schrieb Aleksey Shipilev: > On 09/21/2018 09:13 AM, Roman Kennke wrote: >> The interesting question is: is this reproducible with upstream+G1 >> somehow? Can you make a testcase against G1, and fix it upstream? >> >> Also, might we have more 'hidden-ctrl-flow-bugs' lurking in our code? > > And on top of that, is there a way to mechanically check there is no control flow within the C1 BB? > This sounds like a serious trouble that needs to be asserted by the compiler itself. > > -Aleksey > Except that we have this stuff everywhere (look at e.g. SATB barriers). I guess we have reasonable workarounds in those places. Roman From shade at redhat.com Fri Sep 21 10:47:08 2018 From: shade at redhat.com (Aleksey Shipilev) Date: Fri, 21 Sep 2018 12:47:08 +0200 Subject: RFR: Code root iterators should not be instantiated in worker threads Message-ID: <6c7bda03-dd2c-5f18-9e57-04ccd3e36552@redhat.com> http://cr.openjdk.java.net/~shade/shenandoah/traversal-coderoots-iter/webrev.01/ Following up on the recent test failure that looks like a garbled code root. This is the race between two GC threads: each of those threads have their own code iterator, and so they visit the same nmethods. MarkingCodeBlobClosure prevents from the massive breakage in this case, but the assertion code in code roots iteration would still occasionally see the transient garbled oop from another thread updates, before checking with MarkingCodeBlobClosure about this. This is also a performance problem, because each GC worker would walk all recorded nmethods, instead of coordinating the striding with shared iterator. This only affects Traversal. The simplest solution is to forbid worker threads getting the iterators for themselves. The cleaner solution would be to call Root{Processor,Evacuator} on this path, but it would run into problems, e.g. thread parity checks. The semi-clean solution would be to introduce another method into RootProcessor that would only walk CSet code roots. Testing: tier3_gc_shenandoah (running) Thanks, -Aleksey From shade at redhat.com Fri Sep 21 11:18:05 2018 From: shade at redhat.com (Aleksey Shipilev) Date: Fri, 21 Sep 2018 13:18:05 +0200 Subject: RFR: Record location when asserting the code root correctness Message-ID: We should really pass the "loc" into assert to let it know we read the oop from nmethod, for better diagnostics. diff -r 3cb10f96ca90 src/hotspot/share/gc/shenandoah/shenandoahCodeRoots.cpp --- a/src/hotspot/share/gc/shenandoah/shenandoahCodeRoots.cpp Fri Sep 21 12:35:03 2018 +0200 +++ b/src/hotspot/share/gc/shenandoah/shenandoahCodeRoots.cpp Fri Sep 21 13:16:14 2018 +0200 @@ -360,13 +360,14 @@ void ShenandoahNMethod::assert_alive_and_correct() { assert(_nm->is_alive(), "only alive nmethods here"); assert(_oops_count > 0, "should have filtered nmethods without oops before"); ShenandoahHeap* heap = ShenandoahHeap::heap(); for (int c = 0; c < _oops_count; c++) { - oop o = RawAccess<>::oop_load(_oops[c]); - shenandoah_assert_correct_except(NULL, o, o == NULL || heap->is_full_gc_move_in_progress()); - assert(_nm->code_contains((address)_oops[c]) || _nm->oops_contains(_oops[c]), "nmethod should contain the oop*"); + oop *loc = _oops[c]; + oop o = RawAccess<>::oop_load(loc); + assert(_nm->code_contains((address) loc) || _nm->oops_contains(loc), "nmethod should contain the oop*"); + shenandoah_assert_correct_except(loc, o, o == NULL || heap->is_full_gc_move_in_progress()); } } Testing: tier3_gc_shenandoah Thanks, -Aleksey From rkennke at redhat.com Fri Sep 21 11:29:05 2018 From: rkennke at redhat.com (Roman Kennke) Date: Fri, 21 Sep 2018 13:29:05 +0200 Subject: RFR: Code root iterators should not be instantiated in worker threads In-Reply-To: <6c7bda03-dd2c-5f18-9e57-04ccd3e36552@redhat.com> References: <6c7bda03-dd2c-5f18-9e57-04ccd3e36552@redhat.com> Message-ID: <0570ade9-3638-f7da-76f3-15ca89e577ab@redhat.com> Am 21.09.2018 um 12:47 schrieb Aleksey Shipilev: > http://cr.openjdk.java.net/~shade/shenandoah/traversal-coderoots-iter/webrev.01/ > > Following up on the recent test failure that looks like a garbled code root. This is the race > between two GC threads: each of those threads have their own code iterator, and so they visit the > same nmethods. MarkingCodeBlobClosure prevents from the massive breakage in this case, but the > assertion code in code roots iteration would still occasionally see the transient garbled oop from > another thread updates, before checking with MarkingCodeBlobClosure about this. This is also a > performance problem, because each GC worker would walk all recorded nmethods, instead of > coordinating the striding with shared iterator. > > This only affects Traversal. The simplest solution is to forbid worker threads getting the iterators > for themselves. The cleaner solution would be to call Root{Processor,Evacuator} on this path, but it > would run into problems, e.g. thread parity checks. The semi-clean solution would be to introduce > another method into RootProcessor that would only walk CSet code roots. > > Testing: tier3_gc_shenandoah (running) > > Thanks, > -Aleksey > That's good. Push it. We should also check our uses of MarkingCodeBlobClosure: they are not actually needed because claiming is done by our iterators. And as this bug illustrate, they only help to hide actual bugs ;-) We should replace them all with ordinary CodeBlobToOopClosure instead. Thanks, Roman From rkennke at redhat.com Fri Sep 21 11:29:24 2018 From: rkennke at redhat.com (Roman Kennke) Date: Fri, 21 Sep 2018 13:29:24 +0200 Subject: RFR: Record location when asserting the code root correctness In-Reply-To: References: Message-ID: <109ddc58-966a-865c-6cda-47822bbd663b@redhat.com> Am 21.09.2018 um 13:18 schrieb Aleksey Shipilev: > We should really pass the "loc" into assert to let it know we read the oop from nmethod, for better > diagnostics. > > diff -r 3cb10f96ca90 src/hotspot/share/gc/shenandoah/shenandoahCodeRoots.cpp > --- a/src/hotspot/share/gc/shenandoah/shenandoahCodeRoots.cpp Fri Sep 21 12:35:03 2018 +0200 > +++ b/src/hotspot/share/gc/shenandoah/shenandoahCodeRoots.cpp Fri Sep 21 13:16:14 2018 +0200 > @@ -360,13 +360,14 @@ > void ShenandoahNMethod::assert_alive_and_correct() { > assert(_nm->is_alive(), "only alive nmethods here"); > assert(_oops_count > 0, "should have filtered nmethods without oops before"); > ShenandoahHeap* heap = ShenandoahHeap::heap(); > for (int c = 0; c < _oops_count; c++) { > - oop o = RawAccess<>::oop_load(_oops[c]); > - shenandoah_assert_correct_except(NULL, o, o == NULL || heap->is_full_gc_move_in_progress()); > - assert(_nm->code_contains((address)_oops[c]) || _nm->oops_contains(_oops[c]), "nmethod should > contain the oop*"); > + oop *loc = _oops[c]; > + oop o = RawAccess<>::oop_load(loc); > + assert(_nm->code_contains((address) loc) || _nm->oops_contains(loc), "nmethod should contain > the oop*"); > + shenandoah_assert_correct_except(loc, o, o == NULL || heap->is_full_gc_move_in_progress()); > } > } > > > Testing: tier3_gc_shenandoah > > Thanks, > -Aleksey > Sure. Do it! Roman From shade at redhat.com Fri Sep 21 11:39:05 2018 From: shade at redhat.com (shade at redhat.com) Date: Fri, 21 Sep 2018 11:39:05 +0000 Subject: hg: shenandoah/jdk: 2 new changesets Message-ID: <201809211139.w8LBd5vv029117@aojmv0008.oracle.com> Changeset: 3cb10f96ca90 Author: shade Date: 2018-09-21 12:35 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/3cb10f96ca90 Code root iterators should not be instantiated in worker threads ! src/hotspot/share/gc/shenandoah/shenandoahCodeRoots.cpp ! src/hotspot/share/gc/shenandoah/shenandoahTraversalGC.cpp Changeset: fb2f26e8b006 Author: shade Date: 2018-09-21 13:19 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/fb2f26e8b006 Record location when asserting the code root correctness ! src/hotspot/share/gc/shenandoah/shenandoahCodeRoots.cpp From rwestrel at redhat.com Fri Sep 21 13:09:11 2018 From: rwestrel at redhat.com (Roland Westrelin) Date: Fri, 21 Sep 2018 15:09:11 +0200 Subject: RFR: Fix ExtendedDTraceProbes with Shenandoah In-Reply-To: <322eda1d-dd3d-ccb7-db60-15b9586959cb@redhat.com> References: <322eda1d-dd3d-ccb7-db60-15b9586959cb@redhat.com> Message-ID: > Passed most tier2 with ExtendedDTraceProbes (some of tests timeout). Of > course, still failed CriticalNativeArgs.java with C2/traversal. The C2 fix is below. Let me know if that works ok. Roland. diff --git a/src/hotspot/share/opto/arraycopynode.cpp b/src/hotspot/share/opto/arraycopynode.cpp --- a/src/hotspot/share/opto/arraycopynode.cpp +++ b/src/hotspot/share/opto/arraycopynode.cpp @@ -60,7 +60,7 @@ Node* src_length, Node* dest_length) { ArrayCopyNode* ac = new ArrayCopyNode(kit->C, alloc_tightly_coupled, has_negative_length_guard); - Node* prev_mem = kit->set_predefined_input_for_runtime_call(ac); + Node* prev_mem = kit->set_predefined_input_for_runtime_call(ac, Compile::AliasIdxBot); ac->init_req(ArrayCopyNode::Src, src); ac->init_req(ArrayCopyNode::SrcPos, src_offset); diff --git a/src/hotspot/share/opto/graphKit.cpp b/src/hotspot/share/opto/graphKit.cpp --- a/src/hotspot/share/opto/graphKit.cpp +++ b/src/hotspot/share/opto/graphKit.cpp @@ -1812,12 +1812,13 @@ // A better answer would be to separate out card marks from other memory. // For now, return the input memory state, so that it can be reused // after the call, if this call has restricted memory effects. -Node* GraphKit::set_predefined_input_for_runtime_call(SafePointNode* call) { +Node* GraphKit::set_predefined_input_for_runtime_call(SafePointNode* call, int alias_idx) { // Set fixed predefined input arguments Node* memory = reset_memory(); + Node* m = (alias_idx == Compile::AliasIdxBot || !memory->is_MergeMem()) ? memory : memory->as_MergeMem()->memory_at(alias_idx); call->init_req( TypeFunc::Control, control() ); call->init_req( TypeFunc::I_O, top() ); // does no i/o - call->init_req( TypeFunc::Memory, memory ); // may gc ptrs + call->init_req( TypeFunc::Memory, m ); // may gc ptrs call->init_req( TypeFunc::FramePtr, frameptr() ); call->init_req( TypeFunc::ReturnAdr, top() ); return memory; @@ -2469,13 +2470,10 @@ Node* prev_mem = NULL; if (wide_in) { - prev_mem = set_predefined_input_for_runtime_call(call); + prev_mem = set_predefined_input_for_runtime_call(call, Compile::AliasIdxBot); } else { assert(!wide_out, "narrow in => narrow out"); - Node* narrow_mem = memory(adr_type); - prev_mem = reset_memory(); - map()->set_memory(narrow_mem); - set_predefined_input_for_runtime_call(call); + prev_mem = set_predefined_input_for_runtime_call(call, C->get_alias_index(adr_type)); } // Hook each parm in order. Stop looking at the first NULL. diff --git a/src/hotspot/share/opto/graphKit.hpp b/src/hotspot/share/opto/graphKit.hpp --- a/src/hotspot/share/opto/graphKit.hpp +++ b/src/hotspot/share/opto/graphKit.hpp @@ -701,7 +701,7 @@ void set_predefined_output_for_runtime_call(Node* call, Node* keep_mem, const TypePtr* hook_mem); - Node* set_predefined_input_for_runtime_call(SafePointNode* call); + Node* set_predefined_input_for_runtime_call(SafePointNode* call, int alias_idx); // Replace the call with the current state of the kit. Requires // that the call was generated with separate io_projs so that From rwestrel at redhat.com Fri Sep 21 13:21:47 2018 From: rwestrel at redhat.com (Roland Westrelin) Date: Fri, 21 Sep 2018 15:21:47 +0200 Subject: RFR: Fix ExtendedDTraceProbes with Shenandoah In-Reply-To: <14a599eb-b068-766d-386e-6abf2a7674d6@redhat.com> References: <322eda1d-dd3d-ccb7-db60-15b9586959cb@redhat.com> <14a599eb-b068-766d-386e-6abf2a7674d6@redhat.com> Message-ID: > The interesting question is: is this reproducible with upstream+G1 > somehow? Can you make a testcase against G1, and fix it upstream? It's usually quite hard to write a simple test case for a very specific reg alloc problem. I will submit it upstream anyway. > Also, might we have more 'hidden-ctrl-flow-bugs' lurking in our code? It's quite possible. Hidden ctrl flow constructs are quite error prone and fragile. Roland. From rkennke at redhat.com Fri Sep 21 13:33:08 2018 From: rkennke at redhat.com (Roman Kennke) Date: Fri, 21 Sep 2018 15:33:08 +0200 Subject: RFR: Fix ExtendedDTraceProbes with Shenandoah In-Reply-To: References: <322eda1d-dd3d-ccb7-db60-15b9586959cb@redhat.com> <14a599eb-b068-766d-386e-6abf2a7674d6@redhat.com> Message-ID: <71da99bd-ab07-0b56-f2ba-b1224021393c@redhat.com> > >> The interesting question is: is this reproducible with upstream+G1 >> somehow? Can you make a testcase against G1, and fix it upstream? > > It's usually quite hard to write a simple test case for a very specific > reg alloc problem. I will submit it upstream anyway. We have one that fails for us reliably, right? We can turn that into G1 testcase, I suppose? Zhengyu? >> Also, might we have more 'hidden-ctrl-flow-bugs' lurking in our code? > > It's quite possible. Hidden ctrl flow constructs are quite error prone > and fragile. Yeah, we should check at least our own stuff. Roman From zgu at redhat.com Fri Sep 21 13:35:11 2018 From: zgu at redhat.com (Zhengyu Gu) Date: Fri, 21 Sep 2018 09:35:11 -0400 Subject: RFR: Fix ExtendedDTraceProbes with Shenandoah In-Reply-To: References: <322eda1d-dd3d-ccb7-db60-15b9586959cb@redhat.com> <14a599eb-b068-766d-386e-6abf2a7674d6@redhat.com> Message-ID: <1f4e1c64-a44b-69e3-e379-7cd2c8b83dc7@redhat.com> On 09/21/2018 09:21 AM, Roland Westrelin wrote: > >> The interesting question is: is this reproducible with upstream+G1 >> somehow? Can you make a testcase against G1, and fix it upstream? > > It's usually quite hard to write a simple test case for a very specific > reg alloc problem. I will submit it upstream anyway. > >> Also, might we have more 'hidden-ctrl-flow-bugs' lurking in our code? > > It's quite possible. Hidden ctrl flow constructs are quite error prone > and fragile. > It looks like just a register away to get G1 to stumble, no idea how to construct a testcase. 120 rtcall SharedRuntime::dtrace_method_entry move [stack:16|L] [rbx|L] *<= G1 has base in rbx instead of rsi* move [dbl_stack:18|J] [rdirdi|J] 122 move [Base:[rbx|L] Index:[rdirdi|J] Disp: 0|L] [rax|L] 124 membar_acquire 126 move [lng:16|J] [rsirsi|J] 128 cmp [NE] [rdirdi|J] [rsirsi|J] 130 branch [NE] [label:0x00007fd7a404be68] 132 cmp [EQ] [rbx|L] [obj:0x0000000000000000|L] 134 branch [EQ] [label:0x00007fd7a404be68] 136 move [Base:[rbx|L] Disp: 8|^@] [rsi|M] 138 move [Base:[rsi|M] Disp: 395|B] [rsi|I] -Zhengyu > Roland. > From rkennke at redhat.com Fri Sep 21 13:38:56 2018 From: rkennke at redhat.com (Roman Kennke) Date: Fri, 21 Sep 2018 15:38:56 +0200 Subject: RFR: Fix ExtendedDTraceProbes with Shenandoah In-Reply-To: <1f4e1c64-a44b-69e3-e379-7cd2c8b83dc7@redhat.com> References: <322eda1d-dd3d-ccb7-db60-15b9586959cb@redhat.com> <14a599eb-b068-766d-386e-6abf2a7674d6@redhat.com> <1f4e1c64-a44b-69e3-e379-7cd2c8b83dc7@redhat.com> Message-ID: Am 21.09.2018 um 15:35 schrieb Zhengyu Gu: > > > On 09/21/2018 09:21 AM, Roland Westrelin wrote: >> >>> The interesting question is: is this reproducible with upstream+G1 >>> somehow? Can you make a testcase against G1, and fix it upstream? >> >> It's usually quite hard to write a simple test case for a very specific >> reg alloc problem. I will submit it upstream anyway. >> >>> Also, might we have more 'hidden-ctrl-flow-bugs' lurking in our code? >> >> It's quite possible. Hidden ctrl flow constructs are quite error prone >> and fragile. >> > It looks like just a register away to get G1 to stumble, no idea how to > construct a testcase. > > ?120 rtcall SharedRuntime::dtrace_method_entry > ???? move [stack:16|L] [rbx|L]??? *<= G1 has base in rbx instead of rsi* > ???? move [dbl_stack:18|J] [rdirdi|J] > ?122 move [Base:[rbx|L] Index:[rdirdi|J] Disp: 0|L] [rax|L] > ?124 membar_acquire > ?126 move [lng:16|J] [rsirsi|J] > ?128 cmp [NE] [rdirdi|J] [rsirsi|J] > ?130 branch [NE] [label:0x00007fd7a404be68] > ?132 cmp [EQ] [rbx|L] [obj:0x0000000000000000|L] > ?134 branch [EQ] [label:0x00007fd7a404be68] > ?136 move [Base:[rbx|L] Disp: 8|^@] [rsi|M] > ?138 move [Base:[rsi|M] Disp: 395|B] [rsi|I] > Hmm. Ok then. Roman From shade at redhat.com Fri Sep 21 14:12:00 2018 From: shade at redhat.com (Aleksey Shipilev) Date: Fri, 21 Sep 2018 16:12:00 +0200 Subject: RFR: Sort ShenandoahHeap methods/fields into logical groups Message-ID: <629f5c68-47b9-7cb6-982c-c6085e31a063@redhat.com> http://cr.openjdk.java.net/~shade/shenandoah/reshuffle-sh-heap/webrev.02/ This reshuffles declarations in shenandoahHeap.hpp from the current mess into logically separate subgroups. Testing: tier1_gc_shenandoah {fastdebug|release} Thanks, -Aleksey From zgu at redhat.com Fri Sep 21 14:19:57 2018 From: zgu at redhat.com (Zhengyu Gu) Date: Fri, 21 Sep 2018 10:19:57 -0400 Subject: RFR: Fix ExtendedDTraceProbes with Shenandoah In-Reply-To: References: <322eda1d-dd3d-ccb7-db60-15b9586959cb@redhat.com> Message-ID: <54d139f6-df8a-f55c-1704-10aab0a0a37a@redhat.com> Yep, it works! Thanks, -Zhengyu On 09/21/2018 09:09 AM, Roland Westrelin wrote: > >> Passed most tier2 with ExtendedDTraceProbes (some of tests timeout). Of >> course, still failed CriticalNativeArgs.java with C2/traversal. > > The C2 fix is below. Let me know if that works ok. > > Roland. > > diff --git a/src/hotspot/share/opto/arraycopynode.cpp b/src/hotspot/share/opto/arraycopynode.cpp > --- a/src/hotspot/share/opto/arraycopynode.cpp > +++ b/src/hotspot/share/opto/arraycopynode.cpp > @@ -60,7 +60,7 @@ > Node* src_length, Node* dest_length) { > > ArrayCopyNode* ac = new ArrayCopyNode(kit->C, alloc_tightly_coupled, has_negative_length_guard); > - Node* prev_mem = kit->set_predefined_input_for_runtime_call(ac); > + Node* prev_mem = kit->set_predefined_input_for_runtime_call(ac, Compile::AliasIdxBot); > > ac->init_req(ArrayCopyNode::Src, src); > ac->init_req(ArrayCopyNode::SrcPos, src_offset); > diff --git a/src/hotspot/share/opto/graphKit.cpp b/src/hotspot/share/opto/graphKit.cpp > --- a/src/hotspot/share/opto/graphKit.cpp > +++ b/src/hotspot/share/opto/graphKit.cpp > @@ -1812,12 +1812,13 @@ > // A better answer would be to separate out card marks from other memory. > // For now, return the input memory state, so that it can be reused > // after the call, if this call has restricted memory effects. > -Node* GraphKit::set_predefined_input_for_runtime_call(SafePointNode* call) { > +Node* GraphKit::set_predefined_input_for_runtime_call(SafePointNode* call, int alias_idx) { > // Set fixed predefined input arguments > Node* memory = reset_memory(); > + Node* m = (alias_idx == Compile::AliasIdxBot || !memory->is_MergeMem()) ? memory : memory->as_MergeMem()->memory_at(alias_idx); > call->init_req( TypeFunc::Control, control() ); > call->init_req( TypeFunc::I_O, top() ); // does no i/o > - call->init_req( TypeFunc::Memory, memory ); // may gc ptrs > + call->init_req( TypeFunc::Memory, m ); // may gc ptrs > call->init_req( TypeFunc::FramePtr, frameptr() ); > call->init_req( TypeFunc::ReturnAdr, top() ); > return memory; > @@ -2469,13 +2470,10 @@ > > Node* prev_mem = NULL; > if (wide_in) { > - prev_mem = set_predefined_input_for_runtime_call(call); > + prev_mem = set_predefined_input_for_runtime_call(call, Compile::AliasIdxBot); > } else { > assert(!wide_out, "narrow in => narrow out"); > - Node* narrow_mem = memory(adr_type); > - prev_mem = reset_memory(); > - map()->set_memory(narrow_mem); > - set_predefined_input_for_runtime_call(call); > + prev_mem = set_predefined_input_for_runtime_call(call, C->get_alias_index(adr_type)); > } > > // Hook each parm in order. Stop looking at the first NULL. > diff --git a/src/hotspot/share/opto/graphKit.hpp b/src/hotspot/share/opto/graphKit.hpp > --- a/src/hotspot/share/opto/graphKit.hpp > +++ b/src/hotspot/share/opto/graphKit.hpp > @@ -701,7 +701,7 @@ > void set_predefined_output_for_runtime_call(Node* call, > Node* keep_mem, > const TypePtr* hook_mem); > - Node* set_predefined_input_for_runtime_call(SafePointNode* call); > + Node* set_predefined_input_for_runtime_call(SafePointNode* call, int alias_idx); > > // Replace the call with the current state of the kit. Requires > // that the call was generated with separate io_projs so that > From shade at redhat.com Fri Sep 21 14:53:46 2018 From: shade at redhat.com (Aleksey Shipilev) Date: Fri, 21 Sep 2018 16:53:46 +0200 Subject: RFR: Cease JDK 10 support for Shenandoah In-Reply-To: <49c529c8-8a70-0721-762a-a56ec2f06052@redhat.com> References: <49c529c8-8a70-0721-762a-a56ec2f06052@redhat.com> Message-ID: <5cecc206-e076-ca57-7705-a53561b634ec@redhat.com> Seems only a few people need it. I would like to go forward with ceasing support. This is the last call for comments about the need to keep Shenandoah JDK 10 backport supported. -Aleksey On 09/19/2018 10:35 AM, Aleksey Shipilev wrote: > Gauging public interest here as well: > https://twitter.com/shipilev/status/1042330798798585856 > > -Aleksey > > On 09/19/2018 10:27 AM, Aleksey Shipilev wrote: >> Upstream had ceased to publish any fixes to 10u, and 11 is going to be released next week. sh/jdk11 >> is stable enough for adopters to use. In fact, many adopters who prefer the up-to-date JDKs already >> do use sh/jdk11. We also have quite substantial cleanup/backports coming, especially in compiler >> area. All of the above makes sh/jdk10 support dubious, and I propose we cease it. >> >> Like with sh/jdk9 before, let us print the warning message on startup: >> >> diff -r 82f1eec5affa src/hotspot/share/gc/shenandoah/shenandoahArguments.cpp >> --- a/src/hotspot/share/gc/shenandoah/shenandoahArguments.cpp Mon Sep 10 17:56:38 2018 +0200 >> +++ b/src/hotspot/share/gc/shenandoah/shenandoahArguments.cpp Wed Sep 19 10:22:47 2018 +0200 >> @@ -29,10 +29,16 @@ >> #include "gc/shenandoah/shenandoahCollectorPolicy.hpp" >> #include "gc/shenandoah/shenandoahHeap.hpp" >> #include "utilities/defaultStream.hpp" >> >> void ShenandoahArguments::initialize_flags() { >> + log_warning(gc)("**************************************************************************"); >> + log_warning(gc)("* Shenandoah GC support for this JDK release had ceased. *"); >> + log_warning(gc)("* JDK 10 is a short-term release, and it had reached end of life. *"); >> + log_warning(gc)("* This JDK would not get security, functionality or performance fixes. *"); >> + log_warning(gc)("* Use this build at your own risk, and consider migrating to next JDK. *"); >> + log_warning(gc)("**************************************************************************"); >> >> #if !(defined AARCH64 || defined AMD64 || defined IA32) >> vm_exit_during_initialization("Shenandoah GC is not supported on this platform."); >> #endif >> >> Testing: tier1_gc_shenandoah >> >> Thanks, >> -Aleksey >> > > From shade at redhat.com Fri Sep 21 14:57:22 2018 From: shade at redhat.com (Aleksey Shipilev) Date: Fri, 21 Sep 2018 16:57:22 +0200 Subject: RFR: Unclutter ShenandoahHeap, take 3 Message-ID: http://cr.openjdk.java.net/~shade/shenandoah/unclutter-sh-heap-3/webrev.01/ This is hopefully final bunch of touchups to ShenandoahHeap for a while. Patch train includes: *) Remove unused ShenandoahEvacuateRootsClosure *) Rename ShHeap::shenandoahPolicy -> ShHeap::shenandoah_policy *) Handle ShHeap::time_since_last_millis for RMI users *) Inline ShHeap::monitoring_support into header Testing: tier1_gc_shenandoah {fastdebug|release}, tier3_gc_shenandoah (running) Thanks, -Aleksey From rkennke at redhat.com Fri Sep 21 14:59:55 2018 From: rkennke at redhat.com (Roman Kennke) Date: Fri, 21 Sep 2018 16:59:55 +0200 Subject: RFR: Cease JDK 10 support for Shenandoah In-Reply-To: <5cecc206-e076-ca57-7705-a53561b634ec@redhat.com> References: <49c529c8-8a70-0721-762a-a56ec2f06052@redhat.com> <5cecc206-e076-ca57-7705-a53561b634ec@redhat.com> Message-ID: <577543e7-19af-1a30-0568-c443b6f5b4b3@redhat.com> It's ok by me. Roman > Seems only a few people need it. I would like to go forward with ceasing support. > > This is the last call for comments about the need to keep Shenandoah JDK 10 backport supported. > > -Aleksey > > On 09/19/2018 10:35 AM, Aleksey Shipilev wrote: >> Gauging public interest here as well: >> https://twitter.com/shipilev/status/1042330798798585856 >> >> -Aleksey >> >> On 09/19/2018 10:27 AM, Aleksey Shipilev wrote: >>> Upstream had ceased to publish any fixes to 10u, and 11 is going to be released next week. sh/jdk11 >>> is stable enough for adopters to use. In fact, many adopters who prefer the up-to-date JDKs already >>> do use sh/jdk11. We also have quite substantial cleanup/backports coming, especially in compiler >>> area. All of the above makes sh/jdk10 support dubious, and I propose we cease it. >>> >>> Like with sh/jdk9 before, let us print the warning message on startup: >>> >>> diff -r 82f1eec5affa src/hotspot/share/gc/shenandoah/shenandoahArguments.cpp >>> --- a/src/hotspot/share/gc/shenandoah/shenandoahArguments.cpp Mon Sep 10 17:56:38 2018 +0200 >>> +++ b/src/hotspot/share/gc/shenandoah/shenandoahArguments.cpp Wed Sep 19 10:22:47 2018 +0200 >>> @@ -29,10 +29,16 @@ >>> #include "gc/shenandoah/shenandoahCollectorPolicy.hpp" >>> #include "gc/shenandoah/shenandoahHeap.hpp" >>> #include "utilities/defaultStream.hpp" >>> >>> void ShenandoahArguments::initialize_flags() { >>> + log_warning(gc)("**************************************************************************"); >>> + log_warning(gc)("* Shenandoah GC support for this JDK release had ceased. *"); >>> + log_warning(gc)("* JDK 10 is a short-term release, and it had reached end of life. *"); >>> + log_warning(gc)("* This JDK would not get security, functionality or performance fixes. *"); >>> + log_warning(gc)("* Use this build at your own risk, and consider migrating to next JDK. *"); >>> + log_warning(gc)("**************************************************************************"); >>> >>> #if !(defined AARCH64 || defined AMD64 || defined IA32) >>> vm_exit_during_initialization("Shenandoah GC is not supported on this platform."); >>> #endif >>> >>> Testing: tier1_gc_shenandoah >>> >>> Thanks, >>> -Aleksey >>> >> >> > > From rkennke at redhat.com Fri Sep 21 15:08:48 2018 From: rkennke at redhat.com (Roman Kennke) Date: Fri, 21 Sep 2018 17:08:48 +0200 Subject: RFR: Sort ShenandoahHeap methods/fields into logical groups In-Reply-To: <629f5c68-47b9-7cb6-982c-c6085e31a063@redhat.com> References: <629f5c68-47b9-7cb6-982c-c6085e31a063@redhat.com> Message-ID: <2f4af7af-5deb-cd9b-cf06-b925140bd8b2@redhat.com> It's good. It used to be grouped by 'overidden/implemented methods first' then our own stuff, but that's probably gone by now, and not that useful anyway. Push it! Roman > http://cr.openjdk.java.net/~shade/shenandoah/reshuffle-sh-heap/webrev.02/ > > This reshuffles declarations in shenandoahHeap.hpp from the current mess into logically separate > subgroups. > > Testing: tier1_gc_shenandoah {fastdebug|release} > > Thanks, > -Aleksey > From rkennke at redhat.com Fri Sep 21 15:09:46 2018 From: rkennke at redhat.com (Roman Kennke) Date: Fri, 21 Sep 2018 17:09:46 +0200 Subject: RFR: Unclutter ShenandoahHeap, take 3 In-Reply-To: References: Message-ID: <7de31462-d0eb-12d2-6373-569e9f18519c@redhat.com> > http://cr.openjdk.java.net/~shade/shenandoah/unclutter-sh-heap-3/webrev.01/ > > This is hopefully final bunch of touchups to ShenandoahHeap for a while. Patch train includes: > > *) Remove unused ShenandoahEvacuateRootsClosure > *) Rename ShHeap::shenandoahPolicy -> ShHeap::shenandoah_policy > *) Handle ShHeap::time_since_last_millis for RMI users > *) Inline ShHeap::monitoring_support into header > > Testing: tier1_gc_shenandoah {fastdebug|release}, tier3_gc_shenandoah (running) > > Thanks, > -Aleksey > Ok. Thanks! From shade at redhat.com Fri Sep 21 15:53:46 2018 From: shade at redhat.com (shade at redhat.com) Date: Fri, 21 Sep 2018 15:53:46 +0000 Subject: hg: shenandoah/jdk: 5 new changesets Message-ID: <201809211553.w8LFrlKQ028417@aojmv0008.oracle.com> Changeset: 03f46492c64f Author: shade Date: 2018-09-21 16:26 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/03f46492c64f Remove unused ShenandoahEvacuateRootsClosure ! src/hotspot/share/gc/shenandoah/shenandoahHeap.cpp Changeset: fb35d983c438 Author: shade Date: 2018-09-21 16:26 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/fb35d983c438 Rename ShHeap::shenandoahPolicy -> ShHeap::shenandoah_policy ! src/hotspot/share/gc/shenandoah/shenandoahControlThread.cpp ! src/hotspot/share/gc/shenandoah/shenandoahHeap.cpp ! src/hotspot/share/gc/shenandoah/shenandoahHeap.hpp ! src/hotspot/share/gc/shenandoah/shenandoahHeuristics.cpp ! src/hotspot/share/gc/shenandoah/shenandoahPhaseTimings.cpp ! src/hotspot/share/gc/shenandoah/shenandoahUtils.cpp Changeset: f7023539abaf Author: shade Date: 2018-09-21 16:55 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/f7023539abaf Handle ShHeap::time_since_last_millis for RMI users ! src/hotspot/share/gc/shenandoah/heuristics/shenandoahAdaptiveHeuristics.cpp ! src/hotspot/share/gc/shenandoah/heuristics/shenandoahTraversalHeuristics.cpp ! src/hotspot/share/gc/shenandoah/shenandoahHeap.cpp ! src/hotspot/share/gc/shenandoah/shenandoahHeuristics.cpp ! src/hotspot/share/gc/shenandoah/shenandoahHeuristics.hpp Changeset: 24314eeb87f2 Author: shade Date: 2018-09-21 16:55 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/24314eeb87f2 Inline ShHeap::monitoring_support into header ! src/hotspot/share/gc/shenandoah/shenandoahHeap.cpp ! src/hotspot/share/gc/shenandoah/shenandoahHeap.hpp Changeset: 91d04b27f4e4 Author: shade Date: 2018-09-21 16:56 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/91d04b27f4e4 Sort ShenandoahHeap methods/fields into logical groups ! src/hotspot/share/gc/shenandoah/shenandoahHeap.cpp ! src/hotspot/share/gc/shenandoah/shenandoahHeap.hpp From zgu at redhat.com Fri Sep 21 16:06:44 2018 From: zgu at redhat.com (Zhengyu Gu) Date: Fri, 21 Sep 2018 12:06:44 -0400 Subject: RFR: Cleanup header files and forward declarations Message-ID: <38e4e851-eec9-59fb-25f5-eb1b1ec41392@redhat.com> A round of cleanup: header files (and orders) and forward declarations, follows hotspot convention that import header file as needed. Webrev: http://cr.openjdk.java.net/~zgu/shenandoah/cleanup_headers/webrev.00/ Test: PHC and non-PHC builds tier2_gc_shenandoah (fastdebug and release) Thanks, -Zhengyu From shade at redhat.com Fri Sep 21 16:14:14 2018 From: shade at redhat.com (Aleksey Shipilev) Date: Fri, 21 Sep 2018 18:14:14 +0200 Subject: RFR: Cleanup header files and forward declarations In-Reply-To: <38e4e851-eec9-59fb-25f5-eb1b1ec41392@redhat.com> References: <38e4e851-eec9-59fb-25f5-eb1b1ec41392@redhat.com> Message-ID: <38fb11f6-f9a2-de08-3ec9-675023898fed@redhat.com> On 09/21/2018 06:06 PM, Zhengyu Gu wrote: > A round of cleanup: header files (and orders) and forward declarations, follows hotspot convention > that import header file as needed. > > Webrev: http://cr.openjdk.java.net/~zgu/shenandoah/cleanup_headers/webrev.00/ Ohhh, nice! Looks good to me. -Aleksey From zgu at redhat.com Fri Sep 21 18:00:45 2018 From: zgu at redhat.com (Zhengyu Gu) Date: Fri, 21 Sep 2018 14:00:45 -0400 Subject: RFR: VSC++ complains about multiple assignment operators Message-ID: VSC++ complains about multiple assignment operators, so silence it. c:\workspace\sh-jdk\src\hotspot\share\gc/shenandoah/shenandoahTaskqueue.hpp(176) : error C2220: warning treated as error - no 'object' file generated c:\workspace\sh-jdk\src\hotspot\share\gc/shenandoah/shenandoahTaskqueue.hpp(176) : warning C4522: 'ObjArrayChunkedTask' : multiple assignment operators specified Webrev: http://cr.openjdk.java.net/~zgu/shenandoah/multi-assignment/webrev.00/ Test: Build on Windows. Thanks, -Zhengyu From zgu at redhat.com Fri Sep 21 18:19:27 2018 From: zgu at redhat.com (Zhengyu Gu) Date: Fri, 21 Sep 2018 14:19:27 -0400 Subject: RFR: VSC++ complains about multiple assignment operators In-Reply-To: References: Message-ID: Should be wrapped for VSC++ only: Webrev: http://cr.openjdk.java.net/~zgu/shenandoah/multi-assignment/webrev.01/ Thanks, -Zhengyu On 09/21/2018 02:00 PM, Zhengyu Gu wrote: > VSC++ complains about multiple assignment operators, so silence it. > > c:\workspace\sh-jdk\src\hotspot\share\gc/shenandoah/shenandoahTaskqueue.hpp(176) > : error C2220: warning treated as error > ?- no 'object' file generated > c:\workspace\sh-jdk\src\hotspot\share\gc/shenandoah/shenandoahTaskqueue.hpp(176) > : warning C4522: 'ObjArrayChunkedTask' > : multiple assignment operators specified > > Webrev: > http://cr.openjdk.java.net/~zgu/shenandoah/multi-assignment/webrev.00/ > > Test: > > ? Build on Windows. > > Thanks, > > -Zhengyu From shade at redhat.com Fri Sep 21 18:25:18 2018 From: shade at redhat.com (Aleksey Shipilev) Date: Fri, 21 Sep 2018 20:25:18 +0200 Subject: RFR: VSC++ complains about multiple assignment operators In-Reply-To: References: Message-ID: <0865972d-d463-538c-c3d0-50fe601c17af@redhat.com> On 09/21/2018 08:19 PM, Zhengyu Gu wrote: > Should be wrapped for VSC++ only: > > Webrev: http://cr.openjdk.java.net/~zgu/shenandoah/multi-assignment/webrev.01/ Let's say what taskqueue.hpp says: #ifdef _MSC_VER // warning C4522: multiple assignment operators specified #pragma warning(disable:4522) #endif Otherwise good! -Aleksey From zgu at redhat.com Fri Sep 21 18:33:19 2018 From: zgu at redhat.com (zgu at redhat.com) Date: Fri, 21 Sep 2018 18:33:19 +0000 Subject: hg: shenandoah/jdk: Silence VSC++ about multiple assignment operators Message-ID: <201809211833.w8LIXJvu020428@aojmv0008.oracle.com> Changeset: 5c7f1f54e9ab Author: zgu Date: 2018-09-21 14:33 -0400 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/5c7f1f54e9ab Silence VSC++ about multiple assignment operators ! src/hotspot/share/gc/shenandoah/shenandoahTaskqueue.hpp From zgu at redhat.com Fri Sep 21 20:00:28 2018 From: zgu at redhat.com (zgu at redhat.com) Date: Fri, 21 Sep 2018 20:00:28 +0000 Subject: hg: shenandoah/jdk: Cleanup header files and forward declarations Message-ID: <201809212000.w8LK0SMB014623@aojmv0008.oracle.com> Changeset: eae32f2a17f3 Author: zgu Date: 2018-09-21 16:00 -0400 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/eae32f2a17f3 Cleanup header files and forward declarations ! src/hotspot/share/gc/shenandoah/c2/shenandoahBarrierSetC2.hpp ! src/hotspot/share/gc/shenandoah/c2/shenandoahSupport.cpp ! src/hotspot/share/gc/shenandoah/heuristics/shenandoahAdaptiveHeuristics.cpp ! src/hotspot/share/gc/shenandoah/heuristics/shenandoahAdaptiveHeuristics.hpp ! src/hotspot/share/gc/shenandoah/heuristics/shenandoahAggressiveHeuristics.cpp ! src/hotspot/share/gc/shenandoah/heuristics/shenandoahCompactHeuristics.cpp ! src/hotspot/share/gc/shenandoah/heuristics/shenandoahPassiveHeuristics.cpp ! src/hotspot/share/gc/shenandoah/heuristics/shenandoahPassiveHeuristics.hpp ! src/hotspot/share/gc/shenandoah/heuristics/shenandoahStaticHeuristics.cpp ! src/hotspot/share/gc/shenandoah/heuristics/shenandoahTraversalHeuristics.cpp ! src/hotspot/share/gc/shenandoah/shenandoahAllocRequest.hpp ! src/hotspot/share/gc/shenandoah/shenandoahAllocTracker.hpp ! src/hotspot/share/gc/shenandoah/shenandoahAsserts.hpp ! src/hotspot/share/gc/shenandoah/shenandoahCodeRoots.hpp ! src/hotspot/share/gc/shenandoah/shenandoahCollectionSet.cpp ! src/hotspot/share/gc/shenandoah/shenandoahCollectionSet.hpp ! src/hotspot/share/gc/shenandoah/shenandoahCollectionSet.inline.hpp ! src/hotspot/share/gc/shenandoah/shenandoahCollectorPolicy.cpp ! src/hotspot/share/gc/shenandoah/shenandoahCollectorPolicy.hpp ! src/hotspot/share/gc/shenandoah/shenandoahConcurrentMark.cpp ! src/hotspot/share/gc/shenandoah/shenandoahConcurrentMark.hpp ! src/hotspot/share/gc/shenandoah/shenandoahConcurrentMark.inline.hpp ! src/hotspot/share/gc/shenandoah/shenandoahControlThread.cpp ! src/hotspot/share/gc/shenandoah/shenandoahControlThread.hpp ! src/hotspot/share/gc/shenandoah/shenandoahFreeSet.cpp ! src/hotspot/share/gc/shenandoah/shenandoahHeap.cpp ! src/hotspot/share/gc/shenandoah/shenandoahHeap.hpp ! src/hotspot/share/gc/shenandoah/shenandoahHeap.inline.hpp ! src/hotspot/share/gc/shenandoah/shenandoahHeapLock.hpp ! src/hotspot/share/gc/shenandoah/shenandoahHeapRegion.cpp ! src/hotspot/share/gc/shenandoah/shenandoahHeapRegion.hpp ! src/hotspot/share/gc/shenandoah/shenandoahHeapRegionCounters.cpp ! src/hotspot/share/gc/shenandoah/shenandoahHeapRegionSet.hpp ! src/hotspot/share/gc/shenandoah/shenandoahHeuristics.cpp ! src/hotspot/share/gc/shenandoah/shenandoahMarkCompact.cpp ! src/hotspot/share/gc/shenandoah/shenandoahMarkCompact.hpp ! src/hotspot/share/gc/shenandoah/shenandoahOopClosures.hpp ! src/hotspot/share/gc/shenandoah/shenandoahPacer.cpp ! src/hotspot/share/gc/shenandoah/shenandoahPacer.inline.hpp ! src/hotspot/share/gc/shenandoah/shenandoahPrinter.cpp ! src/hotspot/share/gc/shenandoah/shenandoahRootProcessor.cpp ! src/hotspot/share/gc/shenandoah/shenandoahRootProcessor.hpp ! src/hotspot/share/gc/shenandoah/shenandoahSATBMarkQueueSet.hpp ! src/hotspot/share/gc/shenandoah/shenandoahSharedVariables.hpp ! src/hotspot/share/gc/shenandoah/shenandoahStrDedupQueue.cpp ! src/hotspot/share/gc/shenandoah/shenandoahStrDedupQueue.hpp ! src/hotspot/share/gc/shenandoah/shenandoahStrDedupQueue.inline.hpp ! src/hotspot/share/gc/shenandoah/shenandoahStringDedup.cpp ! src/hotspot/share/gc/shenandoah/shenandoahStringDedup.hpp ! src/hotspot/share/gc/shenandoah/shenandoahThreadLocalData.hpp ! src/hotspot/share/gc/shenandoah/shenandoahTraversalGC.cpp ! src/hotspot/share/gc/shenandoah/shenandoahTraversalGC.hpp ! src/hotspot/share/gc/shenandoah/shenandoahTraversalGC.inline.hpp ! src/hotspot/share/gc/shenandoah/shenandoahVerifier.cpp ! src/hotspot/share/gc/shenandoah/shenandoahVerifier.hpp ! src/hotspot/share/gc/shenandoah/shenandoahWorkGroup.cpp ! src/hotspot/share/gc/shenandoah/shenandoahWorkGroup.hpp ! src/hotspot/share/gc/shenandoah/vm_operations_shenandoah.cpp ! src/hotspot/share/gc/shenandoah/vm_operations_shenandoah.hpp From rwestrel at redhat.com Mon Sep 24 12:05:58 2018 From: rwestrel at redhat.com (Roland Westrelin) Date: Mon, 24 Sep 2018 14:05:58 +0200 Subject: RFR: Streamline write-barrier-prologue (C2 part) In-Reply-To: <2e320eeb-6a9f-98ba-87a5-7f1808de9504@redhat.com> References: <2f9309e6-0b6d-02dc-344c-54f2f00f976d@redhat.com> <2e320eeb-6a9f-98ba-87a5-7f1808de9504@redhat.com> Message-ID: Attached patch restores implicit null check handling. Roland. -------------- next part -------------- A non-text attachment was scrubbed... Name: null-check-fix.patch Type: text/x-patch Size: 10329 bytes Desc: not available URL: From rkennke at redhat.com Mon Sep 24 13:26:25 2018 From: rkennke at redhat.com (Roman Kennke) Date: Mon, 24 Sep 2018 15:26:25 +0200 Subject: RFR: Streamline write-barrier-prologue (C2 part) In-Reply-To: References: <2f9309e6-0b6d-02dc-344c-54f2f00f976d@redhat.com> <2e320eeb-6a9f-98ba-87a5-7f1808de9504@redhat.com> Message-ID: <6ad1c7bb-5fca-7013-53dc-62e6b47ab31c@redhat.com> Thank you! I verified that this works correctly. I'll run some benchmarks later. From earlier experiments, I strongly suspect that it will perform equal or better compared to what we currently have. Assuming benchmark results come out good, is the following patch ok to push? It's my patch plus your null-checking patch: http://cr.openjdk.java.net/~rkennke/streamline-wb-prologue/webrev.02/ Roman From rwestrel at redhat.com Mon Sep 24 13:40:52 2018 From: rwestrel at redhat.com (Roland Westrelin) Date: Mon, 24 Sep 2018 15:40:52 +0200 Subject: RFR: Streamline write-barrier-prologue (C2 part) In-Reply-To: <6ad1c7bb-5fca-7013-53dc-62e6b47ab31c@redhat.com> References: <2f9309e6-0b6d-02dc-344c-54f2f00f976d@redhat.com> <2e320eeb-6a9f-98ba-87a5-7f1808de9504@redhat.com> <6ad1c7bb-5fca-7013-53dc-62e6b47ab31c@redhat.com> Message-ID: > http://cr.openjdk.java.net/~rkennke/streamline-wb-prologue/webrev.02/ That looks good to me. Roland. From shade at redhat.com Tue Sep 25 08:54:29 2018 From: shade at redhat.com (shade at redhat.com) Date: Tue, 25 Sep 2018 08:54:29 +0000 Subject: hg: shenandoah/jdk10: Cease JDK 10 support for Shenandoah Message-ID: <201809250854.w8P8sT2B021995@aojmv0008.oracle.com> Changeset: 88693d028e29 Author: shade Date: 2018-09-19 10:16 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk10/rev/88693d028e29 Cease JDK 10 support for Shenandoah ! src/hotspot/share/gc/shenandoah/shenandoahArguments.cpp From shade at redhat.com Tue Sep 25 13:23:10 2018 From: shade at redhat.com (Aleksey Shipilev) Date: Tue, 25 Sep 2018 15:23:10 +0200 Subject: RFR [11]: 2018-09-25, Bulk backports to sh/jdk11 Message-ID: http://cr.openjdk.java.net/~shade/shenandoah/backports/jdk11-20180925/webrev.01/ This backports recent work to sh/jdk11: [backport] AArch64: Don't generate CAS barrier when -XX:-ShenandoahCASBarrier [backport] Disable ShHeapUncommit on too-large large-pages [backport] Fix call to is_g1_marking_load() with is_shenandoah_state_load() in ShenandoahSupport [backport] Purge some G1-related cruft in C2 [backport] Move shenandoah_eliminate_wb_pre to ShenandoahBarrierSetC2 [backport] Remove racy assert in ShenandoahResetNextMarkBitMapTraversalTask [backport] In update-refs, update all code-roots when in degen-gc [backport] Single marking bitmap [backport] Refactor bitmap cleaning [backport] Bind WeakProcessor properly: simpler closures, asserts, parallelism [backport] Cleanup unused bitmap methods [backport] Cleanup code in C2 related to G1/Sh pre-barrier handling [backport] Fix and enable parallel safepoint workers [backport] Remove safepoint-cleanup piggybacking code [backport] Improve liveness count during marking [backport] Increase inline limits only for release builds [backport] StringDedupMode enum for closures/method templates [backport] Fix indenting in ShMarkCompact::do_it [backport] Coarsen Full GC use of heap lock [backport] Micro-optimize ShHeap::get_region by moving the most likely branch first [backport] Print "process weakrefs" to disambiguate vs CM-with-UR [backport] Cleanup buffered queue handling [backport] Clean up dead code [backport] Remove Parallel Cleanup counters [backport] Make sure bitmap is marked incomplete before bitmap resets [backport] Clean up declarations and uses of marked_object_iterate [backport] Turn TestReferenceCAS into a standalone/no-testng test [backport] Homogenize unimplemented stubs handling [backport] Remove unused alloc-seq recording for start/end of GC cycle [backport] Move ShenandoahAllocType and ShenandoahAllocRequest to separate file [backport] Inline ShHeap::prepare_concurrent_evacuation [backport] Inline ShHeap::fixup_roots [backport] Remove ShHeap::region_in_collection_set in favor of SHR::in_cset [backport] Inline ShHeap::do_marked_object_complete [backport] Rename concurrentMark -> concurrent_mark [backport] Remove ShHeap::_heap_expansion_count [backport] Remove useless ShHeap::heap_region_iterate [backport] Inline trivial ShHeap methods right in header [backport] Code root iterators should not be instantiated in worker threads [backport] Record location when asserting the code root correctness [backport] Remove unused ShenandoahEvacuateRootsClosure [backport] Rename ShHeap::shenandoahPolicy -> ShHeap::shenandoah_policy [backport] Handle ShHeap::time_since_last_millis for RMI users [backport] Inline ShHeap::monitoring_support into header [backport] Sort ShenandoahHeap methods/fields into logical groups [backport] Silence VSC++ about multiple assignment operators [backport] Cleanup header files and forward declarations Testing: tier3_gc_shenandoah {fastdebug|release} Thanks, -Aleksey From shade at redhat.com Tue Sep 25 13:23:17 2018 From: shade at redhat.com (Aleksey Shipilev) Date: Tue, 25 Sep 2018 15:23:17 +0200 Subject: RFR [8]: 2018-09-25, Bulk backports to sh/jdk8u Message-ID: <25510a5f-c90d-59db-d9d4-fdf3cef19146@redhat.com> http://cr.openjdk.java.net/~shade/shenandoah/backports/jdk8u-20180925/webrev.01/ This backports recent work to sh/jdk8u: [backport] Disable ShHeapUncommit on too-large large-pages [backport] Fix call to is_g1_marking_load() with is_shenandoah_state_load() in ShenandoahSupport [backport] Purge some G1-related cruft in C2 [backport] In update-refs, update all code-roots when in degen-gc [backport] Single marking bitmap [backport] Make sure bitmap is marked incomplete before bitmap resets [backport] Refactor bitmap cleaning [backport] Cleanup unused bitmap methods [backport] Improve liveness count during marking [backport] StringDedupMode enum for closures/method templates [backport] Fix indenting in ShMarkCompact::do_it [backport] Coarsen Full GC use of heap lock [backport] Micro-optimize ShHeap::get_region by moving the most likely branch first [backport] Print "process weakrefs" to disambiguate vs CM-with-UR [backport] Cleanup buffered queue handling [backport] Clean up dead code [backport] Remove Parallel Cleanup counters [backport] Clean up declarations and uses of marked_object_iterate [backport] Turn TestReferenceCAS into a standalone/no-testng test [backport] Homogenize unimplemented stubs handling [backport] Move ShenandoahAllocType and ShenandoahAllocRequest to separate file [backport] Inline ShHeap::prepare_concurrent_evacuation [backport] Remove ShHeap::region_in_collection_set in favor of SHR::in_cset [backport] Inline ShHeap::do_marked_object_complete [backport] Rename concurrentMark -> concurrent_mark [backport] Remove ShHeap::_heap_expansion_count [backport] Remove useless ShHeap::heap_region_iterate [backport] Inline trivial ShHeap methods right in header [backport] Code root iterators should not be instantiated in worker threads [backport] Record location when asserting the code root correctness [backport] Remove unused ShenandoahEvacuateRootsClosure [backport] Rename ShHeap::shenandoahPolicy -> ShHeap::shenandoah_policy [backport] Handle ShHeap::time_since_last_millis for RMI users [backport] Inline ShHeap::monitoring_support into header [backport] Sort ShenandoahHeap methods/fields into logical groups [backport] Silence VSC++ about multiple assignment operators [backport] Cleanup header files and forward declarations Testing: hotspot_tier3_gc_shenandoah {fastdebug|release} Thanks, -Aleksey From rkennke at redhat.com Tue Sep 25 13:41:00 2018 From: rkennke at redhat.com (Roman Kennke) Date: Tue, 25 Sep 2018 15:41:00 +0200 Subject: RFR [11]: 2018-09-25, Bulk backports to sh/jdk11 In-Reply-To: References: Message-ID: <94b9f9ba-07c1-a885-5c21-0e17a6102d48@redhat.com> Excellent! Changes look good! Thanks, Roman > http://cr.openjdk.java.net/~shade/shenandoah/backports/jdk11-20180925/webrev.01/ > > This backports recent work to sh/jdk11: > > [backport] AArch64: Don't generate CAS barrier when -XX:-ShenandoahCASBarrier > [backport] Disable ShHeapUncommit on too-large large-pages > [backport] Fix call to is_g1_marking_load() with is_shenandoah_state_load() in ShenandoahSupport > [backport] Purge some G1-related cruft in C2 > [backport] Move shenandoah_eliminate_wb_pre to ShenandoahBarrierSetC2 > [backport] Remove racy assert in ShenandoahResetNextMarkBitMapTraversalTask > [backport] In update-refs, update all code-roots when in degen-gc > [backport] Single marking bitmap > [backport] Refactor bitmap cleaning > [backport] Bind WeakProcessor properly: simpler closures, asserts, parallelism > [backport] Cleanup unused bitmap methods > [backport] Cleanup code in C2 related to G1/Sh pre-barrier handling > [backport] Fix and enable parallel safepoint workers > [backport] Remove safepoint-cleanup piggybacking code > [backport] Improve liveness count during marking > [backport] Increase inline limits only for release builds > [backport] StringDedupMode enum for closures/method templates > [backport] Fix indenting in ShMarkCompact::do_it > [backport] Coarsen Full GC use of heap lock > [backport] Micro-optimize ShHeap::get_region by moving the most likely branch first > [backport] Print "process weakrefs" to disambiguate vs CM-with-UR > [backport] Cleanup buffered queue handling > [backport] Clean up dead code > [backport] Remove Parallel Cleanup counters > [backport] Make sure bitmap is marked incomplete before bitmap resets > [backport] Clean up declarations and uses of marked_object_iterate > [backport] Turn TestReferenceCAS into a standalone/no-testng test > [backport] Homogenize unimplemented stubs handling > [backport] Remove unused alloc-seq recording for start/end of GC cycle > [backport] Move ShenandoahAllocType and ShenandoahAllocRequest to separate file > [backport] Inline ShHeap::prepare_concurrent_evacuation > [backport] Inline ShHeap::fixup_roots > [backport] Remove ShHeap::region_in_collection_set in favor of SHR::in_cset > [backport] Inline ShHeap::do_marked_object_complete > [backport] Rename concurrentMark -> concurrent_mark > [backport] Remove ShHeap::_heap_expansion_count > [backport] Remove useless ShHeap::heap_region_iterate > [backport] Inline trivial ShHeap methods right in header > [backport] Code root iterators should not be instantiated in worker threads > [backport] Record location when asserting the code root correctness > [backport] Remove unused ShenandoahEvacuateRootsClosure > [backport] Rename ShHeap::shenandoahPolicy -> ShHeap::shenandoah_policy > [backport] Handle ShHeap::time_since_last_millis for RMI users > [backport] Inline ShHeap::monitoring_support into header > [backport] Sort ShenandoahHeap methods/fields into logical groups > [backport] Silence VSC++ about multiple assignment operators > [backport] Cleanup header files and forward declarations > > Testing: tier3_gc_shenandoah {fastdebug|release} > > Thanks, > -Aleksey > From rkennke at redhat.com Tue Sep 25 14:06:19 2018 From: rkennke at redhat.com (Roman Kennke) Date: Tue, 25 Sep 2018 16:06:19 +0200 Subject: RFR [8]: 2018-09-25, Bulk backports to sh/jdk8u In-Reply-To: <25510a5f-c90d-59db-d9d4-fdf3cef19146@redhat.com> References: <25510a5f-c90d-59db-d9d4-fdf3cef19146@redhat.com> Message-ID: <9e9886a8-0d7f-b9f8-cb72-e980eb9aa4f6@redhat.com> Looks good, thanks! Roman > http://cr.openjdk.java.net/~shade/shenandoah/backports/jdk8u-20180925/webrev.01/ > > This backports recent work to sh/jdk8u: > > [backport] Disable ShHeapUncommit on too-large large-pages > [backport] Fix call to is_g1_marking_load() with is_shenandoah_state_load() in ShenandoahSupport > [backport] Purge some G1-related cruft in C2 > [backport] In update-refs, update all code-roots when in degen-gc > [backport] Single marking bitmap > [backport] Make sure bitmap is marked incomplete before bitmap resets > [backport] Refactor bitmap cleaning > [backport] Cleanup unused bitmap methods > [backport] Improve liveness count during marking > [backport] StringDedupMode enum for closures/method templates > [backport] Fix indenting in ShMarkCompact::do_it > [backport] Coarsen Full GC use of heap lock > [backport] Micro-optimize ShHeap::get_region by moving the most likely branch first > [backport] Print "process weakrefs" to disambiguate vs CM-with-UR > [backport] Cleanup buffered queue handling > [backport] Clean up dead code > [backport] Remove Parallel Cleanup counters > [backport] Clean up declarations and uses of marked_object_iterate > [backport] Turn TestReferenceCAS into a standalone/no-testng test > [backport] Homogenize unimplemented stubs handling > [backport] Move ShenandoahAllocType and ShenandoahAllocRequest to separate file > [backport] Inline ShHeap::prepare_concurrent_evacuation > [backport] Remove ShHeap::region_in_collection_set in favor of SHR::in_cset > [backport] Inline ShHeap::do_marked_object_complete > [backport] Rename concurrentMark -> concurrent_mark > [backport] Remove ShHeap::_heap_expansion_count > [backport] Remove useless ShHeap::heap_region_iterate > [backport] Inline trivial ShHeap methods right in header > [backport] Code root iterators should not be instantiated in worker threads > [backport] Record location when asserting the code root correctness > [backport] Remove unused ShenandoahEvacuateRootsClosure > [backport] Rename ShHeap::shenandoahPolicy -> ShHeap::shenandoah_policy > [backport] Handle ShHeap::time_since_last_millis for RMI users > [backport] Inline ShHeap::monitoring_support into header > [backport] Sort ShenandoahHeap methods/fields into logical groups > [backport] Silence VSC++ about multiple assignment operators > [backport] Cleanup header files and forward declarations > > Testing: hotspot_tier3_gc_shenandoah {fastdebug|release} > > Thanks, > -Aleksey > From shade at redhat.com Tue Sep 25 14:08:56 2018 From: shade at redhat.com (shade at redhat.com) Date: Tue, 25 Sep 2018 14:08:56 +0000 Subject: hg: shenandoah/jdk11: 47 new changesets Message-ID: <201809251408.w8PE8xeW024635@aojmv0008.oracle.com> Changeset: e900b13dcac9 Author: rkennke Date: 2018-09-10 17:42 -0400 URL: http://hg.openjdk.java.net/shenandoah/jdk11/rev/e900b13dcac9 [backport] AArch64: Don't generate CAS barrier when -XX:-ShenandoahCASBarrier ! src/hotspot/cpu/aarch64/gc/shenandoah/shenandoahBarrierSetAssembler_aarch64.cpp Changeset: 1d37631d6ca5 Author: rkennke Date: 2018-09-11 04:20 -0400 URL: http://hg.openjdk.java.net/shenandoah/jdk11/rev/1d37631d6ca5 [backport] Disable ShHeapUncommit on too-large large-pages ! src/hotspot/share/gc/shenandoah/shenandoahArguments.cpp ! src/hotspot/share/gc/shenandoah/shenandoahCollectorPolicy.cpp ! src/hotspot/share/gc/shenandoah/shenandoahHeapRegion.cpp ! src/hotspot/share/gc/shenandoah/shenandoahHeapRegion.hpp Changeset: 46d20f975cab Author: rkennke Date: 2018-09-11 23:08 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk11/rev/46d20f975cab [backport] Fix call to is_g1_marking_load() with is_shenandoah_state_load() in ShenandoahSupport ! src/hotspot/share/gc/shenandoah/c2/shenandoahSupport.cpp Changeset: 6494299f3196 Author: rkennke Date: 2018-09-11 23:09 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk11/rev/6494299f3196 [backport] Purge some G1-related cruft in C2 ! src/hotspot/share/opto/cfgnode.hpp ! src/hotspot/share/opto/compile.cpp ! src/hotspot/share/opto/ifnode.cpp ! src/hotspot/share/opto/node.hpp Changeset: 67d22bdda6cf Author: rkennke Date: 2018-09-11 23:15 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk11/rev/67d22bdda6cf [backport] Move shenandoah_eliminate_wb_pre to ShenandoahBarrierSetC2 ! src/hotspot/share/gc/shenandoah/c2/shenandoahBarrierSetC2.cpp ! src/hotspot/share/gc/shenandoah/c2/shenandoahBarrierSetC2.hpp ! src/hotspot/share/opto/compile.cpp ! src/hotspot/share/opto/compile.hpp ! src/hotspot/share/opto/macro.cpp Changeset: 3996900ed9da Author: rkennke Date: 2018-09-11 17:46 -0400 URL: http://hg.openjdk.java.net/shenandoah/jdk11/rev/3996900ed9da [backport] Remove racy assert in ShenandoahResetNextMarkBitMapTraversalTask ! src/hotspot/share/gc/shenandoah/shenandoahHeap.cpp Changeset: 2d0388ca710a Author: rkennke Date: 2018-09-12 13:33 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk11/rev/2d0388ca710a [backport] In update-refs, update all code-roots when in degen-gc ! src/hotspot/share/gc/shenandoah/shenandoahConcurrentMark.cpp ! src/hotspot/share/gc/shenandoah/shenandoahHeap.cpp ! src/hotspot/share/gc/shenandoah/shenandoahPhaseTimings.cpp ! src/hotspot/share/gc/shenandoah/shenandoahPhaseTimings.hpp Changeset: eed01c21bcd9 Author: shade Date: 2018-09-13 23:29 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk11/rev/eed01c21bcd9 [backport] Single marking bitmap ! src/hotspot/share/gc/shenandoah/shenandoahAsserts.cpp ! src/hotspot/share/gc/shenandoah/shenandoahAsserts.hpp ! src/hotspot/share/gc/shenandoah/shenandoahBarrierSet.cpp ! src/hotspot/share/gc/shenandoah/shenandoahConcurrentMark.cpp ! src/hotspot/share/gc/shenandoah/shenandoahConcurrentMark.inline.hpp ! src/hotspot/share/gc/shenandoah/shenandoahControlThread.cpp ! src/hotspot/share/gc/shenandoah/shenandoahFreeSet.cpp ! src/hotspot/share/gc/shenandoah/shenandoahHeap.cpp ! src/hotspot/share/gc/shenandoah/shenandoahHeap.hpp ! src/hotspot/share/gc/shenandoah/shenandoahHeap.inline.hpp ! src/hotspot/share/gc/shenandoah/shenandoahHeapRegion.cpp ! src/hotspot/share/gc/shenandoah/shenandoahMarkCompact.cpp ! src/hotspot/share/gc/shenandoah/shenandoahMarkingContext.cpp ! src/hotspot/share/gc/shenandoah/shenandoahMarkingContext.hpp ! src/hotspot/share/gc/shenandoah/shenandoahOopClosures.hpp ! src/hotspot/share/gc/shenandoah/shenandoahPhaseTimings.cpp ! src/hotspot/share/gc/shenandoah/shenandoahPhaseTimings.hpp ! src/hotspot/share/gc/shenandoah/shenandoahStringDedup.cpp ! src/hotspot/share/gc/shenandoah/shenandoahTraversalGC.cpp ! src/hotspot/share/gc/shenandoah/shenandoahVerifier.cpp ! src/hotspot/share/gc/shenandoah/shenandoahVerifier.hpp ! src/hotspot/share/gc/shenandoah/shenandoahWorkerPolicy.cpp ! src/hotspot/share/gc/shenandoah/shenandoahWorkerPolicy.hpp Changeset: e12caa3e36a0 Author: shade Date: 2018-09-13 23:29 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk11/rev/e12caa3e36a0 [backport] Refactor bitmap cleaning ! src/hotspot/share/gc/shenandoah/heuristics/shenandoahTraversalHeuristics.cpp ! src/hotspot/share/gc/shenandoah/shenandoahFreeSet.cpp ! src/hotspot/share/gc/shenandoah/shenandoahHeap.cpp ! src/hotspot/share/gc/shenandoah/shenandoahHeap.inline.hpp ! src/hotspot/share/gc/shenandoah/shenandoahHeapRegion.cpp ! src/hotspot/share/gc/shenandoah/shenandoahHeapRegion.hpp ! src/hotspot/share/gc/shenandoah/shenandoahHeuristics.cpp ! src/hotspot/share/gc/shenandoah/shenandoahMarkCompact.cpp ! src/hotspot/share/gc/shenandoah/shenandoahMarkingContext.cpp ! src/hotspot/share/gc/shenandoah/shenandoahMarkingContext.hpp ! src/hotspot/share/gc/shenandoah/shenandoahTraversalGC.cpp ! src/hotspot/share/gc/shenandoah/shenandoahVerifier.cpp ! src/hotspot/share/gc/shenandoah/shenandoah_globals.hpp Changeset: df68eaa7252b Author: shade Date: 2018-09-13 23:29 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk11/rev/df68eaa7252b [backport] Bind WeakProcessor properly: simpler closures, asserts, parallelism ! src/hotspot/share/gc/shenandoah/shenandoahConcurrentMark.cpp ! src/hotspot/share/gc/shenandoah/shenandoahTraversalGC.cpp Changeset: 6b4400e973f7 Author: shade Date: 2018-09-14 08:23 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk11/rev/6b4400e973f7 [backport] Cleanup unused bitmap methods ! src/hotspot/share/gc/shared/markBitMap.cpp ! src/hotspot/share/gc/shared/markBitMap.hpp ! src/hotspot/share/gc/shenandoah/shenandoahHeap.cpp ! src/hotspot/share/gc/shenandoah/shenandoahVerifier.cpp ! src/hotspot/share/utilities/bitMap.cpp ! src/hotspot/share/utilities/bitMap.hpp - test/hotspot/gtest/utilities/test_bitMap_copy.cpp Changeset: b7f000fb3db3 Author: rkennke Date: 2018-09-14 17:49 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk11/rev/b7f000fb3db3 [backport] Cleanup code in C2 related to G1/Sh pre-barrier handling ! src/hotspot/share/gc/shared/c2/barrierSetC2.hpp ! src/hotspot/share/gc/shenandoah/c2/shenandoahBarrierSetC2.cpp ! src/hotspot/share/gc/shenandoah/c2/shenandoahBarrierSetC2.hpp ! src/hotspot/share/gc/shenandoah/c2/shenandoahSupport.cpp ! src/hotspot/share/opto/callnode.cpp ! src/hotspot/share/opto/callnode.hpp ! src/hotspot/share/opto/cfgnode.hpp ! src/hotspot/share/opto/compile.cpp ! src/hotspot/share/opto/ifnode.cpp ! src/hotspot/share/opto/macro.cpp ! src/hotspot/share/opto/memnode.hpp ! src/hotspot/share/opto/node.cpp ! src/hotspot/share/opto/node.hpp ! src/hotspot/share/opto/phaseX.cpp Changeset: 4e72bd4b9af1 Author: rkennke Date: 2018-09-14 17:49 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk11/rev/4e72bd4b9af1 [backport] Fix and enable parallel safepoint workers ! src/hotspot/share/gc/shenandoah/shenandoahBarrierSet.cpp ! src/hotspot/share/gc/shenandoah/shenandoahHeap.cpp ! src/hotspot/share/gc/shenandoah/shenandoah_globals.hpp Changeset: 00b64bf6d42f Author: rkennke Date: 2018-09-17 10:46 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk11/rev/00b64bf6d42f [backport] Remove safepoint-cleanup piggybacking code ! src/hotspot/share/gc/shenandoah/shenandoahRootProcessor.cpp ! src/hotspot/share/gc/shenandoah/shenandoahRootProcessor.hpp ! src/hotspot/share/gc/shenandoah/shenandoah_globals.hpp ! src/hotspot/share/gc/shenandoah/vm_operations_shenandoah.hpp ! src/hotspot/share/runtime/safepoint.cpp ! src/hotspot/share/runtime/synchronizer.cpp ! src/hotspot/share/runtime/synchronizer.hpp ! src/hotspot/share/runtime/thread.cpp ! src/hotspot/share/runtime/thread.hpp ! src/hotspot/share/runtime/vm_operations.hpp Changeset: cc88d23ee24d Author: shade Date: 2018-09-17 14:36 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk11/rev/cc88d23ee24d [backport] Improve liveness count during marking ! src/hotspot/share/gc/shenandoah/shenandoahConcurrentMark.hpp ! src/hotspot/share/gc/shenandoah/shenandoahConcurrentMark.inline.hpp Changeset: 4f41911c2dcc Author: shade Date: 2018-09-17 21:47 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk11/rev/4f41911c2dcc [backport] Increase inline limits only for release builds ! make/hotspot/lib/JvmOverrideFiles.gmk Changeset: 09c9fed278ee Author: shade Date: 2018-09-17 22:26 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk11/rev/09c9fed278ee [backport] StringDedupMode enum for closures/method templates ! src/hotspot/share/gc/shenandoah/shenandoahConcurrentMark.cpp ! src/hotspot/share/gc/shenandoah/shenandoahConcurrentMark.hpp ! src/hotspot/share/gc/shenandoah/shenandoahConcurrentMark.inline.hpp ! src/hotspot/share/gc/shenandoah/shenandoahOopClosures.hpp ! src/hotspot/share/gc/shenandoah/shenandoahOopClosures.inline.hpp Changeset: 7043f501a0e8 Author: shade Date: 2018-09-18 13:11 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk11/rev/7043f501a0e8 [backport] Fix indenting in ShMarkCompact::do_it ! src/hotspot/share/gc/shenandoah/shenandoahMarkCompact.cpp Changeset: f526548e5c78 Author: shade Date: 2018-09-18 13:13 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk11/rev/f526548e5c78 [backport] Coarsen Full GC use of heap lock ! src/hotspot/share/gc/shenandoah/shenandoahMarkCompact.cpp Changeset: 1526f9c3d4b1 Author: shade Date: 2018-09-18 13:22 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk11/rev/1526f9c3d4b1 [backport] Micro-optimize ShHeap::get_region by moving the most likely branch first ! src/hotspot/share/gc/shenandoah/shenandoahHeap.inline.hpp Changeset: b5740c60544f Author: shade Date: 2018-09-18 14:20 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk11/rev/b5740c60544f [backport] Print "process weakrefs" to disambiguate vs CM-with-UR ! src/hotspot/share/gc/shenandoah/shenandoahHeap.cpp Changeset: 32a15bdaa18e Author: shade Date: 2018-09-18 17:06 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk11/rev/32a15bdaa18e [backport] Cleanup buffered queue handling ! src/hotspot/share/gc/shared/taskqueue.hpp ! src/hotspot/share/gc/shared/taskqueue.inline.hpp ! src/hotspot/share/gc/shenandoah/shenandoahArguments.cpp ! src/hotspot/share/gc/shenandoah/shenandoahConcurrentMark.cpp ! src/hotspot/share/gc/shenandoah/shenandoahConcurrentMark.hpp ! src/hotspot/share/gc/shenandoah/shenandoahConcurrentMark.inline.hpp ! src/hotspot/share/gc/shenandoah/shenandoahMarkCompact.cpp ! src/hotspot/share/gc/shenandoah/shenandoahTaskqueue.cpp ! src/hotspot/share/gc/shenandoah/shenandoahTaskqueue.hpp + src/hotspot/share/gc/shenandoah/shenandoahTaskqueue.inline.hpp ! src/hotspot/share/gc/shenandoah/shenandoahTraversalGC.cpp ! src/hotspot/share/gc/shenandoah/shenandoahTraversalGC.inline.hpp Changeset: 8de0836b0c9a Author: shade Date: 2018-09-19 11:26 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk11/rev/8de0836b0c9a [backport] Clean up dead code - src/hotspot/cpu/aarch64/gc/shenandoah/shenandoahBarrierSet_aarch64.cpp - src/hotspot/cpu/x86/gc/shenandoah/shenandoahBarrierSet_x86.cpp ! src/hotspot/share/gc/shenandoah/c2/shenandoahBarrierSetC2.cpp ! src/hotspot/share/gc/shenandoah/c2/shenandoahSupport.cpp ! src/hotspot/share/gc/shenandoah/c2/shenandoahSupport.hpp ! src/hotspot/share/gc/shenandoah/shenandoahAsserts.cpp ! src/hotspot/share/gc/shenandoah/shenandoahCollectorPolicy.cpp ! src/hotspot/share/gc/shenandoah/shenandoahCollectorPolicy.hpp ! src/hotspot/share/gc/shenandoah/shenandoahConcurrentMark.hpp ! src/hotspot/share/gc/shenandoah/shenandoahHeap.cpp ! src/hotspot/share/gc/shenandoah/shenandoahHeap.hpp ! src/hotspot/share/gc/shenandoah/shenandoahStrDedupQueue.cpp ! src/hotspot/share/gc/shenandoah/shenandoahStrDedupQueue.hpp ! src/hotspot/share/gc/shenandoah/shenandoahTraversalGC.inline.hpp Changeset: bba636b1b0e7 Author: shade Date: 2018-09-19 11:42 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk11/rev/bba636b1b0e7 [backport] Remove Parallel Cleanup counters ! src/hotspot/share/gc/shared/parallelCleaning.cpp ! src/hotspot/share/gc/shared/parallelCleaning.hpp ! src/hotspot/share/gc/shenandoah/shenandoahHeap.cpp ! src/hotspot/share/gc/shenandoah/shenandoahPhaseTimings.cpp ! src/hotspot/share/gc/shenandoah/shenandoahPhaseTimings.hpp Changeset: b214ca554ddc Author: shade Date: 2018-09-19 12:19 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk11/rev/b214ca554ddc [backport] Make sure bitmap is marked incomplete before bitmap resets ! src/hotspot/share/gc/shenandoah/shenandoahHeap.cpp ! src/hotspot/share/gc/shenandoah/shenandoahMarkCompact.cpp ! src/hotspot/share/gc/shenandoah/shenandoahTraversalGC.cpp Changeset: 0878f6bd5bd6 Author: shade Date: 2018-09-19 12:26 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk11/rev/0878f6bd5bd6 [backport] Clean up declarations and uses of marked_object_iterate ! src/hotspot/share/gc/shenandoah/shenandoahHeap.cpp ! src/hotspot/share/gc/shenandoah/shenandoahHeap.hpp ! src/hotspot/share/gc/shenandoah/shenandoahHeap.inline.hpp Changeset: 325cf89046c2 Author: rkennke Date: 2018-09-19 16:37 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk11/rev/325cf89046c2 [backport] Turn TestReferenceCAS into a standalone/no-testng test ! test/hotspot/jtreg/gc/shenandoah/compiler/TestReferenceCAS.java Changeset: 3ff552edd945 Author: shade Date: 2018-09-20 11:35 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk11/rev/3ff552edd945 [backport] Homogenize unimplemented stubs handling ! src/hotspot/share/gc/shenandoah/shenandoahAsserts.hpp ! src/hotspot/share/gc/shenandoah/shenandoahBarrierSet.cpp ! src/hotspot/share/gc/shenandoah/shenandoahBarrierSet.hpp ! src/hotspot/share/gc/shenandoah/shenandoahHeap.cpp ! src/hotspot/share/gc/shenandoah/shenandoahHeap.hpp ! src/hotspot/share/gc/shenandoah/shenandoahHeapRegion.cpp ! src/hotspot/share/gc/shenandoah/shenandoahHeapRegion.hpp Changeset: 3dfd5e98dfdc Author: shade Date: 2018-09-20 11:35 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk11/rev/3dfd5e98dfdc [backport] Remove unused alloc-seq recording for start/end of GC cycle ! src/hotspot/share/gc/shenandoah/shenandoahControlThread.cpp ! src/hotspot/share/gc/shenandoah/shenandoahHeap.cpp ! src/hotspot/share/gc/shenandoah/shenandoahHeap.hpp ! src/hotspot/share/gc/shenandoah/shenandoahHeuristics.cpp Changeset: d3177b9ea855 Author: shade Date: 2018-09-20 11:35 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk11/rev/d3177b9ea855 [backport] Move ShenandoahAllocType and ShenandoahAllocRequest to separate file + src/hotspot/share/gc/shenandoah/shenandoahAllocRequest.hpp ! src/hotspot/share/gc/shenandoah/shenandoahAllocTracker.cpp ! src/hotspot/share/gc/shenandoah/shenandoahAllocTracker.hpp ! src/hotspot/share/gc/shenandoah/shenandoahFreeSet.cpp ! src/hotspot/share/gc/shenandoah/shenandoahFreeSet.hpp ! src/hotspot/share/gc/shenandoah/shenandoahHeap.cpp ! src/hotspot/share/gc/shenandoah/shenandoahHeap.hpp ! src/hotspot/share/gc/shenandoah/shenandoahHeap.inline.hpp ! src/hotspot/share/gc/shenandoah/shenandoahHeapRegion.hpp ! src/hotspot/share/gc/shenandoah/shenandoahHeapRegion.inline.hpp ! src/hotspot/share/gc/shenandoah/shenandoahUtils.cpp ! src/hotspot/share/gc/shenandoah/shenandoahUtils.hpp Changeset: e8772a2bf3a2 Author: shade Date: 2018-09-20 11:35 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk11/rev/e8772a2bf3a2 [backport] Inline ShHeap::prepare_concurrent_evacuation ! src/hotspot/share/gc/shenandoah/shenandoahHeap.cpp ! src/hotspot/share/gc/shenandoah/shenandoahHeap.hpp Changeset: b5576a201e00 Author: shade Date: 2018-09-20 11:35 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk11/rev/b5576a201e00 [backport] Inline ShHeap::fixup_roots ! src/hotspot/share/gc/shenandoah/shenandoahHeap.cpp ! src/hotspot/share/gc/shenandoah/shenandoahHeap.hpp Changeset: 72be92fd3bd0 Author: shade Date: 2018-09-20 11:35 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk11/rev/72be92fd3bd0 [backport] Remove ShHeap::region_in_collection_set in favor of SHR::in_cset ! src/hotspot/share/gc/shenandoah/shenandoahFreeSet.cpp ! src/hotspot/share/gc/shenandoah/shenandoahHeap.cpp ! src/hotspot/share/gc/shenandoah/shenandoahHeap.hpp ! src/hotspot/share/gc/shenandoah/shenandoahHeap.inline.hpp ! src/hotspot/share/gc/shenandoah/shenandoahHeapRegion.cpp ! src/hotspot/share/gc/shenandoah/shenandoahVerifier.cpp Changeset: 650454d01f89 Author: shade Date: 2018-09-20 11:35 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk11/rev/650454d01f89 [backport] Inline ShHeap::do_marked_object_complete ! src/hotspot/share/gc/shenandoah/shenandoahHeap.hpp ! src/hotspot/share/gc/shenandoah/shenandoahHeap.inline.hpp Changeset: 36b2b39bd43b Author: shade Date: 2018-09-20 11:35 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk11/rev/36b2b39bd43b [backport] Rename concurrentMark -> concurrent_mark ! src/hotspot/share/gc/shenandoah/shenandoahConcurrentMark.cpp ! src/hotspot/share/gc/shenandoah/shenandoahHeap.cpp ! src/hotspot/share/gc/shenandoah/shenandoahHeap.hpp ! src/hotspot/share/gc/shenandoah/shenandoahMarkCompact.cpp ! src/hotspot/share/gc/shenandoah/shenandoahTraversalGC.cpp Changeset: b8bc0cfa0cea Author: shade Date: 2018-09-20 11:35 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk11/rev/b8bc0cfa0cea [backport] Remove ShHeap::_heap_expansion_count ! src/hotspot/share/gc/shenandoah/shenandoahHeap.cpp ! src/hotspot/share/gc/shenandoah/shenandoahHeap.hpp Changeset: bb106d808622 Author: shade Date: 2018-09-20 15:55 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk11/rev/bb106d808622 [backport] Remove useless ShHeap::heap_region_iterate ! src/hotspot/share/gc/shenandoah/shenandoahHeap.cpp ! src/hotspot/share/gc/shenandoah/shenandoahHeap.hpp Changeset: 8cb6409ac2fe Author: shade Date: 2018-09-20 16:06 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk11/rev/8cb6409ac2fe [backport] Inline trivial ShHeap methods right in header ! src/hotspot/share/gc/shenandoah/shenandoahHeap.cpp ! src/hotspot/share/gc/shenandoah/shenandoahHeap.hpp Changeset: 3f980a73a6aa Author: shade Date: 2018-09-21 12:35 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk11/rev/3f980a73a6aa [backport] Code root iterators should not be instantiated in worker threads ! src/hotspot/share/gc/shenandoah/shenandoahCodeRoots.cpp ! src/hotspot/share/gc/shenandoah/shenandoahTraversalGC.cpp Changeset: 9f832cad0534 Author: shade Date: 2018-09-21 13:19 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk11/rev/9f832cad0534 [backport] Record location when asserting the code root correctness ! src/hotspot/share/gc/shenandoah/shenandoahCodeRoots.cpp Changeset: bce2ed07fa8c Author: shade Date: 2018-09-21 16:26 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk11/rev/bce2ed07fa8c [backport] Remove unused ShenandoahEvacuateRootsClosure ! src/hotspot/share/gc/shenandoah/shenandoahHeap.cpp Changeset: 95d8452f8149 Author: shade Date: 2018-09-21 16:26 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk11/rev/95d8452f8149 [backport] Rename ShHeap::shenandoahPolicy -> ShHeap::shenandoah_policy ! src/hotspot/share/gc/shenandoah/shenandoahControlThread.cpp ! src/hotspot/share/gc/shenandoah/shenandoahHeap.cpp ! src/hotspot/share/gc/shenandoah/shenandoahHeap.hpp ! src/hotspot/share/gc/shenandoah/shenandoahHeuristics.cpp ! src/hotspot/share/gc/shenandoah/shenandoahPhaseTimings.cpp ! src/hotspot/share/gc/shenandoah/shenandoahUtils.cpp Changeset: 036a34a120ac Author: shade Date: 2018-09-21 16:55 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk11/rev/036a34a120ac [backport] Handle ShHeap::time_since_last_millis for RMI users ! src/hotspot/share/gc/shenandoah/heuristics/shenandoahAdaptiveHeuristics.cpp ! src/hotspot/share/gc/shenandoah/heuristics/shenandoahTraversalHeuristics.cpp ! src/hotspot/share/gc/shenandoah/shenandoahHeap.cpp ! src/hotspot/share/gc/shenandoah/shenandoahHeuristics.cpp ! src/hotspot/share/gc/shenandoah/shenandoahHeuristics.hpp Changeset: d789736dd2a0 Author: shade Date: 2018-09-21 16:55 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk11/rev/d789736dd2a0 [backport] Inline ShHeap::monitoring_support into header ! src/hotspot/share/gc/shenandoah/shenandoahHeap.cpp ! src/hotspot/share/gc/shenandoah/shenandoahHeap.hpp Changeset: ed8c2660e112 Author: shade Date: 2018-09-21 16:56 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk11/rev/ed8c2660e112 [backport] Sort ShenandoahHeap methods/fields into logical groups ! src/hotspot/share/gc/shenandoah/shenandoahHeap.cpp ! src/hotspot/share/gc/shenandoah/shenandoahHeap.hpp Changeset: ed54c29d0dc1 Author: zgu Date: 2018-09-21 14:33 -0400 URL: http://hg.openjdk.java.net/shenandoah/jdk11/rev/ed54c29d0dc1 [backport] Silence VSC++ about multiple assignment operators ! src/hotspot/share/gc/shenandoah/shenandoahTaskqueue.hpp Changeset: d567a3c1ca25 Author: zgu Date: 2018-09-21 16:00 -0400 URL: http://hg.openjdk.java.net/shenandoah/jdk11/rev/d567a3c1ca25 [backport] Cleanup header files and forward declarations ! src/hotspot/share/gc/shenandoah/c2/shenandoahBarrierSetC2.hpp ! src/hotspot/share/gc/shenandoah/c2/shenandoahSupport.cpp ! src/hotspot/share/gc/shenandoah/heuristics/shenandoahAdaptiveHeuristics.cpp ! src/hotspot/share/gc/shenandoah/heuristics/shenandoahAdaptiveHeuristics.hpp ! src/hotspot/share/gc/shenandoah/heuristics/shenandoahAggressiveHeuristics.cpp ! src/hotspot/share/gc/shenandoah/heuristics/shenandoahCompactHeuristics.cpp ! src/hotspot/share/gc/shenandoah/heuristics/shenandoahPassiveHeuristics.cpp ! src/hotspot/share/gc/shenandoah/heuristics/shenandoahPassiveHeuristics.hpp ! src/hotspot/share/gc/shenandoah/heuristics/shenandoahStaticHeuristics.cpp ! src/hotspot/share/gc/shenandoah/heuristics/shenandoahTraversalHeuristics.cpp ! src/hotspot/share/gc/shenandoah/shenandoahAllocRequest.hpp ! src/hotspot/share/gc/shenandoah/shenandoahAllocTracker.hpp ! src/hotspot/share/gc/shenandoah/shenandoahAsserts.hpp ! src/hotspot/share/gc/shenandoah/shenandoahCodeRoots.hpp ! src/hotspot/share/gc/shenandoah/shenandoahCollectionSet.cpp ! src/hotspot/share/gc/shenandoah/shenandoahCollectionSet.hpp ! src/hotspot/share/gc/shenandoah/shenandoahCollectionSet.inline.hpp ! src/hotspot/share/gc/shenandoah/shenandoahCollectorPolicy.cpp ! src/hotspot/share/gc/shenandoah/shenandoahCollectorPolicy.hpp ! src/hotspot/share/gc/shenandoah/shenandoahConcurrentMark.cpp ! src/hotspot/share/gc/shenandoah/shenandoahConcurrentMark.hpp ! src/hotspot/share/gc/shenandoah/shenandoahConcurrentMark.inline.hpp ! src/hotspot/share/gc/shenandoah/shenandoahControlThread.cpp ! src/hotspot/share/gc/shenandoah/shenandoahControlThread.hpp ! src/hotspot/share/gc/shenandoah/shenandoahFreeSet.cpp ! src/hotspot/share/gc/shenandoah/shenandoahHeap.cpp ! src/hotspot/share/gc/shenandoah/shenandoahHeap.hpp ! src/hotspot/share/gc/shenandoah/shenandoahHeap.inline.hpp ! src/hotspot/share/gc/shenandoah/shenandoahHeapLock.hpp ! src/hotspot/share/gc/shenandoah/shenandoahHeapRegion.cpp ! src/hotspot/share/gc/shenandoah/shenandoahHeapRegion.hpp ! src/hotspot/share/gc/shenandoah/shenandoahHeapRegionCounters.cpp ! src/hotspot/share/gc/shenandoah/shenandoahHeapRegionSet.hpp ! src/hotspot/share/gc/shenandoah/shenandoahHeuristics.cpp ! src/hotspot/share/gc/shenandoah/shenandoahMarkCompact.cpp ! src/hotspot/share/gc/shenandoah/shenandoahMarkCompact.hpp ! src/hotspot/share/gc/shenandoah/shenandoahOopClosures.hpp ! src/hotspot/share/gc/shenandoah/shenandoahPacer.cpp ! src/hotspot/share/gc/shenandoah/shenandoahPacer.inline.hpp ! src/hotspot/share/gc/shenandoah/shenandoahPrinter.cpp ! src/hotspot/share/gc/shenandoah/shenandoahRootProcessor.cpp ! src/hotspot/share/gc/shenandoah/shenandoahRootProcessor.hpp ! src/hotspot/share/gc/shenandoah/shenandoahSATBMarkQueueSet.hpp ! src/hotspot/share/gc/shenandoah/shenandoahSharedVariables.hpp ! src/hotspot/share/gc/shenandoah/shenandoahStrDedupQueue.cpp ! src/hotspot/share/gc/shenandoah/shenandoahStrDedupQueue.hpp ! src/hotspot/share/gc/shenandoah/shenandoahStrDedupQueue.inline.hpp ! src/hotspot/share/gc/shenandoah/shenandoahStringDedup.cpp ! src/hotspot/share/gc/shenandoah/shenandoahStringDedup.hpp ! src/hotspot/share/gc/shenandoah/shenandoahThreadLocalData.hpp ! src/hotspot/share/gc/shenandoah/shenandoahTraversalGC.cpp ! src/hotspot/share/gc/shenandoah/shenandoahTraversalGC.hpp ! src/hotspot/share/gc/shenandoah/shenandoahTraversalGC.inline.hpp ! src/hotspot/share/gc/shenandoah/shenandoahVerifier.cpp ! src/hotspot/share/gc/shenandoah/shenandoahVerifier.hpp ! src/hotspot/share/gc/shenandoah/shenandoahWorkGroup.cpp ! src/hotspot/share/gc/shenandoah/shenandoahWorkGroup.hpp ! src/hotspot/share/gc/shenandoah/vm_operations_shenandoah.cpp ! src/hotspot/share/gc/shenandoah/vm_operations_shenandoah.hpp From shade at redhat.com Tue Sep 25 14:09:21 2018 From: shade at redhat.com (shade at redhat.com) Date: Tue, 25 Sep 2018 14:09:21 +0000 Subject: hg: shenandoah/jdk8u/hotspot: 37 new changesets Message-ID: <201809251409.w8PE9LvL025324@aojmv0008.oracle.com> Changeset: 7f5cce1bb190 Author: rkennke Date: 2018-09-11 04:20 -0400 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/hotspot/rev/7f5cce1bb190 [backport] Disable ShHeapUncommit on too-large large-pages ! src/share/vm/gc_implementation/shenandoah/shenandoahCollectorPolicy.cpp ! src/share/vm/gc_implementation/shenandoah/shenandoahHeap.cpp ! src/share/vm/gc_implementation/shenandoah/shenandoahHeapRegion.cpp ! src/share/vm/gc_implementation/shenandoah/shenandoahHeapRegion.hpp ! src/share/vm/runtime/arguments.cpp Changeset: f667886616c5 Author: rkennke Date: 2018-09-11 23:08 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/hotspot/rev/f667886616c5 [backport] Fix call to is_g1_marking_load() with is_shenandoah_state_load() in ShenandoahSupport ! src/share/vm/opto/shenandoahSupport.cpp Changeset: 46115b81b1f3 Author: rkennke Date: 2018-09-11 23:09 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/hotspot/rev/46115b81b1f3 [backport] Purge some G1-related cruft in C2 ! src/share/vm/opto/cfgnode.hpp ! src/share/vm/opto/compile.cpp ! src/share/vm/opto/ifnode.cpp ! src/share/vm/opto/macro.cpp ! src/share/vm/opto/macro.hpp ! src/share/vm/opto/node.hpp Changeset: 1f965bf8e355 Author: rkennke Date: 2018-09-12 13:33 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/hotspot/rev/1f965bf8e355 [backport] In update-refs, update all code-roots when in degen-gc ! src/share/vm/gc_implementation/shenandoah/shenandoahConcurrentMark.cpp ! src/share/vm/gc_implementation/shenandoah/shenandoahHeap.cpp ! src/share/vm/gc_implementation/shenandoah/shenandoahPhaseTimings.cpp ! src/share/vm/gc_implementation/shenandoah/shenandoahPhaseTimings.hpp Changeset: a1f5f10afa4b Author: shade Date: 2018-09-13 23:29 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/hotspot/rev/a1f5f10afa4b [backport] Single marking bitmap ! src/share/vm/gc_implementation/shenandoah/shenandoahAsserts.cpp ! src/share/vm/gc_implementation/shenandoah/shenandoahAsserts.hpp ! src/share/vm/gc_implementation/shenandoah/shenandoahConcurrentMark.cpp ! src/share/vm/gc_implementation/shenandoah/shenandoahConcurrentMark.inline.hpp ! src/share/vm/gc_implementation/shenandoah/shenandoahControlThread.cpp ! src/share/vm/gc_implementation/shenandoah/shenandoahHeap.cpp ! src/share/vm/gc_implementation/shenandoah/shenandoahHeap.hpp ! src/share/vm/gc_implementation/shenandoah/shenandoahHeap.inline.hpp ! src/share/vm/gc_implementation/shenandoah/shenandoahHeapRegion.cpp ! src/share/vm/gc_implementation/shenandoah/shenandoahMarkCompact.cpp ! src/share/vm/gc_implementation/shenandoah/shenandoahMarkingContext.cpp ! src/share/vm/gc_implementation/shenandoah/shenandoahMarkingContext.hpp ! src/share/vm/gc_implementation/shenandoah/shenandoahPhaseTimings.cpp ! src/share/vm/gc_implementation/shenandoah/shenandoahPhaseTimings.hpp ! src/share/vm/gc_implementation/shenandoah/shenandoahStrDedupQueue.hpp ! src/share/vm/gc_implementation/shenandoah/shenandoahStrDedupTable.cpp ! src/share/vm/gc_implementation/shenandoah/shenandoahVerifier.cpp ! src/share/vm/gc_implementation/shenandoah/shenandoahVerifier.hpp ! src/share/vm/gc_implementation/shenandoah/shenandoahWorkerPolicy.cpp ! src/share/vm/gc_implementation/shenandoah/shenandoahWorkerPolicy.hpp Changeset: cb6187b8ae34 Author: shade Date: 2018-09-19 12:19 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/hotspot/rev/cb6187b8ae34 [backport] Make sure bitmap is marked incomplete before bitmap resets ! src/share/vm/gc_implementation/shenandoah/shenandoahHeap.cpp ! src/share/vm/gc_implementation/shenandoah/shenandoahMarkCompact.cpp Changeset: 27278e0675d6 Author: shade Date: 2018-09-13 23:29 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/hotspot/rev/27278e0675d6 [backport] Refactor bitmap cleaning ! src/share/vm/gc_implementation/shenandoah/shenandoahHeap.cpp ! src/share/vm/gc_implementation/shenandoah/shenandoahHeap.inline.hpp ! src/share/vm/gc_implementation/shenandoah/shenandoahHeapRegion.cpp ! src/share/vm/gc_implementation/shenandoah/shenandoahHeapRegion.hpp ! src/share/vm/gc_implementation/shenandoah/shenandoahHeuristics.cpp ! src/share/vm/gc_implementation/shenandoah/shenandoahMarkCompact.cpp ! src/share/vm/gc_implementation/shenandoah/shenandoahMarkingContext.cpp ! src/share/vm/gc_implementation/shenandoah/shenandoahMarkingContext.hpp ! src/share/vm/gc_implementation/shenandoah/shenandoahVerifier.cpp Changeset: d751fa4a8866 Author: shade Date: 2018-09-14 08:23 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/hotspot/rev/d751fa4a8866 [backport] Cleanup unused bitmap methods ! src/share/vm/gc_implementation/shared/markBitMap.cpp ! src/share/vm/gc_implementation/shared/markBitMap.hpp ! src/share/vm/gc_implementation/shenandoah/shenandoahHeap.cpp ! src/share/vm/gc_implementation/shenandoah/shenandoahVerifier.cpp Changeset: b7caf0effbdc Author: shade Date: 2018-09-17 14:36 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/hotspot/rev/b7caf0effbdc [backport] Improve liveness count during marking ! src/share/vm/gc_implementation/shenandoah/shenandoahConcurrentMark.hpp ! src/share/vm/gc_implementation/shenandoah/shenandoahConcurrentMark.inline.hpp Changeset: 133dbaf2566c Author: shade Date: 2018-09-17 22:26 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/hotspot/rev/133dbaf2566c [backport] StringDedupMode enum for closures/method templates ! src/share/vm/gc_implementation/shenandoah/shenandoahConcurrentMark.cpp ! src/share/vm/gc_implementation/shenandoah/shenandoahConcurrentMark.hpp ! src/share/vm/gc_implementation/shenandoah/shenandoahConcurrentMark.inline.hpp ! src/share/vm/gc_implementation/shenandoah/shenandoahOopClosures.hpp ! src/share/vm/gc_implementation/shenandoah/shenandoahOopClosures.inline.hpp Changeset: 7b75869deab3 Author: shade Date: 2018-09-18 13:11 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/hotspot/rev/7b75869deab3 [backport] Fix indenting in ShMarkCompact::do_it ! src/share/vm/gc_implementation/shenandoah/shenandoahMarkCompact.cpp Changeset: 0e1d965cc331 Author: shade Date: 2018-09-18 13:13 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/hotspot/rev/0e1d965cc331 [backport] Coarsen Full GC use of heap lock ! src/share/vm/gc_implementation/shenandoah/shenandoahMarkCompact.cpp Changeset: 41ac2604e5b2 Author: shade Date: 2018-09-18 13:22 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/hotspot/rev/41ac2604e5b2 [backport] Micro-optimize ShHeap::get_region by moving the most likely branch first ! src/share/vm/gc_implementation/shenandoah/shenandoahHeap.inline.hpp Changeset: 3906efb31138 Author: shade Date: 2018-09-18 14:20 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/hotspot/rev/3906efb31138 [backport] Print "process weakrefs" to disambiguate vs CM-with-UR ! src/share/vm/gc_implementation/shenandoah/shenandoahHeap.cpp Changeset: daaa7c09221e Author: shade Date: 2018-09-18 17:06 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/hotspot/rev/daaa7c09221e [backport] Cleanup buffered queue handling ! src/share/vm/gc_implementation/shenandoah/shenandoahConcurrentMark.cpp ! src/share/vm/gc_implementation/shenandoah/shenandoahConcurrentMark.hpp ! src/share/vm/gc_implementation/shenandoah/shenandoahConcurrentMark.inline.hpp ! src/share/vm/gc_implementation/shenandoah/shenandoahMarkCompact.cpp ! src/share/vm/gc_implementation/shenandoah/shenandoahTaskqueue.cpp ! src/share/vm/gc_implementation/shenandoah/shenandoahTaskqueue.hpp ! src/share/vm/gc_implementation/shenandoah/shenandoahTaskqueue.inline.hpp ! src/share/vm/runtime/arguments.cpp Changeset: 578fc312fd2a Author: shade Date: 2018-09-19 11:26 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/hotspot/rev/578fc312fd2a [backport] Clean up dead code ! src/share/vm/gc_implementation/shenandoah/shenandoahAsserts.cpp ! src/share/vm/gc_implementation/shenandoah/shenandoahConcurrentMark.hpp Changeset: 6f49a3ab306a Author: shade Date: 2018-09-19 11:42 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/hotspot/rev/6f49a3ab306a [backport] Remove Parallel Cleanup counters ! src/share/vm/gc_implementation/shared/parallelCleaning.hpp ! src/share/vm/gc_implementation/shenandoah/shenandoahHeap.cpp ! src/share/vm/gc_implementation/shenandoah/shenandoahPhaseTimings.cpp ! src/share/vm/gc_implementation/shenandoah/shenandoahPhaseTimings.hpp Changeset: bddffb55536a Author: shade Date: 2018-09-19 12:26 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/hotspot/rev/bddffb55536a [backport] Clean up declarations and uses of marked_object_iterate ! src/share/vm/gc_implementation/shenandoah/shenandoahHeap.cpp ! src/share/vm/gc_implementation/shenandoah/shenandoahHeap.hpp ! src/share/vm/gc_implementation/shenandoah/shenandoahHeap.inline.hpp Changeset: 56a80328e47b Author: rkennke Date: 2018-09-19 16:37 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/hotspot/rev/56a80328e47b [backport] Turn TestReferenceCAS into a standalone/no-testng test ! test/gc/shenandoah/compiler/TestReferenceCAS.java Changeset: 7f94faf87643 Author: shade Date: 2018-09-20 11:35 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/hotspot/rev/7f94faf87643 [backport] Homogenize unimplemented stubs handling ! src/share/vm/gc_implementation/shenandoah/shenandoahAsserts.hpp ! src/share/vm/gc_implementation/shenandoah/shenandoahBarrierSet.cpp ! src/share/vm/gc_implementation/shenandoah/shenandoahBarrierSet.hpp ! src/share/vm/gc_implementation/shenandoah/shenandoahHeap.cpp ! src/share/vm/gc_implementation/shenandoah/shenandoahHeap.hpp ! src/share/vm/gc_implementation/shenandoah/shenandoahHeapRegion.cpp ! src/share/vm/gc_implementation/shenandoah/shenandoahHeapRegion.hpp Changeset: 9eb892fff236 Author: shade Date: 2018-09-20 11:35 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/hotspot/rev/9eb892fff236 [backport] Move ShenandoahAllocType and ShenandoahAllocRequest to separate file + src/share/vm/gc_implementation/shenandoah/shenandoahAllocRequest.hpp ! src/share/vm/gc_implementation/shenandoah/shenandoahAllocTracker.cpp ! src/share/vm/gc_implementation/shenandoah/shenandoahAllocTracker.hpp ! src/share/vm/gc_implementation/shenandoah/shenandoahFreeSet.cpp ! src/share/vm/gc_implementation/shenandoah/shenandoahFreeSet.hpp ! src/share/vm/gc_implementation/shenandoah/shenandoahHeap.cpp ! src/share/vm/gc_implementation/shenandoah/shenandoahHeap.hpp ! src/share/vm/gc_implementation/shenandoah/shenandoahHeap.inline.hpp ! src/share/vm/gc_implementation/shenandoah/shenandoahHeapRegion.hpp ! src/share/vm/gc_implementation/shenandoah/shenandoahHeapRegion.inline.hpp ! src/share/vm/gc_implementation/shenandoah/shenandoahUtils.cpp ! src/share/vm/gc_implementation/shenandoah/shenandoahUtils.hpp Changeset: 813fc9267285 Author: shade Date: 2018-09-20 11:35 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/hotspot/rev/813fc9267285 [backport] Inline ShHeap::prepare_concurrent_evacuation ! src/share/vm/gc_implementation/shenandoah/shenandoahHeap.cpp ! src/share/vm/gc_implementation/shenandoah/shenandoahHeap.hpp Changeset: 1bb2d02c58ad Author: shade Date: 2018-09-20 11:35 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/hotspot/rev/1bb2d02c58ad [backport] Remove ShHeap::region_in_collection_set in favor of SHR::in_cset ! src/share/vm/gc_implementation/shenandoah/shenandoahFreeSet.cpp ! src/share/vm/gc_implementation/shenandoah/shenandoahHeap.cpp ! src/share/vm/gc_implementation/shenandoah/shenandoahHeap.hpp ! src/share/vm/gc_implementation/shenandoah/shenandoahHeap.inline.hpp ! src/share/vm/gc_implementation/shenandoah/shenandoahHeapRegion.cpp ! src/share/vm/gc_implementation/shenandoah/shenandoahVerifier.cpp Changeset: bb8def011ac9 Author: shade Date: 2018-09-20 11:35 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/hotspot/rev/bb8def011ac9 [backport] Inline ShHeap::do_marked_object_complete ! src/share/vm/gc_implementation/shenandoah/shenandoahHeap.hpp ! src/share/vm/gc_implementation/shenandoah/shenandoahHeap.inline.hpp Changeset: 19f55954a130 Author: shade Date: 2018-09-20 11:35 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/hotspot/rev/19f55954a130 [backport] Rename concurrentMark -> concurrent_mark ! src/share/vm/gc_implementation/shenandoah/shenandoahConcurrentMark.cpp ! src/share/vm/gc_implementation/shenandoah/shenandoahHeap.cpp ! src/share/vm/gc_implementation/shenandoah/shenandoahHeap.hpp ! src/share/vm/gc_implementation/shenandoah/shenandoahMarkCompact.cpp Changeset: 1a0db16fb3fd Author: shade Date: 2018-09-20 11:35 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/hotspot/rev/1a0db16fb3fd [backport] Remove ShHeap::_heap_expansion_count ! src/share/vm/gc_implementation/shenandoah/shenandoahHeap.cpp ! src/share/vm/gc_implementation/shenandoah/shenandoahHeap.hpp Changeset: 6ae146452c57 Author: shade Date: 2018-09-20 15:55 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/hotspot/rev/6ae146452c57 [backport] Remove useless ShHeap::heap_region_iterate ! src/share/vm/gc_implementation/shenandoah/shenandoahHeap.cpp ! src/share/vm/gc_implementation/shenandoah/shenandoahHeap.hpp Changeset: 0af1cbc54ac2 Author: shade Date: 2018-09-20 16:06 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/hotspot/rev/0af1cbc54ac2 [backport] Inline trivial ShHeap methods right in header ! src/share/vm/gc_implementation/shenandoah/shenandoahHeap.cpp ! src/share/vm/gc_implementation/shenandoah/shenandoahHeap.hpp Changeset: 5657d45c266e Author: shade Date: 2018-09-21 12:35 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/hotspot/rev/5657d45c266e [backport] Code root iterators should not be instantiated in worker threads ! src/share/vm/gc_implementation/shenandoah/shenandoahCodeRoots.cpp Changeset: ae777812f53b Author: shade Date: 2018-09-21 13:19 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/hotspot/rev/ae777812f53b [backport] Record location when asserting the code root correctness ! src/share/vm/gc_implementation/shenandoah/shenandoahCodeRoots.cpp Changeset: eda082862579 Author: shade Date: 2018-09-21 16:26 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/hotspot/rev/eda082862579 [backport] Remove unused ShenandoahEvacuateRootsClosure ! src/share/vm/gc_implementation/shenandoah/shenandoahHeap.cpp Changeset: 5f4421cf98b0 Author: shade Date: 2018-09-21 16:26 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/hotspot/rev/5f4421cf98b0 [backport] Rename ShHeap::shenandoahPolicy -> ShHeap::shenandoah_policy ! src/share/vm/gc_implementation/shenandoah/shenandoahConcurrentMark.cpp ! src/share/vm/gc_implementation/shenandoah/shenandoahControlThread.cpp ! src/share/vm/gc_implementation/shenandoah/shenandoahHeap.cpp ! src/share/vm/gc_implementation/shenandoah/shenandoahHeap.hpp ! src/share/vm/gc_implementation/shenandoah/shenandoahHeuristics.cpp ! src/share/vm/gc_implementation/shenandoah/shenandoahPhaseTimings.cpp ! src/share/vm/gc_implementation/shenandoah/shenandoahUtils.cpp Changeset: 968982f60bef Author: shade Date: 2018-09-21 16:55 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/hotspot/rev/968982f60bef [backport] Handle ShHeap::time_since_last_millis for RMI users ! src/share/vm/gc_implementation/shenandoah/heuristics/shenandoahAdaptiveHeuristics.cpp ! src/share/vm/gc_implementation/shenandoah/shenandoahHeap.cpp ! src/share/vm/gc_implementation/shenandoah/shenandoahHeuristics.cpp ! src/share/vm/gc_implementation/shenandoah/shenandoahHeuristics.hpp Changeset: d42b76a52855 Author: shade Date: 2018-09-21 16:55 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/hotspot/rev/d42b76a52855 [backport] Inline ShHeap::monitoring_support into header ! src/share/vm/gc_implementation/shenandoah/shenandoahHeap.cpp ! src/share/vm/gc_implementation/shenandoah/shenandoahHeap.hpp Changeset: 2bd1f934797e Author: shade Date: 2018-09-25 12:30 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/hotspot/rev/2bd1f934797e [backport] Sort ShenandoahHeap methods/fields into logical groups ! src/share/vm/gc_implementation/shenandoah/shenandoahHeap.cpp ! src/share/vm/gc_implementation/shenandoah/shenandoahHeap.hpp Changeset: 9df8ef75ae67 Author: zgu Date: 2018-09-21 14:33 -0400 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/hotspot/rev/9df8ef75ae67 [backport] Silence VSC++ about multiple assignment operators ! src/share/vm/gc_implementation/shenandoah/shenandoahTaskqueue.hpp Changeset: 2a8e1c939846 Author: zgu Date: 2018-09-21 16:00 -0400 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/hotspot/rev/2a8e1c939846 [backport] Cleanup header files and forward declarations ! src/share/vm/gc_implementation/shenandoah/heuristics/shenandoahAdaptiveHeuristics.cpp ! src/share/vm/gc_implementation/shenandoah/heuristics/shenandoahAdaptiveHeuristics.hpp ! src/share/vm/gc_implementation/shenandoah/heuristics/shenandoahAggressiveHeuristics.cpp ! src/share/vm/gc_implementation/shenandoah/heuristics/shenandoahCompactHeuristics.cpp ! src/share/vm/gc_implementation/shenandoah/heuristics/shenandoahPassiveHeuristics.cpp ! src/share/vm/gc_implementation/shenandoah/heuristics/shenandoahPassiveHeuristics.hpp ! src/share/vm/gc_implementation/shenandoah/heuristics/shenandoahStaticHeuristics.cpp ! src/share/vm/gc_implementation/shenandoah/shenandoahAllocTracker.hpp ! src/share/vm/gc_implementation/shenandoah/shenandoahAsserts.hpp ! src/share/vm/gc_implementation/shenandoah/shenandoahCodeRoots.hpp ! src/share/vm/gc_implementation/shenandoah/shenandoahCollectionSet.cpp ! src/share/vm/gc_implementation/shenandoah/shenandoahCollectionSet.hpp ! src/share/vm/gc_implementation/shenandoah/shenandoahCollectionSet.inline.hpp ! src/share/vm/gc_implementation/shenandoah/shenandoahCollectorPolicy.cpp ! src/share/vm/gc_implementation/shenandoah/shenandoahCollectorPolicy.hpp ! src/share/vm/gc_implementation/shenandoah/shenandoahConcurrentMark.cpp ! src/share/vm/gc_implementation/shenandoah/shenandoahConcurrentMark.hpp ! src/share/vm/gc_implementation/shenandoah/shenandoahControlThread.cpp ! src/share/vm/gc_implementation/shenandoah/shenandoahControlThread.hpp ! src/share/vm/gc_implementation/shenandoah/shenandoahFreeSet.cpp ! src/share/vm/gc_implementation/shenandoah/shenandoahHeap.hpp ! src/share/vm/gc_implementation/shenandoah/shenandoahHeap.inline.hpp ! src/share/vm/gc_implementation/shenandoah/shenandoahHeapLock.hpp ! src/share/vm/gc_implementation/shenandoah/shenandoahHeapRegion.cpp ! src/share/vm/gc_implementation/shenandoah/shenandoahHeapRegion.hpp ! src/share/vm/gc_implementation/shenandoah/shenandoahHeapRegionCounters.cpp ! src/share/vm/gc_implementation/shenandoah/shenandoahHeapRegionSet.hpp ! src/share/vm/gc_implementation/shenandoah/shenandoahHeuristics.cpp ! src/share/vm/gc_implementation/shenandoah/shenandoahMarkCompact.cpp ! src/share/vm/gc_implementation/shenandoah/shenandoahMarkCompact.hpp ! src/share/vm/gc_implementation/shenandoah/shenandoahPacer.cpp ! src/share/vm/gc_implementation/shenandoah/shenandoahPacer.inline.hpp ! src/share/vm/gc_implementation/shenandoah/shenandoahPrinter.cpp ! src/share/vm/gc_implementation/shenandoah/shenandoahRootProcessor.cpp ! src/share/vm/gc_implementation/shenandoah/shenandoahRootProcessor.hpp ! src/share/vm/gc_implementation/shenandoah/shenandoahSharedVariables.hpp ! src/share/vm/gc_implementation/shenandoah/shenandoahStringDedup.cpp ! src/share/vm/gc_implementation/shenandoah/shenandoahVerifier.cpp ! src/share/vm/gc_implementation/shenandoah/shenandoahVerifier.hpp ! src/share/vm/gc_implementation/shenandoah/shenandoahWorkGroup.cpp ! src/share/vm/gc_implementation/shenandoah/shenandoahWorkGroup.hpp ! src/share/vm/gc_implementation/shenandoah/vm_operations_shenandoah.cpp ! src/share/vm/gc_implementation/shenandoah/vm_operations_shenandoah.hpp From shade at redhat.com Tue Sep 25 14:44:04 2018 From: shade at redhat.com (Aleksey Shipilev) Date: Tue, 25 Sep 2018 16:44:04 +0200 Subject: RFR: Streamline write-barrier-prologue (C2 part) In-Reply-To: <6ad1c7bb-5fca-7013-53dc-62e6b47ab31c@redhat.com> References: <2f9309e6-0b6d-02dc-344c-54f2f00f976d@redhat.com> <2e320eeb-6a9f-98ba-87a5-7f1808de9504@redhat.com> <6ad1c7bb-5fca-7013-53dc-62e6b47ab31c@redhat.com> Message-ID: <808f1f47-9728-31d2-d527-160b9a1fdc71@redhat.com> On 09/24/2018 03:26 PM, Roman Kennke wrote: > http://cr.openjdk.java.net/~rkennke/streamline-wb-prologue/webrev.02/ Microbenchmarks and their generated code look fine. Spot-checked SPECjvm workloads seem also fine. -Aleksey From roman at kennke.org Tue Sep 25 14:50:12 2018 From: roman at kennke.org (roman at kennke.org) Date: Tue, 25 Sep 2018 14:50:12 +0000 Subject: hg: shenandoah/jdk: Streamline write-barrier-prologue (C2 part) Message-ID: <201809251450.w8PEoCvX014600@aojmv0008.oracle.com> Changeset: ea465b0ec3f2 Author: rkennke Date: 2018-09-24 15:23 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/ea465b0ec3f2 Streamline write-barrier-prologue (C2 part) ! src/hotspot/share/gc/shenandoah/c2/shenandoahSupport.cpp ! src/hotspot/share/gc/shenandoah/c2/shenandoahSupport.hpp ! src/hotspot/share/gc/shenandoah/heuristics/shenandoahTraversalHeuristics.cpp ! src/hotspot/share/opto/ifnode.cpp ! src/hotspot/share/opto/loopUnswitch.cpp ! src/hotspot/share/opto/loopopts.cpp From zgu at redhat.com Tue Sep 25 15:23:41 2018 From: zgu at redhat.com (Zhengyu Gu) Date: Tue, 25 Sep 2018 11:23:41 -0400 Subject: RFR: Suppressing VSC++ warning locally Message-ID: <12db80e6-2445-7da8-7fe1-39ae25402097@redhat.com> Following other occasions, suppress warnings locally. Webrev: http://cr.openjdk.java.net/~zgu/shenandoah/win_warning_local/webrev.00/ Test: Built on Windows. Thanks, -Zhengyu From shade at redhat.com Tue Sep 25 15:27:09 2018 From: shade at redhat.com (Aleksey Shipilev) Date: Tue, 25 Sep 2018 17:27:09 +0200 Subject: RFR: Suppressing VSC++ warning locally In-Reply-To: <12db80e6-2445-7da8-7fe1-39ae25402097@redhat.com> References: <12db80e6-2445-7da8-7fe1-39ae25402097@redhat.com> Message-ID: On 09/25/2018 05:23 PM, Zhengyu Gu wrote: > Following other occasions, suppress warnings locally. > > Webrev: http://cr.openjdk.java.net/~zgu/shenandoah/win_warning_local/webrev.00/ Looks good. -Aleksey From zgu at redhat.com Tue Sep 25 15:28:40 2018 From: zgu at redhat.com (zgu at redhat.com) Date: Tue, 25 Sep 2018 15:28:40 +0000 Subject: hg: shenandoah/jdk: Suppressing VSC++ warning locally Message-ID: <201809251528.w8PFSeUe003393@aojmv0008.oracle.com> Changeset: 2a4b21d0fd60 Author: zgu Date: 2018-09-25 11:28 -0400 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/2a4b21d0fd60 Suppressing VSC++ warning locally ! src/hotspot/share/gc/shenandoah/shenandoahTaskqueue.hpp From shade at redhat.com Tue Sep 25 17:16:59 2018 From: shade at redhat.com (Aleksey Shipilev) Date: Tue, 25 Sep 2018 19:16:59 +0200 Subject: RFR: Unclutter ShConcurrentMark (multiple changes) Message-ID: <3abf8ccd-8866-8fd2-6cb0-50d213d6bfb8@redhat.com> http://cr.openjdk.java.net/~shade/shenandoah/unclutter-scm/webrev.01/ This cleans up ShenandoahConcurrentMark interface a bit. Before doing it, there are a few cleanup patches that reduce its API surface. *) "Handle update_refs, class_unload, ref_proc in ShConcMark better": Inlines getters right at uses, since ShHeap instance is accessible anyway. Also improves mark_loop signatures without dragging these parameters along. *) "Common liveness cache in ShHeap": both ShConcurrentMark and ShTraversalGC use parts of the cache. Moreover, Traversal instantiates the array twice: once is ShConcurrentMark that it delegates marking to, and the second time for itself. It seems cleaner to common this caching in ShHeap. *) "Inline/rename confusingly named methods in ShConcurrentMark": make sure we have clear entry points that are shared by both concurrent and Full GC cycle; *) "Sort ShenandoahConcurrentMark methods/fields into logical groups": the final touch that reshuffles the methods around Testing: tier3_gc_shenandoah {fastdebug|release} Thanks, -Aleksey From rkennke at redhat.com Tue Sep 25 18:12:00 2018 From: rkennke at redhat.com (Roman Kennke) Date: Tue, 25 Sep 2018 20:12:00 +0200 Subject: RFR: Unclutter ShConcurrentMark (multiple changes) In-Reply-To: <3abf8ccd-8866-8fd2-6cb0-50d213d6bfb8@redhat.com> References: <3abf8ccd-8866-8fd2-6cb0-50d213d6bfb8@redhat.com> Message-ID: <03ba68cf-86a7-dd42-928b-e912e452b998@redhat.com> Looks good. Thanks! Roman > http://cr.openjdk.java.net/~shade/shenandoah/unclutter-scm/webrev.01/ > > This cleans up ShenandoahConcurrentMark interface a bit. Before doing it, there are a few cleanup > patches that reduce its API surface. > > *) "Handle update_refs, class_unload, ref_proc in ShConcMark better": Inlines getters right at > uses, since ShHeap instance is accessible anyway. Also improves mark_loop signatures without > dragging these parameters along. > > *) "Common liveness cache in ShHeap": both ShConcurrentMark and ShTraversalGC use parts of the > cache. Moreover, Traversal instantiates the array twice: once is ShConcurrentMark that it delegates > marking to, and the second time for itself. It seems cleaner to common this caching in ShHeap. > > *) "Inline/rename confusingly named methods in ShConcurrentMark": make sure we have clear entry > points that are shared by both concurrent and Full GC cycle; > > *) "Sort ShenandoahConcurrentMark methods/fields into logical groups": the final touch that > reshuffles the methods around > > Testing: tier3_gc_shenandoah {fastdebug|release} > > Thanks, > -Aleksey > From shade at redhat.com Tue Sep 25 19:38:07 2018 From: shade at redhat.com (shade at redhat.com) Date: Tue, 25 Sep 2018 19:38:07 +0000 Subject: hg: shenandoah/jdk: 4 new changesets Message-ID: <201809251938.w8PJc7cr024312@aojmv0008.oracle.com> Changeset: 3ca2067cb762 Author: shade Date: 2018-09-25 17:15 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/3ca2067cb762 Handle update_refs, class_unload, ref_proc in ShConcMark better ! src/hotspot/share/gc/shenandoah/shenandoahConcurrentMark.cpp ! src/hotspot/share/gc/shenandoah/shenandoahConcurrentMark.hpp Changeset: 66f15f9ae09b Author: shade Date: 2018-09-25 18:45 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/66f15f9ae09b Common liveness cache in ShHeap ! src/hotspot/share/gc/shenandoah/shenandoahConcurrentMark.cpp ! src/hotspot/share/gc/shenandoah/shenandoahConcurrentMark.hpp ! src/hotspot/share/gc/shenandoah/shenandoahHeap.cpp ! src/hotspot/share/gc/shenandoah/shenandoahHeap.hpp ! src/hotspot/share/gc/shenandoah/shenandoahTraversalGC.cpp ! src/hotspot/share/gc/shenandoah/shenandoahTraversalGC.hpp Changeset: a265584d4fc6 Author: shade Date: 2018-09-25 18:54 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/a265584d4fc6 Inline/rename confusingly named methods in ShConcurrentMark ! src/hotspot/share/gc/shenandoah/shenandoahConcurrentMark.cpp ! src/hotspot/share/gc/shenandoah/shenandoahConcurrentMark.hpp ! src/hotspot/share/gc/shenandoah/shenandoahHeap.cpp ! src/hotspot/share/gc/shenandoah/shenandoahMarkCompact.cpp Changeset: dcc9a1554b9a Author: shade Date: 2018-09-25 18:59 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/dcc9a1554b9a Sort ShenandoahConcurrentMark methods/fields into logical groups ! src/hotspot/share/gc/shenandoah/shenandoahConcurrentMark.hpp From zgu at redhat.com Tue Sep 25 21:27:20 2018 From: zgu at redhat.com (Zhengyu Gu) Date: Tue, 25 Sep 2018 17:27:20 -0400 Subject: RFR: After GC reporting should also report metaspace progress Message-ID: <4ebd5325-894f-8606-de5f-fe107f8627ec@redhat.com> Following upstream discussion, Shenandoah should follow other GCs to report metaspace progress after GCs. I also changed logging tag for heap from (gc, ergo) to (gc, heap) to be consistent with others. Webrev: http://cr.openjdk.java.net/~zgu/shenandoah/metaspace_stats/webrev.00/ Test: tier2_gc_shenandoah (fastdebug and release) Thanks, -Zhengyu From rkennke at redhat.com Tue Sep 25 22:32:01 2018 From: rkennke at redhat.com (Roman Kennke) Date: Wed, 26 Sep 2018 00:32:01 +0200 Subject: RFR: After GC reporting should also report metaspace progress In-Reply-To: <4ebd5325-894f-8606-de5f-fe107f8627ec@redhat.com> References: <4ebd5325-894f-8606-de5f-fe107f8627ec@redhat.com> Message-ID: It's ok by me. Also wait for Aleksey's ok though, he's refined the logging. Thanks, Roman On 25.09.2018 23:27, Zhengyu Gu wrote: > Following upstream discussion, Shenandoah should follow other GCs to > report metaspace progress after GCs. > > I also changed logging tag for heap from (gc, ergo) to (gc, heap) to > be consistent with others. > > Webrev: > http://cr.openjdk.java.net/~zgu/shenandoah/metaspace_stats/webrev.00/ > > Test: > > ? tier2_gc_shenandoah (fastdebug and release) > > Thanks, > > -Zhengyu From shade at redhat.com Wed Sep 26 07:57:50 2018 From: shade at redhat.com (Aleksey Shipilev) Date: Wed, 26 Sep 2018 09:57:50 +0200 Subject: RFR [8]: Fix Minimal VM build Message-ID: <4c3b683f-658d-e14e-6d02-9ec01edc219a@redhat.com> Minimal VM fails to build after recent backports, because Shenandoah flags are not accessible: diff -r 2a8e1c939846 src/share/vm/runtime/arguments.cpp --- a/src/share/vm/runtime/arguments.cpp Fri Sep 21 16:00:18 2018 -0400 +++ b/src/share/vm/runtime/arguments.cpp Wed Sep 26 09:56:44 2018 +0200 @@ -1775,11 +1775,13 @@ } #endif +#if INCLUDE_ALL_GCS if (UseLargePages && (MaxHeapSize / os::large_page_size()) < ShenandoahHeapRegion::MIN_NUM_REGIONS) { warning("Large pages size (" SIZE_FORMAT "K) is too large to afford page-sized regions, disabling uncommit", os::large_page_size() / K); FLAG_SET_DEFAULT(ShenandoahUncommit, false); } +#endif FLAG_SET_DEFAULT(ParallelGCThreads, Abstract_VM_Version::parallel_worker_threads()); Testing: x86 minimal build Thanks, -Aleksey From rkennke at redhat.com Wed Sep 26 08:32:46 2018 From: rkennke at redhat.com (Roman Kennke) Date: Wed, 26 Sep 2018 10:32:46 +0200 Subject: RFR [8]: Fix Minimal VM build In-Reply-To: <4c3b683f-658d-e14e-6d02-9ec01edc219a@redhat.com> References: <4c3b683f-658d-e14e-6d02-9ec01edc219a@redhat.com> Message-ID: <258277da-5a22-5826-adc3-edc40db06c53@redhat.com> Yup! Roman Am 26.09.18 um 09:57 schrieb Aleksey Shipilev: > Minimal VM fails to build after recent backports, because Shenandoah flags are not accessible: > > diff -r 2a8e1c939846 src/share/vm/runtime/arguments.cpp > --- a/src/share/vm/runtime/arguments.cpp Fri Sep 21 16:00:18 2018 -0400 > +++ b/src/share/vm/runtime/arguments.cpp Wed Sep 26 09:56:44 2018 +0200 > @@ -1775,11 +1775,13 @@ > } > #endif > > +#if INCLUDE_ALL_GCS > if (UseLargePages && (MaxHeapSize / os::large_page_size()) < ShenandoahHeapRegion::MIN_NUM_REGIONS) { > warning("Large pages size (" SIZE_FORMAT "K) is too large to afford page-sized regions, > disabling uncommit", > os::large_page_size() / K); > FLAG_SET_DEFAULT(ShenandoahUncommit, false); > } > +#endif > > FLAG_SET_DEFAULT(ParallelGCThreads, > Abstract_VM_Version::parallel_worker_threads()); > > > Testing: x86 minimal build > > Thanks, > -Aleksey > From shade at redhat.com Wed Sep 26 08:40:45 2018 From: shade at redhat.com (shade at redhat.com) Date: Wed, 26 Sep 2018 08:40:45 +0000 Subject: hg: shenandoah/jdk8u/hotspot: Fix Minimal VM build Message-ID: <201809260840.w8Q8ek8K003192@aojmv0008.oracle.com> Changeset: 1c23e7d14895 Author: shade Date: 2018-09-26 09:58 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/hotspot/rev/1c23e7d14895 Fix Minimal VM build ! src/share/vm/runtime/arguments.cpp From shade at redhat.com Wed Sep 26 10:08:01 2018 From: shade at redhat.com (Aleksey Shipilev) Date: Wed, 26 Sep 2018 12:08:01 +0200 Subject: RFR: After GC reporting should also report metaspace progress In-Reply-To: <4ebd5325-894f-8606-de5f-fe107f8627ec@redhat.com> References: <4ebd5325-894f-8606-de5f-fe107f8627ec@redhat.com> Message-ID: On 09/25/2018 11:27 PM, Zhengyu Gu wrote: > Following upstream discussion, Shenandoah should follow other GCs to report metaspace progress after > GCs. > > I also changed logging tag for heap from (gc, ergo) to (gc, heap) to be consistent with others. > > Webrev: http://cr.openjdk.java.net/~zgu/shenandoah/metaspace_stats/webrev.00/ I am not OK with changing the tag to (gc, heap). Our adopters use those logging blocks to debug ergonomics decisions, and it should stay (gc, ergo). The logging seems to be better called from ShenandoahControlThread::run_service, that actually drives the cycle. There is "if (gc_requested) ..." block that handles whatever actions that should happen after the GC. Put the field tracking "last" metaspace usage in ShHeap, and call into ShHeap from ShControlThread. -Aleksey From shade at redhat.com Wed Sep 26 10:51:39 2018 From: shade at redhat.com (Aleksey Shipilev) Date: Wed, 26 Sep 2018 12:51:39 +0200 Subject: RFR: Make UseShenandoahGC experimental Message-ID: http://cr.openjdk.java.net/~shade/shenandoah/experimental-flag/webrev.01/ I am pretty sure upstream would ask us to turn UseShenandoahGC "experimental", to align with Epsilon and Z upstream. This change does it, and make sure tests are still executing fine. When we decide to turn the option back to "product", no further changes would be needed. Testing: tier3_gc_shenandoah Thanks, -Aleksey From rkennke at redhat.com Wed Sep 26 10:54:03 2018 From: rkennke at redhat.com (Roman Kennke) Date: Wed, 26 Sep 2018 12:54:03 +0200 Subject: RFR: Make UseShenandoahGC experimental In-Reply-To: References: Message-ID: <5addd20d-77bd-abf9-2cac-9442ec493562@redhat.com> Yes. Thank you! Roman Am 26.09.18 um 12:51 schrieb Aleksey Shipilev: > http://cr.openjdk.java.net/~shade/shenandoah/experimental-flag/webrev.01/ > > I am pretty sure upstream would ask us to turn UseShenandoahGC "experimental", to align with Epsilon > and Z upstream. This change does it, and make sure tests are still executing fine. When we decide to > turn the option back to "product", no further changes would be needed. > > Testing: tier3_gc_shenandoah > > Thanks, > -Aleksey > From shade at redhat.com Wed Sep 26 11:09:33 2018 From: shade at redhat.com (Aleksey Shipilev) Date: Wed, 26 Sep 2018 13:09:33 +0200 Subject: RFR: Fix inconsistent "process weakrefs" logging Message-ID: Missed a few spots from this changeset: http://hg.openjdk.java.net/shenandoah/jdk/rev/7436e54a2cc5 Fix: diff -r bf3a8554fa6f src/hotspot/share/gc/shenandoah/shenandoahHeap.cpp --- a/src/hotspot/share/gc/shenandoah/shenandoahHeap.cpp Wed Sep 26 12:55:02 2018 +0200 +++ b/src/hotspot/share/gc/shenandoah/shenandoahHeap.cpp Wed Sep 26 13:08:21 2018 +0200 @@ -2638,15 +2638,15 @@ if (update_refs && proc_refs && unload_cls) { - return "Pause Init Mark (update refs) (process refs) (unload classes)"; + return "Pause Init Mark (update refs) (process weakrefs) (unload classes)"; } else if (update_refs && proc_refs) { - return "Pause Init Mark (update refs) (process refs)"; + return "Pause Init Mark (update refs) (process weakrefs)"; } else if (update_refs && unload_cls) { return "Pause Init Mark (update refs) (unload classes)"; } else if (proc_refs && unload_cls) { - return "Pause Init Mark (process refs) (unload classes)"; + return "Pause Init Mark (process weakrefs) (unload classes)"; } else if (update_refs) { return "Pause Init Mark (update refs)"; } else if (proc_refs) { - return "Pause Init Mark (process refs)"; + return "Pause Init Mark (process weakrefs)"; } else if (unload_cls) { return "Pause Init Mark (unload classes)"; Thanks, -Aleksey From rkennke at redhat.com Wed Sep 26 11:21:31 2018 From: rkennke at redhat.com (Roman Kennke) Date: Wed, 26 Sep 2018 13:21:31 +0200 Subject: RFR: Fix inconsistent "process weakrefs" logging In-Reply-To: References: Message-ID: <5b81c305-dc7c-38bd-843a-d898261ad7b5@redhat.com> Yes, ok Roman > Missed a few spots from this changeset: > http://hg.openjdk.java.net/shenandoah/jdk/rev/7436e54a2cc5 > > Fix: > > diff -r bf3a8554fa6f src/hotspot/share/gc/shenandoah/shenandoahHeap.cpp > --- a/src/hotspot/share/gc/shenandoah/shenandoahHeap.cpp Wed Sep 26 12:55:02 2018 +0200 > +++ b/src/hotspot/share/gc/shenandoah/shenandoahHeap.cpp Wed Sep 26 13:08:21 2018 +0200 > @@ -2638,15 +2638,15 @@ > > if (update_refs && proc_refs && unload_cls) { > - return "Pause Init Mark (update refs) (process refs) (unload classes)"; > + return "Pause Init Mark (update refs) (process weakrefs) (unload classes)"; > } else if (update_refs && proc_refs) { > - return "Pause Init Mark (update refs) (process refs)"; > + return "Pause Init Mark (update refs) (process weakrefs)"; > } else if (update_refs && unload_cls) { > return "Pause Init Mark (update refs) (unload classes)"; > } else if (proc_refs && unload_cls) { > - return "Pause Init Mark (process refs) (unload classes)"; > + return "Pause Init Mark (process weakrefs) (unload classes)"; > } else if (update_refs) { > return "Pause Init Mark (update refs)"; > } else if (proc_refs) { > - return "Pause Init Mark (process refs)"; > + return "Pause Init Mark (process weakrefs)"; > } else if (unload_cls) { > return "Pause Init Mark (unload classes)"; > > Thanks, > -Aleksey > From shade at redhat.com Wed Sep 26 11:37:45 2018 From: shade at redhat.com (shade at redhat.com) Date: Wed, 26 Sep 2018 11:37:45 +0000 Subject: hg: shenandoah/jdk: 2 new changesets Message-ID: <201809261137.w8QBbjGH019658@aojmv0008.oracle.com> Changeset: bf3a8554fa6f Author: shade Date: 2018-09-26 12:55 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/bf3a8554fa6f Make UseShenandoahGC experimental ! src/hotspot/share/gc/shared/gc_globals.hpp ! test/hotspot/jtreg/gc/TestFullGCALot.java ! test/hotspot/jtreg/gc/TestHumongousReferenceObject.java ! test/hotspot/jtreg/gc/TestSystemGC.java ! test/hotspot/jtreg/gc/arguments/TestAlignmentToUseLargePages.java ! test/hotspot/jtreg/gc/arguments/TestDisableDefaultGC.java ! test/hotspot/jtreg/gc/arguments/TestUseCompressedOopsErgo.java ! test/hotspot/jtreg/gc/class_unloading/TestClassUnloadingDisabled.java ! test/hotspot/jtreg/gc/ergonomics/TestDynamicNumberOfGCThreads.java ! test/hotspot/jtreg/gc/ergonomics/TestInitialGCThreadLogging.java ! test/hotspot/jtreg/gc/logging/TestGCId.java ! test/hotspot/jtreg/gc/logging/TestUnifiedLoggingSwitchStress.java ! test/hotspot/jtreg/gc/metaspace/TestMetaspacePerfCounters.java ! test/hotspot/jtreg/gc/shenandoah/CriticalNativeArgs.java ! test/hotspot/jtreg/gc/shenandoah/CriticalNativeStress.java ! test/hotspot/jtreg/gc/shenandoah/EvilSyncBug.java ! test/hotspot/jtreg/gc/shenandoah/HumongousThreshold.java ! test/hotspot/jtreg/gc/shenandoah/LargeObjectAlignment.java ! test/hotspot/jtreg/gc/shenandoah/LotsOfCycles.java ! test/hotspot/jtreg/gc/shenandoah/PinnedGarbage.java ! test/hotspot/jtreg/gc/shenandoah/ShenandoahJNICritical.java ! test/hotspot/jtreg/gc/shenandoah/ShenandoahStrDedupStress.java ! test/hotspot/jtreg/gc/shenandoah/TestArrayCopyCheckCast.java ! test/hotspot/jtreg/gc/shenandoah/TestArrayCopyStress.java ! test/hotspot/jtreg/gc/shenandoah/TestElasticTLAB.java ! test/hotspot/jtreg/gc/shenandoah/TestGCThreadGroups.java ! test/hotspot/jtreg/gc/shenandoah/TestHeapAlloc.java ! test/hotspot/jtreg/gc/shenandoah/TestMemoryMXBeans.java ! test/hotspot/jtreg/gc/shenandoah/TestMemoryPools.java ! test/hotspot/jtreg/gc/shenandoah/TestPeriodicGC.java ! test/hotspot/jtreg/gc/shenandoah/TestRegionSampling.java ! test/hotspot/jtreg/gc/shenandoah/TestSelectiveBarrierFlags.java ! test/hotspot/jtreg/gc/shenandoah/TestShenandoahStrDedup.java ! test/hotspot/jtreg/gc/shenandoah/TestShenandoahWithLogLevel.java ! test/hotspot/jtreg/gc/shenandoah/TestSmallHeap.java ! test/hotspot/jtreg/gc/shenandoah/TestVerifyLevels.java ! test/hotspot/jtreg/gc/shenandoah/acceptance/AllocHumongousFragment.java ! test/hotspot/jtreg/gc/shenandoah/acceptance/AllocIntArrays.java ! test/hotspot/jtreg/gc/shenandoah/acceptance/AllocObjectArrays.java ! test/hotspot/jtreg/gc/shenandoah/acceptance/AllocObjects.java ! test/hotspot/jtreg/gc/shenandoah/acceptance/HeapUncommit.java ! test/hotspot/jtreg/gc/shenandoah/acceptance/ParallelRefprocSanity.java ! test/hotspot/jtreg/gc/shenandoah/acceptance/RefprocSanity.java ! test/hotspot/jtreg/gc/shenandoah/acceptance/RetainObjects.java ! test/hotspot/jtreg/gc/shenandoah/acceptance/SieveObjects.java ! test/hotspot/jtreg/gc/shenandoah/acceptance/StringInternCleanup.java ! test/hotspot/jtreg/gc/shenandoah/acceptance/VerifyJCStressTest.java ! test/hotspot/jtreg/gc/shenandoah/compiler/C1ArrayCopyNPE.java ! test/hotspot/jtreg/gc/shenandoah/compiler/C1VectorizedMismatch.java ! test/hotspot/jtreg/gc/shenandoah/compiler/TestCommonGCLoads.java ! test/hotspot/jtreg/gc/shenandoah/compiler/TestExpandedWBLostNullCheckDep.java ! test/hotspot/jtreg/gc/shenandoah/compiler/TestNullCheck.java ! test/hotspot/jtreg/gc/shenandoah/compiler/TestReferenceCAS.java ! test/hotspot/jtreg/gc/shenandoah/compiler/TestWriteBarrierClearControl.java ! test/hotspot/jtreg/gc/shenandoah/jni/TestJNIGlobalRefs.java ! test/hotspot/jtreg/gc/shenandoah/jvmti/TestHeapDump.java ! test/hotspot/jtreg/gc/shenandoah/mxbeans/ChurnNotifications.java ! test/hotspot/jtreg/gc/shenandoah/mxbeans/PauseNotifications.java ! test/hotspot/jtreg/gc/shenandoah/oom/TestAllocLargeObj.java ! test/hotspot/jtreg/gc/shenandoah/oom/TestAllocLargerThanHeap.java ! test/hotspot/jtreg/gc/shenandoah/oom/TestAllocSmallObj.java ! test/hotspot/jtreg/gc/shenandoah/oom/TestThreadFailure.java ! test/hotspot/jtreg/gc/shenandoah/options/AlwaysPreTouch.java ! test/hotspot/jtreg/gc/shenandoah/options/TestClassUnloadingArguments.java ! test/hotspot/jtreg/gc/shenandoah/options/TestCodeCacheRootStyles.java ! test/hotspot/jtreg/gc/shenandoah/options/TestEnabled.java ! test/hotspot/jtreg/gc/shenandoah/options/TestExplicitGC.java ! test/hotspot/jtreg/gc/shenandoah/options/TestExplicitGCNoConcurrent.java ! test/hotspot/jtreg/gc/shenandoah/options/TestHeuristicsUnlock.java ! test/hotspot/jtreg/gc/shenandoah/options/TestHumongousThresholdArgs.java ! test/hotspot/jtreg/gc/shenandoah/options/TestLoopMiningArguments.java ! test/hotspot/jtreg/gc/shenandoah/options/TestObjectAlignment.java ! test/hotspot/jtreg/gc/shenandoah/options/TestPacing.java ! test/hotspot/jtreg/gc/shenandoah/options/TestRegionSizeArgs.java ! test/hotspot/jtreg/gc/shenandoah/options/TestShenandoahArgumentRanges.java ! test/hotspot/jtreg/gc/shenandoah/options/TestSingleThreadedShenandoah.java ! test/hotspot/jtreg/gc/startup_warnings/TestShenandoah.java ! test/hotspot/jtreg/gc/stress/gcbasher/TestGCBasherWithShenandoah.java ! test/hotspot/jtreg/gc/stress/gclocker/TestGCLockerWithShenandoah.java ! test/hotspot/jtreg/gc/stress/gcold/TestGCOldWithShenandoah.java ! test/hotspot/jtreg/gc/stress/systemgc/TestSystemGCWithShenandoah.java ! test/hotspot/jtreg/runtime/MemberName/MemberNameLeak.java ! test/hotspot/jtreg/runtime/Metaspace/DefineClass.java Changeset: 135f0dedb2f8 Author: shade Date: 2018-09-26 13:09 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/135f0dedb2f8 Fix inconsistent "process weakrefs" logging ! src/hotspot/share/gc/shenandoah/shenandoahHeap.cpp From rkennke at redhat.com Wed Sep 26 13:36:38 2018 From: rkennke at redhat.com (Roman Kennke) Date: Wed, 26 Sep 2018 15:36:38 +0200 Subject: RFR: Streamline+cleanup ShenandoahBarrierSetC1 and related code Message-ID: <9f32435c-a35e-d5ea-5165-da0b309e971c@redhat.com> This straightens our C1 story: - Instead of doing this nasty dance of fetching the base (LIRItem), doing our barriers, punching back the base (now as LIR_Opr), etc, do this in the right place, that is resolve_address() where the lowering is happening anyway. - Similar story with xchg: we get the new_value passes as LIRItem, but need a LIR_Opr. We used to do the storeval-barrier in assembly only for this reason. The fix is to do the lowering ourselves (bypassing C1_LIRGenerator::atomic_xchg() ) and do the barriers there. Nice side-effect: we can now do the 'pre'-barrier after the xchg, as it should be. This gets our diff to upstream in both asm and C1 down to almost 0 (and the rest is stuff that's gonna be fine or whitespace cleanup). http://cr.openjdk.java.net/~rkennke/c1-bs-cleanups/webrev.00/ Test: tier3_gc_shenandoah, specjvm+C1, aarch64 build Ok? Roman From shade at redhat.com Wed Sep 26 13:47:05 2018 From: shade at redhat.com (Aleksey Shipilev) Date: Wed, 26 Sep 2018 15:47:05 +0200 Subject: RFR: Streamline+cleanup ShenandoahBarrierSetC1 and related code In-Reply-To: <9f32435c-a35e-d5ea-5165-da0b309e971c@redhat.com> References: <9f32435c-a35e-d5ea-5165-da0b309e971c@redhat.com> Message-ID: <4bfa0c88-87fa-883c-e773-830c8828bc1b@redhat.com> On 09/26/2018 03:36 PM, Roman Kennke wrote: > http://cr.openjdk.java.net/~rkennke/c1-bs-cleanups/webrev.00/ Looks okay to me. Would be better if Roland looked at this. -Aleksey From shade at redhat.com Wed Sep 26 13:55:30 2018 From: shade at redhat.com (Aleksey Shipilev) Date: Wed, 26 Sep 2018 15:55:30 +0200 Subject: RFR: Missing UseShenandoahGC unlock in TestHeapDumpForInvokeDynamic Message-ID: Regular testing fails, because this test misses unlock. It was missed in my local runs, because SA attach is apparently not working on my desktop. diff -r 135f0dedb2f8 test/hotspot/jtreg/serviceability/sa/TestHeapDumpForInvokeDynamic.java --- a/test/hotspot/jtreg/serviceability/sa/TestHeapDumpForInvokeDynamic.java Wed Sep 26 13:09:20 2018 +0200 +++ b/test/hotspot/jtreg/serviceability/sa/TestHeapDumpForInvokeDynamic.java Wed Sep 26 15:52:44 2018 +0200 @@ -57,5 +57,5 @@ * jdk.hotspot.agent/sun.jvm.hotspot.debugger * @run main/othervm TestHeapDumpForInvokeDynamic - * @run main/othervm -XX:+UseShenandoahGC TestHeapDumpForInvokeDynamic + * @run main/othervm -XX:+UnlockExperimentalVMOptions -XX:+UseShenandoahGC TestHeapDumpForInvokeDynamic */ Testing: failing test Thanks, -Aleksey From zgu at redhat.com Wed Sep 26 13:58:30 2018 From: zgu at redhat.com (Zhengyu Gu) Date: Wed, 26 Sep 2018 09:58:30 -0400 Subject: RFR: Missing UseShenandoahGC unlock in TestHeapDumpForInvokeDynamic In-Reply-To: References: Message-ID: <2431d35c-bbe3-5ef0-d5ce-2948afd3df61@redhat.com> Good. -Zhengyu On 09/26/2018 09:55 AM, Aleksey Shipilev wrote: > Regular testing fails, because this test misses unlock. It was missed in my local runs, because SA > attach is apparently not working on my desktop. > > diff -r 135f0dedb2f8 test/hotspot/jtreg/serviceability/sa/TestHeapDumpForInvokeDynamic.java > --- a/test/hotspot/jtreg/serviceability/sa/TestHeapDumpForInvokeDynamic.java Wed Sep 26 13:09:20 > 2018 +0200 > +++ b/test/hotspot/jtreg/serviceability/sa/TestHeapDumpForInvokeDynamic.java Wed Sep 26 15:52:44 > 2018 +0200 > @@ -57,5 +57,5 @@ > * jdk.hotspot.agent/sun.jvm.hotspot.debugger > * @run main/othervm TestHeapDumpForInvokeDynamic > - * @run main/othervm -XX:+UseShenandoahGC TestHeapDumpForInvokeDynamic > + * @run main/othervm -XX:+UnlockExperimentalVMOptions -XX:+UseShenandoahGC TestHeapDumpForInvokeDynamic > */ > > Testing: failing test > > Thanks, > -Aleksey > From rkennke at redhat.com Wed Sep 26 13:58:51 2018 From: rkennke at redhat.com (Roman Kennke) Date: Wed, 26 Sep 2018 15:58:51 +0200 Subject: RFR: Missing UseShenandoahGC unlock in TestHeapDumpForInvokeDynamic In-Reply-To: References: Message-ID: <6d10bd9a-01c7-04cf-a925-413a25109800@redhat.com> Yes, go! Roman Am 26.09.18 um 15:55 schrieb Aleksey Shipilev: > Regular testing fails, because this test misses unlock. It was missed in my local runs, because SA > attach is apparently not working on my desktop. > > diff -r 135f0dedb2f8 test/hotspot/jtreg/serviceability/sa/TestHeapDumpForInvokeDynamic.java > --- a/test/hotspot/jtreg/serviceability/sa/TestHeapDumpForInvokeDynamic.java Wed Sep 26 13:09:20 > 2018 +0200 > +++ b/test/hotspot/jtreg/serviceability/sa/TestHeapDumpForInvokeDynamic.java Wed Sep 26 15:52:44 > 2018 +0200 > @@ -57,5 +57,5 @@ > * jdk.hotspot.agent/sun.jvm.hotspot.debugger > * @run main/othervm TestHeapDumpForInvokeDynamic > - * @run main/othervm -XX:+UseShenandoahGC TestHeapDumpForInvokeDynamic > + * @run main/othervm -XX:+UnlockExperimentalVMOptions -XX:+UseShenandoahGC TestHeapDumpForInvokeDynamic > */ > > Testing: failing test > > Thanks, > -Aleksey > From shade at redhat.com Wed Sep 26 14:08:27 2018 From: shade at redhat.com (shade at redhat.com) Date: Wed, 26 Sep 2018 14:08:27 +0000 Subject: hg: shenandoah/jdk: Missing UseShenandoahGC unlock in TestHeapDumpForInvokeDynamic Message-ID: <201809261408.w8QE8SB0001276@aojmv0008.oracle.com> Changeset: dc8a8f750a28 Author: shade Date: 2018-09-26 15:52 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/dc8a8f750a28 Missing UseShenandoahGC unlock in TestHeapDumpForInvokeDynamic ! test/hotspot/jtreg/serviceability/sa/TestHeapDumpForInvokeDynamic.java From rkennke at redhat.com Wed Sep 26 14:33:56 2018 From: rkennke at redhat.com (Roman Kennke) Date: Wed, 26 Sep 2018 16:33:56 +0200 Subject: RFR: Several AArch64 cleanups Message-ID: <07f226fd-0f64-3732-2a07-ba3304a6b6a2@redhat.com> Little stuff, whitespaces, gratituous includes, leftovers from earlier code, etc. The instruction that I'm removing from Assembler has been used in an early version of the matrix barrier, iirc, but is unused now. http://cr.openjdk.java.net/~rkennke/aarch64-cleanups/webrev.00/ Roman From rkennke at redhat.com Wed Sep 26 14:38:25 2018 From: rkennke at redhat.com (Roman Kennke) Date: Wed, 26 Sep 2018 16:38:25 +0200 Subject: RFR: Remove ShWB from formssel.cpp Message-ID: We no longer expand ShenandoahWriteBarrier in the .ad files, and therefore don't need the matchers in formssel.cpp: diff --git a/src/hotspot/share/adlc/formssel.cpp b/src/hotspot/share/adlc/formssel.cpp --- a/src/hotspot/share/adlc/formssel.cpp +++ b/src/hotspot/share/adlc/formssel.cpp @@ -778,8 +778,7 @@ !strcmp(_matrule->_rChild->_opType,"CompareAndExchangeN") || !strcmp(_matrule->_rChild->_opType,"ShenandoahCompareAndExchangeP") || !strcmp(_matrule->_rChild->_opType,"ShenandoahCompareAndExchangeN") || - !strcmp(_matrule->_rChild->_opType,"ShenandoahReadBarrier") || - !strcmp(_matrule->_rChild->_opType,"ShenandoahWriteBarrier")) ) return true; + !strcmp(_matrule->_rChild->_opType,"ShenandoahReadBarrier"))) return true; else if ( is_ideal_load() == Form::idealP ) return true; else if ( is_ideal_store() != Form::none ) return true; @@ -3504,7 +3503,7 @@ "ClearArray", "GetAndSetB", "GetAndSetS", "GetAndAddI", "GetAndSetI", "GetAndSetP", "GetAndAddB", "GetAndAddS", "GetAndAddL", "GetAndSetL", "GetAndSetN", - "ShenandoahReadBarrier", "ShenandoahWriteBarrier", + "ShenandoahReadBarrier", "LoadBarrierSlowReg", "LoadBarrierWeakSlowReg" }; int cnt = sizeof(needs_ideal_memory_list)/sizeof(char*); From shade at redhat.com Wed Sep 26 14:38:32 2018 From: shade at redhat.com (Aleksey Shipilev) Date: Wed, 26 Sep 2018 16:38:32 +0200 Subject: RFR: Several AArch64 cleanups In-Reply-To: <07f226fd-0f64-3732-2a07-ba3304a6b6a2@redhat.com> References: <07f226fd-0f64-3732-2a07-ba3304a6b6a2@redhat.com> Message-ID: <31f78802-4788-1a54-1956-584df0695f17@redhat.com> On 09/26/2018 04:33 PM, Roman Kennke wrote: > http://cr.openjdk.java.net/~rkennke/aarch64-cleanups/webrev.00/ Looks good. Thanks, -Aleksey From shade at redhat.com Wed Sep 26 14:40:23 2018 From: shade at redhat.com (Aleksey Shipilev) Date: Wed, 26 Sep 2018 16:40:23 +0200 Subject: RFR: Remove ShWB from formssel.cpp In-Reply-To: References: Message-ID: <2a591370-ee15-1f20-5fc1-83692f5071a9@redhat.com> On 09/26/2018 04:38 PM, Roman Kennke wrote: > We no longer expand ShenandoahWriteBarrier in the .ad files, and > therefore don't need the matchers in formssel.cpp: > > diff --git a/src/hotspot/share/adlc/formssel.cpp > b/src/hotspot/share/adlc/formssel.cpp > --- a/src/hotspot/share/adlc/formssel.cpp > +++ b/src/hotspot/share/adlc/formssel.cpp > @@ -778,8 +778,7 @@ > !strcmp(_matrule->_rChild->_opType,"CompareAndExchangeN") || > > !strcmp(_matrule->_rChild->_opType,"ShenandoahCompareAndExchangeP") || > > !strcmp(_matrule->_rChild->_opType,"ShenandoahCompareAndExchangeN") || > - !strcmp(_matrule->_rChild->_opType,"ShenandoahReadBarrier") || > - !strcmp(_matrule->_rChild->_opType,"ShenandoahWriteBarrier")) ) > return true; > + !strcmp(_matrule->_rChild->_opType,"ShenandoahReadBarrier"))) > return true; > else if ( is_ideal_load() == Form::idealP ) return true; > else if ( is_ideal_store() != Form::none ) return true; > > @@ -3504,7 +3503,7 @@ > "ClearArray", > "GetAndSetB", "GetAndSetS", "GetAndAddI", "GetAndSetI", "GetAndSetP", > "GetAndAddB", "GetAndAddS", "GetAndAddL", "GetAndSetL", "GetAndSetN", > - "ShenandoahReadBarrier", "ShenandoahWriteBarrier", > + "ShenandoahReadBarrier", > "LoadBarrierSlowReg", "LoadBarrierWeakSlowReg" > }; > int cnt = sizeof(needs_ideal_memory_list)/sizeof(char*); Seems fine. Roland needs to ack this. -Aleksey From zgu at redhat.com Wed Sep 26 14:54:11 2018 From: zgu at redhat.com (Zhengyu Gu) Date: Wed, 26 Sep 2018 10:54:11 -0400 Subject: RFR: After GC reporting should also report metaspace progress In-Reply-To: References: <4ebd5325-894f-8606-de5f-fe107f8627ec@redhat.com> Message-ID: <4218cb21-2117-f9e7-fcd4-09279aa20919@redhat.com> On 09/26/2018 06:08 AM, Aleksey Shipilev wrote> On 09/25/2018 11:27 PM, Zhengyu Gu wrote: >> Following upstream discussion, Shenandoah should follow other GCs to report metaspace progress after >> GCs. >> >> I also changed logging tag for heap from (gc, ergo) to (gc, heap) to be consistent with others. >> >> Webrev: http://cr.openjdk.java.net/~zgu/shenandoah/metaspace_stats/webrev.00/ > > I am not OK with changing the tag to (gc, heap). Our adopters use those logging blocks to debug > ergonomics decisions, and it should stay (gc, ergo). > > The logging seems to be better called from ShenandoahControlThread::run_service, that actually > drives the cycle. There is "if (gc_requested) ..." block that handles whatever actions that should > happen after the GC. Put the field tracking "last" metaspace usage in ShHeap, and call into ShHeap > from ShControlThread. Other than full and degenerated GC, we really do not report progress of whole GC cycle, so there is no point to report metaspace progress. Therefore, I withdraw this RFR. Thanks, -Zhengyu > > -Aleksey > From rkennke at redhat.com Wed Sep 26 18:02:57 2018 From: rkennke at redhat.com (Roman Kennke) Date: Wed, 26 Sep 2018 20:02:57 +0200 Subject: RFR: Trim down oop-equals verification Message-ID: This: - Renames VerifyStrictOopOperations to VerifyObjectEquals, this catches the intent better. - Removes the overrides for oop == void* because this is a case we are not actually interested in. - Fixes a bunch of places to not use unsafe_equals() and instead use the above oop == void* (most of them are actually reverts to upstream code) Testing: tier3_gc_shenandoah Ok? Roman From rkennke at redhat.com Wed Sep 26 18:07:20 2018 From: rkennke at redhat.com (Roman Kennke) Date: Wed, 26 Sep 2018 20:07:20 +0200 Subject: RFR: Trim down oop-equals verification In-Reply-To: References: Message-ID: <38a1b3fd-7258-1626-810f-9f0ce863d4af@redhat.com> http://cr.openjdk.java.net/~rkennke/verify-obj-eq/webrev.00/ :-) Am 26.09.18 um 20:02 schrieb Roman Kennke: > This: > - Renames VerifyStrictOopOperations to VerifyObjectEquals, this catches > the intent better. > - Removes the overrides for oop == void* because this is a case we are > not actually interested in. > - Fixes a bunch of places to not use unsafe_equals() and instead use the > above oop == void* (most of them are actually reverts to upstream code) > > Testing: tier3_gc_shenandoah > > Ok? > > Roman > > From rkennke at redhat.com Wed Sep 26 18:07:50 2018 From: rkennke at redhat.com (Roman Kennke) Date: Wed, 26 Sep 2018 20:07:50 +0200 Subject: RFR: Remove ShFastSyncRoots Message-ID: <02f521f9-73ea-ef06-d36f-2c5f7692308d@redhat.com> We have a fast synchronizer roots iterator, but it's not really used. It used to be useful when we did not have thread-local MonitorInUseLists and needed to scan one global list efficiently, but MonitorInUseLists provides much more natural parallelization via thread stacks. Also, MonitorInUseLists is deprecated and I see no point why anybody would disable it. Let's remove the extra cruft: http://cr.openjdk.java.net/~rkennke/remove-fast-syncroots/webrev.00/ Testing: tier3_gc_shenandoah Ok? Roman From roman at kennke.org Wed Sep 26 18:11:54 2018 From: roman at kennke.org (roman at kennke.org) Date: Wed, 26 Sep 2018 18:11:54 +0000 Subject: hg: shenandoah/jdk: Several AArch64 cleanups Message-ID: <201809261811.w8QIBswU023292@aojmv0008.oracle.com> Changeset: 1f6b36ea7a7e Author: rkennke Date: 2018-09-26 14:11 -0400 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/1f6b36ea7a7e Several AArch64 cleanups ! src/hotspot/cpu/aarch64/c1_LIRAssembler_aarch64.cpp ! src/hotspot/cpu/aarch64/gc/shared/barrierSetAssembler_aarch64.cpp ! src/hotspot/cpu/aarch64/gc/shared/barrierSetAssembler_aarch64.hpp ! src/hotspot/cpu/aarch64/macroAssembler_aarch64.cpp ! src/hotspot/cpu/aarch64/macroAssembler_aarch64.hpp From shade at redhat.com Wed Sep 26 18:16:38 2018 From: shade at redhat.com (Aleksey Shipilev) Date: Wed, 26 Sep 2018 20:16:38 +0200 Subject: RFR: Trim down oop-equals verification In-Reply-To: <38a1b3fd-7258-1626-810f-9f0ce863d4af@redhat.com> References: <38a1b3fd-7258-1626-810f-9f0ce863d4af@redhat.com> Message-ID: <0e27747c-d7dc-9f18-a69c-3696a81350d3@redhat.com> On 09/26/2018 08:07 PM, Roman Kennke wrote: > http://cr.openjdk.java.net/~rkennke/verify-obj-eq/webrev.00/ Looks good. -Aleksey From shade at redhat.com Wed Sep 26 18:19:05 2018 From: shade at redhat.com (Aleksey Shipilev) Date: Wed, 26 Sep 2018 20:19:05 +0200 Subject: RFR: Remove ShFastSyncRoots In-Reply-To: <02f521f9-73ea-ef06-d36f-2c5f7692308d@redhat.com> References: <02f521f9-73ea-ef06-d36f-2c5f7692308d@redhat.com> Message-ID: <53d9c4d8-df9c-c64d-9739-93c0341b80cf@redhat.com> On 09/26/2018 08:07 PM, Roman Kennke wrote: > We have a fast synchronizer roots iterator, but it's not really used. It > used to be useful when we did not have thread-local MonitorInUseLists > and needed to scan one global list efficiently, but MonitorInUseLists > provides much more natural parallelization via thread stacks. Also, > MonitorInUseLists is deprecated and I see no point why anybody would > disable it. Let's remove the extra cruft: > > http://cr.openjdk.java.net/~rkennke/remove-fast-syncroots/webrev.00/ *) I don't understand the removal of upstream code in src/hotspot/share/runtime/synchronizer.cpp: ObjectSynchronizer::verifyInUse, block in ::InduceScavenge, etc. We only have ParallelObjectSynchronizerIterator added: https://builds.shipilev.net/patch-openjdk-shenandoah-jdk/v99-vs-15094d12a632/src/hotspot/share/runtime/synchronizer.cpp.sdiff.html Otherwise looks good. -Aleksey From rkennke at redhat.com Wed Sep 26 18:34:36 2018 From: rkennke at redhat.com (Roman Kennke) Date: Wed, 26 Sep 2018 20:34:36 +0200 Subject: RFR: Remove ShFastSyncRoots In-Reply-To: <53d9c4d8-df9c-c64d-9739-93c0341b80cf@redhat.com> References: <02f521f9-73ea-ef06-d36f-2c5f7692308d@redhat.com> <53d9c4d8-df9c-c64d-9739-93c0341b80cf@redhat.com> Message-ID: <43ccb8d8-c04b-1156-2700-e9de96a309fd@redhat.com> > On 09/26/2018 08:07 PM, Roman Kennke wrote: >> We have a fast synchronizer roots iterator, but it's not really used. It >> used to be useful when we did not have thread-local MonitorInUseLists >> and needed to scan one global list efficiently, but MonitorInUseLists >> provides much more natural parallelization via thread stacks. Also, >> MonitorInUseLists is deprecated and I see no point why anybody would >> disable it. Let's remove the extra cruft: >> >> http://cr.openjdk.java.net/~rkennke/remove-fast-syncroots/webrev.00/ > > *) I don't understand the removal of upstream code in src/hotspot/share/runtime/synchronizer.cpp: > ObjectSynchronizer::verifyInUse, block in ::InduceScavenge, etc. We only have > ParallelObjectSynchronizerIterator added: > > https://builds.shipilev.net/patch-openjdk-shenandoah-jdk/v99-vs-15094d12a632/src/hotspot/share/runtime/synchronizer.cpp.sdiff.html Oops. I've copied over from jdk/jdk but from tip not from jdk-12+12 as I should have: http://cr.openjdk.java.net/~rkennke/remove-fast-syncroots/webrev.01/ Good? From roman at kennke.org Wed Sep 26 18:35:21 2018 From: roman at kennke.org (roman at kennke.org) Date: Wed, 26 Sep 2018 18:35:21 +0000 Subject: hg: shenandoah/jdk: Trim down oop-equals verification Message-ID: <201809261835.w8QIZLni003618@aojmv0008.oracle.com> Changeset: 12ddd015eaa0 Author: rkennke Date: 2018-09-26 20:35 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/12ddd015eaa0 Trim down oop-equals verification ! src/hotspot/share/code/nmethod.cpp ! src/hotspot/share/code/relocInfo.cpp ! src/hotspot/share/compiler/oopMap.cpp ! src/hotspot/share/gc/shenandoah/shenandoah_globals.hpp ! src/hotspot/share/oops/oopsHierarchy.hpp From shade at redhat.com Wed Sep 26 18:36:58 2018 From: shade at redhat.com (Aleksey Shipilev) Date: Wed, 26 Sep 2018 20:36:58 +0200 Subject: RFR: Remove ShFastSyncRoots In-Reply-To: <43ccb8d8-c04b-1156-2700-e9de96a309fd@redhat.com> References: <02f521f9-73ea-ef06-d36f-2c5f7692308d@redhat.com> <53d9c4d8-df9c-c64d-9739-93c0341b80cf@redhat.com> <43ccb8d8-c04b-1156-2700-e9de96a309fd@redhat.com> Message-ID: <60649848-15ce-ced9-4db5-12fd926a328b@redhat.com> On 09/26/2018 08:34 PM, Roman Kennke wrote: > Oops. I've copied over from jdk/jdk but from tip not from jdk-12+12 as I > should have: > > http://cr.openjdk.java.net/~rkennke/remove-fast-syncroots/webrev.01/ > > Good? Yes, looks good. Thanks, -Aleksey From roman at kennke.org Wed Sep 26 18:42:09 2018 From: roman at kennke.org (roman at kennke.org) Date: Wed, 26 Sep 2018 18:42:09 +0000 Subject: hg: shenandoah/jdk: Remove ShFastSyncRoots Message-ID: <201809261842.w8QIg9Td007719@aojmv0008.oracle.com> Changeset: 3f1a8ca4b06e Author: rkennke Date: 2018-09-26 20:41 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/3f1a8ca4b06e Remove ShFastSyncRoots ! src/hotspot/share/gc/shenandoah/shenandoahRootProcessor.cpp ! src/hotspot/share/gc/shenandoah/shenandoahRootProcessor.hpp ! src/hotspot/share/gc/shenandoah/shenandoah_globals.hpp ! src/hotspot/share/runtime/synchronizer.cpp ! src/hotspot/share/runtime/synchronizer.hpp From zgu at redhat.com Wed Sep 26 20:41:16 2018 From: zgu at redhat.com (Zhengyu Gu) Date: Wed, 26 Sep 2018 16:41:16 -0400 Subject: RFR: Purge flat profiler timing entries Message-ID: <5754a211-de6e-8980-cdc6-90e3e17e3378@redhat.com> Flat Profiler has long gone, let's purge related entries in GC phase timings. Webrev: http://cr.openjdk.java.net/~zgu/shenandoah/purge_flatprofiler/webrev.00/ Test: tier2_gc_shenandoah (fastdebug and release) Thanks, -Zhengyu From zgu at redhat.com Thu Sep 27 02:22:38 2018 From: zgu at redhat.com (Zhengyu Gu) Date: Wed, 26 Sep 2018 22:22:38 -0400 Subject: RFR: Use s-macro to keep GC phase enum and names in sync Message-ID: <539d638a-7df5-7d78-74f9-7ae169e1b104@redhat.com> To keep GC phase enum and phase names, parallel phase enum and timing data in sync, avoid bugs that caused by adding new enum values without adding responding names or worker data, etc. Webrev: http://cr.openjdk.java.net/~zgu/shenandoah/gc_phase_sync/webrev.00/ Test: tier2_gc_shenandoah (fastdebug and release) Eyeball gc+stats output Thanks, -Zhengyu From shade at redhat.com Thu Sep 27 07:24:25 2018 From: shade at redhat.com (Aleksey Shipilev) Date: Thu, 27 Sep 2018 09:24:25 +0200 Subject: RFR: Purge flat profiler timing entries In-Reply-To: <5754a211-de6e-8980-cdc6-90e3e17e3378@redhat.com> References: <5754a211-de6e-8980-cdc6-90e3e17e3378@redhat.com> Message-ID: <3cb31192-7b14-426e-9dff-1d2bcff246fc@redhat.com> On 09/26/2018 10:41 PM, Zhengyu Gu wrote: > Flat Profiler has long gone, let's purge related entries in GC phase timings. > > Webrev: > http://cr.openjdk.java.net/~zgu/shenandoah/purge_flatprofiler/webrev.00/ Looks good! -Aleksey From shade at redhat.com Thu Sep 27 07:34:57 2018 From: shade at redhat.com (Aleksey Shipilev) Date: Thu, 27 Sep 2018 09:34:57 +0200 Subject: RFR: Use s-macro to keep GC phase enum and names in sync In-Reply-To: <539d638a-7df5-7d78-74f9-7ae169e1b104@redhat.com> References: <539d638a-7df5-7d78-74f9-7ae169e1b104@redhat.com> Message-ID: <04d4c9c1-fdeb-d4ad-7268-03c4850ed032@redhat.com> On 09/27/2018 04:22 AM, Zhengyu Gu wrote: > To keep GC phase enum and phase names, parallel phase enum and timing data in sync, avoid bugs that > caused by adding new enum values without adding responding names or worker data, etc. > > Webrev: http://cr.openjdk.java.net/~zgu/shenandoah/gc_phase_sync/webrev.00/ Okay. I think indent for backslashes in SHENANDOAH_GC_PHASE_DO should be consistent throughout the enum, it starts to get flaky here: 109 f(evac_cldg_roots, " E: CLDG Roots") \ 110 f(evac_jvmti_roots, " E: JVMTI Roots") \ 111 f(evac_string_dedup_table_roots, " E: String Dedup Table Roots") \ 112 f(evac_string_dedup_queue_roots, " E: String Dedup Queue Roots") \ 113 f(evac_finish_queues, " E: Finish Queues") \ 114 \ 115 f(final_evac, "Pause Final Evac (N)") \ 116 f(final_evac_gross, "Pause Final Evac (G)") \ 117 \ 118 f(init_update_refs_gross, "Pause Init Update Refs (G)") \ 119 f(init_update_refs, "Pause Init Update Refs (N)") \ 120 \ 121 f(final_update_refs_gross, "Pause Final Update Refs (G)") \ -Aleksey From rwestrel at redhat.com Thu Sep 27 09:52:07 2018 From: rwestrel at redhat.com (Roland Westrelin) Date: Thu, 27 Sep 2018 11:52:07 +0200 Subject: RFR: Streamline+cleanup ShenandoahBarrierSetC1 and related code In-Reply-To: <9f32435c-a35e-d5ea-5165-da0b309e971c@redhat.com> References: <9f32435c-a35e-d5ea-5165-da0b309e971c@redhat.com> Message-ID: > http://cr.openjdk.java.net/~rkennke/c1-bs-cleanups/webrev.00/ So you reverted back to upstream code for c1_LIRGenerator_xxx.cpp? The change to LIR_Opr LIRGenerator::atomic_cmpxchg() on x86 should be kept I think because it fixes an inconsistency. Isn't there some missing aarch64 code: Wouldn't the changeshenandoahBarrierSetC1_x86.cpp needed on aarch64 too? In shenandoahBarrierSetC1.cpp, ShenandoahBarrierSetC1::atomic_xchg_at_resolved(), the logic you use seems to be a copy of the one for x86 but the aarch64 is different and needs a temp register? Roland. From rwestrel at redhat.com Thu Sep 27 09:54:06 2018 From: rwestrel at redhat.com (Roland Westrelin) Date: Thu, 27 Sep 2018 11:54:06 +0200 Subject: RFR: Remove ShWB from formssel.cpp In-Reply-To: References: Message-ID: Good. Roland. From roman at kennke.org Thu Sep 27 10:03:55 2018 From: roman at kennke.org (roman at kennke.org) Date: Thu, 27 Sep 2018 10:03:55 +0000 Subject: hg: shenandoah/jdk: Remove ShWB from formssel.cpp Message-ID: <201809271003.w8RA3ugi003324@aojmv0008.oracle.com> Changeset: 4339678a51da Author: rkennke Date: 2018-09-27 11:59 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/4339678a51da Remove ShWB from formssel.cpp ! src/hotspot/share/adlc/formssel.cpp From rkennke at redhat.com Thu Sep 27 10:35:26 2018 From: rkennke at redhat.com (Roman Kennke) Date: Thu, 27 Sep 2018 12:35:26 +0200 Subject: RFR: Streamline+cleanup ShenandoahBarrierSetC1 and related code In-Reply-To: References: <9f32435c-a35e-d5ea-5165-da0b309e971c@redhat.com> Message-ID: <9e02d93b-3bb0-684a-00d7-1bfdc7ef2ba8@redhat.com> Hi Roland, >> http://cr.openjdk.java.net/~rkennke/c1-bs-cleanups/webrev.00/ > > So you reverted back to upstream code for c1_LIRGenerator_xxx.cpp? The > change to LIR_Opr LIRGenerator::atomic_cmpxchg() on x86 should be kept I > think because it fixes an inconsistency. Right. This should be upstreamed then: https://bugs.openjdk.java.net/browse/JDK-8211219 > Isn't there some missing aarch64 code: > Wouldn't the changeshenandoahBarrierSetC1_x86.cpp needed on aarch64 too? > In shenandoahBarrierSetC1.cpp, > ShenandoahBarrierSetC1::atomic_xchg_at_resolved(), the logic you use > seems to be a copy of the one for x86 but the aarch64 is different and > needs a temp register? Right. I splitted the x86 and aarch64 versions and fixed that. Running tier3_gc_shenandoah on both x86 and aarch64 right now. http://cr.openjdk.java.net/~rkennke/c1-bs-cleanups/webrev.01/ Ok now? Roman From rwestrel at redhat.com Thu Sep 27 10:56:56 2018 From: rwestrel at redhat.com (Roland Westrelin) Date: Thu, 27 Sep 2018 12:56:56 +0200 Subject: RFR: Streamline+cleanup ShenandoahBarrierSetC1 and related code In-Reply-To: <9e02d93b-3bb0-684a-00d7-1bfdc7ef2ba8@redhat.com> References: <9f32435c-a35e-d5ea-5165-da0b309e971c@redhat.com> <9e02d93b-3bb0-684a-00d7-1bfdc7ef2ba8@redhat.com> Message-ID: > http://cr.openjdk.java.net/~rkennke/c1-bs-cleanups/webrev.01/ Yes, that looks good. Roland. From roman at kennke.org Thu Sep 27 11:14:46 2018 From: roman at kennke.org (roman at kennke.org) Date: Thu, 27 Sep 2018 11:14:46 +0000 Subject: hg: shenandoah/jdk: Streamline+cleanup ShenandoahBarrierSetC1 and related code Message-ID: <201809271114.w8RBEkP2006550@aojmv0008.oracle.com> Changeset: b1cf816b5789 Author: rkennke Date: 2018-09-27 12:26 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/b1cf816b5789 Streamline+cleanup ShenandoahBarrierSetC1 and related code ! src/hotspot/cpu/aarch64/c1_LIRGenerator_aarch64.cpp ! src/hotspot/cpu/aarch64/gc/shenandoah/shenandoahBarrierSetC1_aarch64.cpp ! src/hotspot/cpu/x86/c1_LIRAssembler_x86.cpp ! src/hotspot/cpu/x86/c1_LIRGenerator_x86.cpp ! src/hotspot/cpu/x86/gc/shared/barrierSetAssembler_x86.cpp ! src/hotspot/cpu/x86/gc/shared/barrierSetAssembler_x86.hpp ! src/hotspot/cpu/x86/gc/shenandoah/shenandoahBarrierSetAssembler_x86.cpp ! src/hotspot/cpu/x86/gc/shenandoah/shenandoahBarrierSetAssembler_x86.hpp ! src/hotspot/cpu/x86/gc/shenandoah/shenandoahBarrierSetC1_x86.cpp ! src/hotspot/cpu/x86/macroAssembler_x86.cpp ! src/hotspot/cpu/x86/macroAssembler_x86.hpp ! src/hotspot/share/gc/shared/c1/barrierSetC1.cpp ! src/hotspot/share/gc/shared/c1/barrierSetC1.hpp ! src/hotspot/share/gc/shenandoah/c1/shenandoahBarrierSetC1.cpp ! src/hotspot/share/gc/shenandoah/c1/shenandoahBarrierSetC1.hpp From zgu at redhat.com Thu Sep 27 12:53:00 2018 From: zgu at redhat.com (zgu at redhat.com) Date: Thu, 27 Sep 2018 12:53:00 +0000 Subject: hg: shenandoah/jdk: Purge flat profiler GC timing entries Message-ID: <201809271253.w8RCr1r1021155@aojmv0008.oracle.com> Changeset: a0b78cbc6235 Author: zgu Date: 2018-09-27 08:52 -0400 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/a0b78cbc6235 Purge flat profiler GC timing entries ! src/hotspot/share/gc/shenandoah/shenandoahPhaseTimings.cpp ! src/hotspot/share/gc/shenandoah/shenandoahPhaseTimings.hpp From zgu at redhat.com Thu Sep 27 12:54:17 2018 From: zgu at redhat.com (Zhengyu Gu) Date: Thu, 27 Sep 2018 08:54:17 -0400 Subject: RFR: Use s-macro to keep GC phase enum and names in sync In-Reply-To: <04d4c9c1-fdeb-d4ad-7268-03c4850ed032@redhat.com> References: <539d638a-7df5-7d78-74f9-7ae169e1b104@redhat.com> <04d4c9c1-fdeb-d4ad-7268-03c4850ed032@redhat.com> Message-ID: Thanks for reviewing! I will fix indents before push. -Zhengyu On 09/27/2018 03:34 AM, Aleksey Shipilev wrote: > On 09/27/2018 04:22 AM, Zhengyu Gu wrote: >> To keep GC phase enum and phase names, parallel phase enum and timing data in sync, avoid bugs that >> caused by adding new enum values without adding responding names or worker data, etc. >> >> Webrev: http://cr.openjdk.java.net/~zgu/shenandoah/gc_phase_sync/webrev.00/ > > Okay. I think indent for backslashes in SHENANDOAH_GC_PHASE_DO should be consistent throughout the > enum, it starts to get flaky here: > > 109 f(evac_cldg_roots, " E: CLDG Roots") \ > 110 f(evac_jvmti_roots, " E: JVMTI Roots") \ > 111 f(evac_string_dedup_table_roots, " E: String Dedup Table Roots") \ > 112 f(evac_string_dedup_queue_roots, " E: String Dedup Queue Roots") \ > 113 f(evac_finish_queues, " E: Finish Queues") \ > 114 \ > 115 f(final_evac, "Pause Final Evac (N)") \ > 116 f(final_evac_gross, "Pause Final Evac (G)") \ > 117 \ > 118 f(init_update_refs_gross, "Pause Init Update Refs (G)") \ > 119 f(init_update_refs, "Pause Init Update Refs (N)") \ > 120 \ > 121 f(final_update_refs_gross, "Pause Final Update Refs (G)") \ > > > -Aleksey > From zgu at redhat.com Thu Sep 27 14:26:05 2018 From: zgu at redhat.com (zgu at redhat.com) Date: Thu, 27 Sep 2018 14:26:05 +0000 Subject: hg: shenandoah/jdk: Use s-macro to keep GC phase enum and names in sync Message-ID: <201809271426.w8REQ5v6013326@aojmv0008.oracle.com> Changeset: 63a1c8ed2197 Author: zgu Date: 2018-09-27 10:25 -0400 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/63a1c8ed2197 Use s-macro to keep GC phase enum and names in sync ! src/hotspot/share/gc/shenandoah/shenandoahPhaseTimings.cpp ! src/hotspot/share/gc/shenandoah/shenandoahPhaseTimings.hpp From rkennke at redhat.com Thu Sep 27 19:32:01 2018 From: rkennke at redhat.com (Roman Kennke) Date: Thu, 27 Sep 2018 21:32:01 +0200 Subject: RFR: More AArch64 assembler cleanups Message-ID: <3bc3d8bf-c82c-e0a1-f339-a47adc811bc4@redhat.com> This cleans up some more stuff in aarch64 assembler, and thus removes diffs to upstream: - One missing line - A gratituous if () .. the exact same thing is handled in the switch a few lines above. Infact, this is almost a bug: the code for the cmpoop gets emitted 2x. Doesn't seem to hurt, but better to get rid of it. - Some code in MacroAssembler::stop() that we changed back when we did the store-checks stuff. We removed that stuff long ago, so let's also remove this leftover. With this patch, the aarch64-portion of Shenandoah is clean, except for the push/pop FP register stuff, which we will upstream with Shenandoah. http://cr.openjdk.java.net/~rkennke/more-aarch64-cleanups/webrev.00/ Testing: tier3_gc_shenandoah Ok? Roman From rkennke at redhat.com Thu Sep 27 19:51:35 2018 From: rkennke at redhat.com (Roman Kennke) Date: Thu, 27 Sep 2018 21:51:35 +0200 Subject: RFR: Remaining x86 assembler cleanup Message-ID: Only one dangling includes is left in X86 diff vs upstream, except for the stuff that we actually want to upstream. We never use anything from that header here. diff --git a/src/hotspot/cpu/x86/macroAssembler_x86.cpp b/src/hotspot/cpu/x86/macroAssembler_x86.cpp --- a/src/hotspot/cpu/x86/macroAssembler_x86.cpp +++ b/src/hotspot/cpu/x86/macroAssembler_x86.cpp @@ -35,7 +35,6 @@ #include "memory/universe.hpp" #include "oops/accessDecorators.hpp" #include "oops/klass.inline.hpp" -#include "oops/oop.hpp" #include "prims/methodHandles.hpp" #include "runtime/biasedLocking.hpp" #include "runtime/flags/flagSetting.hpp" Ok? From zgu at redhat.com Thu Sep 27 19:59:16 2018 From: zgu at redhat.com (Zhengyu Gu) Date: Thu, 27 Sep 2018 15:59:16 -0400 Subject: RFR: Remaining x86 assembler cleanup In-Reply-To: References: Message-ID: Okay. -Zhengyu On 09/27/2018 03:51 PM, Roman Kennke wrote: > Only one dangling includes is left in X86 diff vs upstream, except for > the stuff that we actually want to upstream. We never use anything from > that header here. > > diff --git a/src/hotspot/cpu/x86/macroAssembler_x86.cpp > b/src/hotspot/cpu/x86/macroAssembler_x86.cpp > --- a/src/hotspot/cpu/x86/macroAssembler_x86.cpp > +++ b/src/hotspot/cpu/x86/macroAssembler_x86.cpp > @@ -35,7 +35,6 @@ > #include "memory/universe.hpp" > #include "oops/accessDecorators.hpp" > #include "oops/klass.inline.hpp" > -#include "oops/oop.hpp" > #include "prims/methodHandles.hpp" > #include "runtime/biasedLocking.hpp" > #include "runtime/flags/flagSetting.hpp" > > Ok? > From roman at kennke.org Thu Sep 27 20:08:10 2018 From: roman at kennke.org (roman at kennke.org) Date: Thu, 27 Sep 2018 20:08:10 +0000 Subject: hg: shenandoah/jdk: Remaining x86 assembler cleanup Message-ID: <201809272008.w8RK8AJt017868@aojmv0008.oracle.com> Changeset: 457f75988941 Author: rkennke Date: 2018-09-27 22:08 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/457f75988941 Remaining x86 assembler cleanup ! src/hotspot/cpu/x86/macroAssembler_x86.cpp From shade at redhat.com Thu Sep 27 20:59:53 2018 From: shade at redhat.com (Aleksey Shipilev) Date: Thu, 27 Sep 2018 22:59:53 +0200 Subject: RFR: More AArch64 assembler cleanups In-Reply-To: <3bc3d8bf-c82c-e0a1-f339-a47adc811bc4@redhat.com> References: <3bc3d8bf-c82c-e0a1-f339-a47adc811bc4@redhat.com> Message-ID: <40c68bb7-b3d4-c865-ddc1-7040cc6637f6@redhat.com> On 09/27/2018 09:32 PM, Roman Kennke wrote: > http://cr.openjdk.java.net/~rkennke/more-aarch64-cleanups/webrev.00/ Looks good. -Aleksey From roman at kennke.org Fri Sep 28 06:41:27 2018 From: roman at kennke.org (roman at kennke.org) Date: Fri, 28 Sep 2018 06:41:27 +0000 Subject: hg: shenandoah/jdk: More AArch64 assembler cleanups Message-ID: <201809280641.w8S6fRVk006188@aojmv0008.oracle.com> Changeset: 625fc7ef5a76 Author: rkennke Date: 2018-09-28 02:41 -0400 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/625fc7ef5a76 More AArch64 assembler cleanups ! src/hotspot/cpu/aarch64/c1_LIRAssembler_aarch64.cpp ! src/hotspot/cpu/aarch64/macroAssembler_aarch64.cpp From rkennke at redhat.com Fri Sep 28 08:23:16 2018 From: rkennke at redhat.com (Roman Kennke) Date: Fri, 28 Sep 2018 10:23:16 +0200 Subject: RFR: Refactor runtime allocation to avoid code duplication and upstream diff Message-ID: As $SUBJ says. It reverts most diffs to upstream in memAllocator.hpp|cpp. Only remaining is to declare class Allocation as protected, otherwise we can't override mem_allocate()... this needs to be upstreamed. It also fixes our impl to be saner. Testing: tier3_gc_shenandoah http://cr.openjdk.java.net/~rkennke/refactor-rt-allocs/webrev.00/ Roman From shade at redhat.com Fri Sep 28 08:25:33 2018 From: shade at redhat.com (Aleksey Shipilev) Date: Fri, 28 Sep 2018 10:25:33 +0200 Subject: RFR: Refactor runtime allocation to avoid code duplication and upstream diff In-Reply-To: References: Message-ID: On 09/28/2018 10:23 AM, Roman Kennke wrote: > http://cr.openjdk.java.net/~rkennke/refactor-rt-allocs/webrev.00/ Looks good! -Aleksey From roman at kennke.org Fri Sep 28 08:28:48 2018 From: roman at kennke.org (roman at kennke.org) Date: Fri, 28 Sep 2018 08:28:48 +0000 Subject: hg: shenandoah/jdk: Refactor runtime allocation to avoid code duplication and upstream diff Message-ID: <201809280828.w8S8Sm22021038@aojmv0008.oracle.com> Changeset: aaa08c37caa0 Author: rkennke Date: 2018-09-28 10:20 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/aaa08c37caa0 Refactor runtime allocation to avoid code duplication and upstream diff ! src/hotspot/share/gc/shared/memAllocator.cpp ! src/hotspot/share/gc/shared/memAllocator.hpp ! src/hotspot/share/gc/shenandoah/shenandoahHeap.cpp From zgu at redhat.com Fri Sep 28 13:50:03 2018 From: zgu at redhat.com (Zhengyu Gu) Date: Fri, 28 Sep 2018 09:50:03 -0400 Subject: RFR: Fix order of Shenandoah GC phase enum Message-ID: <7900fdc0-96f3-d7e7-8471-07b2c2f69763@redhat.com> Messed up during refactoring. Webrev: http://cr.openjdk.java.net/~zgu/shenandoah/sh_phase_order/webrev.00/ -Zhengyu From shade at redhat.com Fri Sep 28 13:52:03 2018 From: shade at redhat.com (Aleksey Shipilev) Date: Fri, 28 Sep 2018 15:52:03 +0200 Subject: RFR: Fix order of Shenandoah GC phase enum In-Reply-To: <7900fdc0-96f3-d7e7-8471-07b2c2f69763@redhat.com> References: <7900fdc0-96f3-d7e7-8471-07b2c2f69763@redhat.com> Message-ID: <2e1e4c55-0003-036b-dcbe-deb0ea64bbd3@redhat.com> On 09/28/2018 03:50 PM, Zhengyu Gu wrote: > Webrev: http://cr.openjdk.java.net/~zgu/shenandoah/sh_phase_order/webrev.00/ Looks good, thanks. -Aleksey From zgu at redhat.com Fri Sep 28 13:54:18 2018 From: zgu at redhat.com (zgu at redhat.com) Date: Fri, 28 Sep 2018 13:54:18 +0000 Subject: hg: shenandoah/jdk: Fix order of Shenandoah GC phase enum Message-ID: <201809281354.w8SDsJjH023332@aojmv0008.oracle.com> Changeset: 7756fbadc938 Author: zgu Date: 2018-09-28 09:54 -0400 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/7756fbadc938 Fix order of Shenandoah GC phase enum ! src/hotspot/share/gc/shenandoah/shenandoahPhaseTimings.hpp From zgu at redhat.com Fri Sep 28 18:39:23 2018 From: zgu at redhat.com (Zhengyu Gu) Date: Fri, 28 Sep 2018 14:39:23 -0400 Subject: RFR: Renaming ShenandoahParallelEvacuationTask to ShenandoahConcurrentEvacuationTask Message-ID: <4bbb2ef2-115b-5431-7e3a-e9ba815f1853@redhat.com> Please review this trivial renaming. ShenandoahParallelEvacuationTask is used during concurrent evacuation phase, will look awkward once plugin jfr events, as it should generate concurrent event. Separating this change to individual patch to easy backport. Webrev: http://cr.openjdk.java.net/~zgu/shenandoah/rename_evac_task/webrev.00/ Test: tier2_gc_shenandoah Thanks, -Zhengyu From rkennke at redhat.com Fri Sep 28 18:41:32 2018 From: rkennke at redhat.com (Roman Kennke) Date: Fri, 28 Sep 2018 20:41:32 +0200 Subject: RFR: Renaming ShenandoahParallelEvacuationTask to ShenandoahConcurrentEvacuationTask In-Reply-To: <4bbb2ef2-115b-5431-7e3a-e9ba815f1853@redhat.com> References: <4bbb2ef2-115b-5431-7e3a-e9ba815f1853@redhat.com> Message-ID: Okidoki Am 28. September 2018 20:39:23 MESZ schrieb Zhengyu Gu : >Please review this trivial renaming. > >ShenandoahParallelEvacuationTask is used during concurrent evacuation >phase, will look awkward once plugin jfr events, as it should generate >concurrent event. > >Separating this change to individual patch to easy backport. > >Webrev: >http://cr.openjdk.java.net/~zgu/shenandoah/rename_evac_task/webrev.00/ > > >Test: > > tier2_gc_shenandoah > >Thanks, > >-Zhengyu From zgu at redhat.com Fri Sep 28 18:46:49 2018 From: zgu at redhat.com (zgu at redhat.com) Date: Fri, 28 Sep 2018 18:46:49 +0000 Subject: hg: shenandoah/jdk: Renaming ShenandoahParallelEvacuationTask to ShenandoahConcurrentEvacuationTask Message-ID: <201809281846.w8SIkool003764@aojmv0008.oracle.com> Changeset: e96f38980104 Author: zgu Date: 2018-09-28 14:46 -0400 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/e96f38980104 Renaming ShenandoahParallelEvacuationTask to ShenandoahConcurrentEvacuationTask ! src/hotspot/share/gc/shenandoah/shenandoahHeap.cpp