From shade at redhat.com Tue May 1 09:25:40 2018 From: shade at redhat.com (Aleksey Shipilev) Date: Tue, 1 May 2018 11:25:40 +0200 Subject: RFR [8]: Fix up SPARC and Zero headers for proper locations Message-ID: Missed this during backports, caught by CI that builds Zero in sh/jdk8: diff -r 2d66a174b1de src/cpu/sparc/vm/shenandoahBarrierSet_sparc.cpp --- a/src/cpu/sparc/vm/shenandoahBarrierSet_sparc.cpp Fri Apr 27 11:42:09 2018 +0200 +++ b/src/cpu/sparc/vm/shenandoahBarrierSet_sparc.cpp Tue May 01 11:24:20 2018 +0200 @@ -22,8 +22,8 @@ */ #include "precompiled.hpp" -#include "gc/shenandoah/brooksPointer.hpp" -#include "gc/shenandoah/shenandoahBarrierSet.inline.hpp" +#include "gc_implementation/shenandoah/brooksPointer.hpp" +#include "gc_implementation/shenandoah/shenandoahBarrierSet.inline.hpp" #include "asm/macroAssembler.hpp" #include "interpreter/interpreter.hpp" diff -r 2d66a174b1de src/cpu/zero/vm/shenandoahBarrierSet_zero.cpp --- a/src/cpu/zero/vm/shenandoahBarrierSet_zero.cpp Fri Apr 27 11:42:09 2018 +0200 +++ b/src/cpu/zero/vm/shenandoahBarrierSet_zero.cpp Tue May 01 11:24:20 2018 +0200 @@ -22,8 +22,8 @@ */ #include "precompiled.hpp" -#include "gc/shenandoah/brooksPointer.hpp" -#include "gc/shenandoah/shenandoahBarrierSet.inline.hpp" +#include "gc_implementation/shenandoah/brooksPointer.hpp" +#include "gc_implementation/shenandoah/shenandoahBarrierSet.inline.hpp" #include "asm/macroAssembler.hpp" #include "interpreter/interpreter.hpp" Testing: Zero build Thanks, -Aleksey From rkennke at redhat.com Wed May 2 12:12:57 2018 From: rkennke at redhat.com (Roman Kennke) Date: Wed, 2 May 2018 14:12:57 +0200 Subject: RFR: Primitive access for interpreter/x86 Message-ID: <7ec85c68-daf0-d3b9-4b2a-5d428eddde5b@redhat.com> This implements the primitive Access API in x86 template interpreter. Several things to note: - This will be upstreamed ASAP, but I wanted to give it some little time to spin in Shenandoah land. See JDK-8200623 - It does not change the access API. We can use load_at() and store_at() as is - float, double and long access cannot pass Register for src (store) or dst (load), because: - float/double would take XMMRegister instead of Register, which is not API compatible - float/double in some cases load to floating point stack, which does not use any explicit register - long does use *two* registers (rax/rdx) in 32bit land ... however, all of them use fixed registers (rax/rdx for long, xmm0 for float/double or float stack). I made the API such that for those cases we expect noreg, and assume ltos/ftos/dtos. - Shenandoah employs the correct barriers by peeking at addr.base() - Some array accesses use flattened addresses, which does not work for Shenandoah. I fixed them to use obj+offset addressing (which seems more efficient too, because no extra instructions/math required). See JDK-8202016 - 32bit long access requires to jump through some extra hoops for atomic access. I'm passing the extra decorator MO_RELAXED to decide that. - AArch64 will follow separately. Not sure what to do about other arches? Would be nice to get them all in sync. http://cr.openjdk.java.net/~rkennke/interp_primitives/webrev.00/ Passes: hotspot_gc_shenandoah Roman From shade at redhat.com Wed May 2 15:11:55 2018 From: shade at redhat.com (Aleksey Shipilev) Date: Wed, 2 May 2018 17:11:55 +0200 Subject: RFR [8]: Fix up SPARC and Zero headers for proper locations In-Reply-To: References: Message-ID: <25327be1-137e-5800-1fb7-62b7df25852f@redhat.com> Ping. -Aleksey On 05/01/2018 11:25 AM, Aleksey Shipilev wrote: > Missed this during backports, caught by CI that builds Zero in sh/jdk8: > > diff -r 2d66a174b1de src/cpu/sparc/vm/shenandoahBarrierSet_sparc.cpp > --- a/src/cpu/sparc/vm/shenandoahBarrierSet_sparc.cpp Fri Apr 27 11:42:09 2018 +0200 > +++ b/src/cpu/sparc/vm/shenandoahBarrierSet_sparc.cpp Tue May 01 11:24:20 2018 +0200 > @@ -22,8 +22,8 @@ > */ > > #include "precompiled.hpp" > -#include "gc/shenandoah/brooksPointer.hpp" > -#include "gc/shenandoah/shenandoahBarrierSet.inline.hpp" > +#include "gc_implementation/shenandoah/brooksPointer.hpp" > +#include "gc_implementation/shenandoah/shenandoahBarrierSet.inline.hpp" > > #include "asm/macroAssembler.hpp" > #include "interpreter/interpreter.hpp" > diff -r 2d66a174b1de src/cpu/zero/vm/shenandoahBarrierSet_zero.cpp > --- a/src/cpu/zero/vm/shenandoahBarrierSet_zero.cpp Fri Apr 27 11:42:09 2018 +0200 > +++ b/src/cpu/zero/vm/shenandoahBarrierSet_zero.cpp Tue May 01 11:24:20 2018 +0200 > @@ -22,8 +22,8 @@ > */ > > #include "precompiled.hpp" > -#include "gc/shenandoah/brooksPointer.hpp" > -#include "gc/shenandoah/shenandoahBarrierSet.inline.hpp" > +#include "gc_implementation/shenandoah/brooksPointer.hpp" > +#include "gc_implementation/shenandoah/shenandoahBarrierSet.inline.hpp" > > #include "asm/macroAssembler.hpp" > #include "interpreter/interpreter.hpp" > > Testing: Zero build > > Thanks, > -Aleksey > From rkennke at redhat.com Wed May 2 15:29:22 2018 From: rkennke at redhat.com (Roman Kennke) Date: Wed, 2 May 2018 17:29:22 +0200 Subject: RFR [8]: Fix up SPARC and Zero headers for proper locations In-Reply-To: <25327be1-137e-5800-1fb7-62b7df25852f@redhat.com> References: <25327be1-137e-5800-1fb7-62b7df25852f@redhat.com> Message-ID: <05f6b5a3-7ad0-13d2-0eba-3cbc1f709b50@redhat.com> Looks good. Roman > Ping. > > -Aleksey > > On 05/01/2018 11:25 AM, Aleksey Shipilev wrote: >> Missed this during backports, caught by CI that builds Zero in sh/jdk8: >> >> diff -r 2d66a174b1de src/cpu/sparc/vm/shenandoahBarrierSet_sparc.cpp >> --- a/src/cpu/sparc/vm/shenandoahBarrierSet_sparc.cpp Fri Apr 27 11:42:09 2018 +0200 >> +++ b/src/cpu/sparc/vm/shenandoahBarrierSet_sparc.cpp Tue May 01 11:24:20 2018 +0200 >> @@ -22,8 +22,8 @@ >> */ >> >> #include "precompiled.hpp" >> -#include "gc/shenandoah/brooksPointer.hpp" >> -#include "gc/shenandoah/shenandoahBarrierSet.inline.hpp" >> +#include "gc_implementation/shenandoah/brooksPointer.hpp" >> +#include "gc_implementation/shenandoah/shenandoahBarrierSet.inline.hpp" >> >> #include "asm/macroAssembler.hpp" >> #include "interpreter/interpreter.hpp" >> diff -r 2d66a174b1de src/cpu/zero/vm/shenandoahBarrierSet_zero.cpp >> --- a/src/cpu/zero/vm/shenandoahBarrierSet_zero.cpp Fri Apr 27 11:42:09 2018 +0200 >> +++ b/src/cpu/zero/vm/shenandoahBarrierSet_zero.cpp Tue May 01 11:24:20 2018 +0200 >> @@ -22,8 +22,8 @@ >> */ >> >> #include "precompiled.hpp" >> -#include "gc/shenandoah/brooksPointer.hpp" >> -#include "gc/shenandoah/shenandoahBarrierSet.inline.hpp" >> +#include "gc_implementation/shenandoah/brooksPointer.hpp" >> +#include "gc_implementation/shenandoah/shenandoahBarrierSet.inline.hpp" >> >> #include "asm/macroAssembler.hpp" >> #include "interpreter/interpreter.hpp" >> >> Testing: Zero build >> >> Thanks, >> -Aleksey >> > > From ashipile at redhat.com Wed May 2 17:00:52 2018 From: ashipile at redhat.com (ashipile at redhat.com) Date: Wed, 02 May 2018 17:00:52 +0000 Subject: hg: shenandoah/jdk8u/hotspot: Fix up SPARC and Zero headers for proper locations Message-ID: <201805021700.w42H0qoc025687@aojmv0008.oracle.com> Changeset: 5a7d64ca1765 Author: shade Date: 2018-05-01 11:24 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/hotspot/rev/5a7d64ca1765 Fix up SPARC and Zero headers for proper locations ! src/cpu/sparc/vm/shenandoahBarrierSet_sparc.cpp ! src/cpu/zero/vm/shenandoahBarrierSet_zero.cpp From shade at redhat.com Wed May 2 18:07:51 2018 From: shade at redhat.com (Aleksey Shipilev) Date: Wed, 2 May 2018 20:07:51 +0200 Subject: RFR: Shenandoah region/set iterators should not allow copying Message-ID: <0a6b2aa4-bc8e-cb24-39db-3d9f428af819@redhat.com> http://cr.openjdk.java.net/~shade/shenandoah/iterator-copy-mess/webrev.01/ We have a major performance regression like this: [7.816s][info][gc] GC(8) Pause Final Update Refs 40.418ms The cause is "Bitmap based ShHeapRegionSet" change [1] that messed up iterator copying. The handover to final-update-refs walked all the regions *again* during the pause, because the iterator was passed by value, and got index=0. I fixed both new iterators just in case. Testing: hotspot_gc_shenandoah [1] http://hg.openjdk.java.net/shenandoah/jdk/rev/a4691713454d From rkennke at redhat.com Wed May 2 18:29:15 2018 From: rkennke at redhat.com (Roman Kennke) Date: Wed, 2 May 2018 20:29:15 +0200 Subject: RFR: Shenandoah region/set iterators should not allow copying In-Reply-To: <0a6b2aa4-bc8e-cb24-39db-3d9f428af819@redhat.com> References: <0a6b2aa4-bc8e-cb24-39db-3d9f428af819@redhat.com> Message-ID: Am 02.05.2018 um 20:07 schrieb Aleksey Shipilev: > http://cr.openjdk.java.net/~shade/shenandoah/iterator-copy-mess/webrev.01/ > > We have a major performance regression like this: > > [7.816s][info][gc] GC(8) Pause Final Update Refs 40.418ms > > The cause is "Bitmap based ShHeapRegionSet" change [1] that messed up iterator copying. The handover > to final-update-refs walked all the regions *again* during the pause, because the iterator was > passed by value, and got index=0. I fixed both new iterators just in case. > > Testing: hotspot_gc_shenandoah > > [1] http://hg.openjdk.java.net/shenandoah/jdk/rev/a4691713454d > Ok. Roman From ashipile at redhat.com Wed May 2 19:42:29 2018 From: ashipile at redhat.com (ashipile at redhat.com) Date: Wed, 02 May 2018 19:42:29 +0000 Subject: hg: shenandoah/jdk: Shenandoah region/set iterators should not allow copying Message-ID: <201805021942.w42JgTZc014859@aojmv0008.oracle.com> Changeset: 20f6d65431ec Author: shade Date: 2018-05-02 21:42 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/20f6d65431ec Shenandoah region/set iterators should not allow copying ! src/hotspot/share/gc/shenandoah/shenandoahHeap.cpp ! src/hotspot/share/gc/shenandoah/shenandoahHeap.hpp ! src/hotspot/share/gc/shenandoah/shenandoahHeapRegionSet.cpp ! src/hotspot/share/gc/shenandoah/shenandoahHeapRegionSet.hpp ! src/hotspot/share/gc/shenandoah/shenandoahMarkCompact.cpp ! src/hotspot/share/gc/shenandoah/shenandoahTraversalGC.cpp From shade at redhat.com Thu May 3 09:03:58 2018 From: shade at redhat.com (Aleksey Shipilev) Date: Thu, 3 May 2018 11:03:58 +0200 Subject: RFR: Primitive access for interpreter/x86 In-Reply-To: <7ec85c68-daf0-d3b9-4b2a-5d428eddde5b@redhat.com> References: <7ec85c68-daf0-d3b9-4b2a-5d428eddde5b@redhat.com> Message-ID: <9177ae18-5772-2069-59a5-c5f73663103a@redhat.com> On 05/02/2018 02:12 PM, Roman Kennke wrote: > http://cr.openjdk.java.net/~rkennke/interp_primitives/webrev.00/ *) Indent breaks: 61 case T_BOOLEAN: __ load_unsigned_byte(dst, src); break; 62 case T_BYTE: __ load_signed_byte(dst, src); break; 63 case T_CHAR: __ load_unsigned_short(dst, src); break; 64 case T_SHORT: __ load_signed_short(dst, src); break; 65 case T_INT: __ movl (dst, src); break; 66 case T_ADDRESS: __ movptr(dst, src); break; *) It looks like {c|i|d|f}aloads are missing IN_HEAP_ARRAY decorators *) The uncommented RB in ShenandoahBarrierSetAssembler::load_at -- had we missed it before? If so, should it be done separately to land in sh/jdk10 too? *) Ditto for uncommented WB in ShenandoahBarrierSetAssembler::store_at? Thanks, -Aleksey From shade at redhat.com Thu May 3 09:09:33 2018 From: shade at redhat.com (Aleksey Shipilev) Date: Thu, 3 May 2018 11:09:33 +0200 Subject: RFR: Set ShenandoahMinFreeThreshold default to 10% Message-ID: <1e98e010-e1c6-6189-0905-6169063695f4@redhat.com> Our adopters report again that the default adaptive threshold of 3% is uncomfortably low to avoid problems under allocation spikes. We have recommended at least two adopters to set it to 10%, and it seems work for them fine. Let's make that the real default: diff -r 20f6d65431ec src/hotspot/share/gc/shenandoah/shenandoah_globals.hpp --- a/src/hotspot/share/gc/shenandoah/shenandoah_globals.hpp Wed May 02 21:42:13 2018 +0200 +++ b/src/hotspot/share/gc/shenandoah/shenandoah_globals.hpp Thu May 03 11:05:19 2018 +0200 @@ -167,7 +167,7 @@ "Initial remaining free threshold for adaptive heuristics") \ range(0,100) \ \ - experimental(uintx, ShenandoahMinFreeThreshold, 3, \ + experimental(uintx, ShenandoahMinFreeThreshold, 10, \ "Minimum remaining free threshold for adaptive heuristics") \ range(0,100) \ \ In my performance runs, it does not regress performance, unless we are dealing with very tight heaps. Testing: hotspot_gc_shenandoah, benchmarks Thanks, -Aleksey From rkennke at redhat.com Thu May 3 10:08:51 2018 From: rkennke at redhat.com (Roman Kennke) Date: Thu, 3 May 2018 12:08:51 +0200 Subject: RFR: Set ShenandoahMinFreeThreshold default to 10% In-Reply-To: <1e98e010-e1c6-6189-0905-6169063695f4@redhat.com> References: <1e98e010-e1c6-6189-0905-6169063695f4@redhat.com> Message-ID: Am 03.05.2018 um 11:09 schrieb Aleksey Shipilev: > Our adopters report again that the default adaptive threshold of 3% is uncomfortably low to avoid > problems under allocation spikes. We have recommended at least two adopters to set it to 10%, and it > seems work for them fine. > > Let's make that the real default: > > diff -r 20f6d65431ec src/hotspot/share/gc/shenandoah/shenandoah_globals.hpp > --- a/src/hotspot/share/gc/shenandoah/shenandoah_globals.hpp Wed May 02 21:42:13 2018 +0200 > +++ b/src/hotspot/share/gc/shenandoah/shenandoah_globals.hpp Thu May 03 11:05:19 2018 +0200 > @@ -167,7 +167,7 @@ > "Initial remaining free threshold for adaptive heuristics") \ > range(0,100) \ > \ > - experimental(uintx, ShenandoahMinFreeThreshold, 3, \ > + experimental(uintx, ShenandoahMinFreeThreshold, 10, \ > "Minimum remaining free threshold for adaptive heuristics") \ > range(0,100) \ > \ > > In my performance runs, it does not regress performance, unless we are dealing with very tight heaps. > > Testing: hotspot_gc_shenandoah, benchmarks > > Thanks, > -Aleksey > Seems reasonable. Thanks. Roman From ashipile at redhat.com Thu May 3 10:25:24 2018 From: ashipile at redhat.com (ashipile at redhat.com) Date: Thu, 03 May 2018 10:25:24 +0000 Subject: hg: shenandoah/jdk: Set ShenandoahMinFreeThreshold default to 10% Message-ID: <201805031025.w43APOBr018245@aojmv0008.oracle.com> Changeset: f487f6cde0e6 Author: shade Date: 2018-05-03 11:05 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/f487f6cde0e6 Set ShenandoahMinFreeThreshold default to 10% ! src/hotspot/share/gc/shenandoah/shenandoah_globals.hpp From shade at redhat.com Thu May 3 12:43:52 2018 From: shade at redhat.com (Aleksey Shipilev) Date: Thu, 3 May 2018 14:43:52 +0200 Subject: RFR [10]: Bulk backports to sh/jdk10 Message-ID: <00065743-7636-1bbb-6d61-9c48870ea1a3@redhat.com> http://cr.openjdk.java.net/~shade/shenandoah/backports/jdk10-20180503/webrev.01/ This backports recent performance-critical bugfixes to sh/jdk10: [backport] Shenandoah region/set iterators should not allow copying [backport] Set ShenandoahMinFreeThreshold default to 10% Testing: hotspot_gc_shenandoah {fastdebug|release} Thanks, -Aleksey From shade at redhat.com Thu May 3 12:44:00 2018 From: shade at redhat.com (Aleksey Shipilev) Date: Thu, 3 May 2018 14:44:00 +0200 Subject: RFR [9]: Bulk backports to sh/jdk9 Message-ID: <7e631073-389d-e30e-a1fb-0f0fc9a563f7@redhat.com> http://cr.openjdk.java.net/~shade/shenandoah/backports/jdk9-20180503/webrev.01/ This backports recent performance-critical bugfixes to sh/jdk9: [backport] Shenandoah region/set iterators should not allow copying [backport] Set ShenandoahMinFreeThreshold default to 10% Testing: hotspot_gc_shenandoah {fastdebug|release} Thanks, -Aleksey From shade at redhat.com Thu May 3 12:44:07 2018 From: shade at redhat.com (Aleksey Shipilev) Date: Thu, 3 May 2018 14:44:07 +0200 Subject: RFR [8u]: Bulk backports to sh/jdk8u Message-ID: <79bbe2c5-cf40-af45-c310-28d1ea29adf7@redhat.com> http://cr.openjdk.java.net/~shade/shenandoah/backports/jdk8u-20180503/webrev.01/ This backports recent performance-critical bugfixes to sh/jdk8u: [backport] Shenandoah region/set iterators should not allow copying [backport] Set ShenandoahMinFreeThreshold default to 10% Testing: hotspot_gc_shenandoah {fastdebug|release} Thanks, -Aleksey From zgu at redhat.com Thu May 3 13:46:31 2018 From: zgu at redhat.com (Zhengyu Gu) Date: Thu, 3 May 2018 09:46:31 -0400 Subject: RFR [10]: Bulk backports to sh/jdk10 In-Reply-To: <00065743-7636-1bbb-6d61-9c48870ea1a3@redhat.com> References: <00065743-7636-1bbb-6d61-9c48870ea1a3@redhat.com> Message-ID: Good to me. -Zhengyu On 05/03/2018 08:43 AM, Aleksey Shipilev wrote: > http://cr.openjdk.java.net/~shade/shenandoah/backports/jdk10-20180503/webrev.01/ > > This backports recent performance-critical bugfixes to sh/jdk10: > > [backport] Shenandoah region/set iterators should not allow copying > [backport] Set ShenandoahMinFreeThreshold default to 10% > > Testing: hotspot_gc_shenandoah {fastdebug|release} > > Thanks, > -Aleksey > From zgu at redhat.com Thu May 3 13:47:00 2018 From: zgu at redhat.com (Zhengyu Gu) Date: Thu, 3 May 2018 09:47:00 -0400 Subject: RFR [9]: Bulk backports to sh/jdk9 In-Reply-To: <7e631073-389d-e30e-a1fb-0f0fc9a563f7@redhat.com> References: <7e631073-389d-e30e-a1fb-0f0fc9a563f7@redhat.com> Message-ID: <70239a55-187b-d0df-637a-f84fe6a314f6@redhat.com> Good. -Zhengyu On 05/03/2018 08:44 AM, Aleksey Shipilev wrote: > http://cr.openjdk.java.net/~shade/shenandoah/backports/jdk9-20180503/webrev.01/ > > This backports recent performance-critical bugfixes to sh/jdk9: > > [backport] Shenandoah region/set iterators should not allow copying > [backport] Set ShenandoahMinFreeThreshold default to 10% > > Testing: hotspot_gc_shenandoah {fastdebug|release} > > Thanks, > -Aleksey > From zgu at redhat.com Thu May 3 13:48:12 2018 From: zgu at redhat.com (Zhengyu Gu) Date: Thu, 3 May 2018 09:48:12 -0400 Subject: RFR [8u]: Bulk backports to sh/jdk8u In-Reply-To: <79bbe2c5-cf40-af45-c310-28d1ea29adf7@redhat.com> References: <79bbe2c5-cf40-af45-c310-28d1ea29adf7@redhat.com> Message-ID: <8fd967c0-0386-ad25-17c9-b5d510fb7fd5@redhat.com> Good. -Zhengyu On 05/03/2018 08:44 AM, Aleksey Shipilev wrote: > http://cr.openjdk.java.net/~shade/shenandoah/backports/jdk8u-20180503/webrev.01/ > > This backports recent performance-critical bugfixes to sh/jdk8u: > > [backport] Shenandoah region/set iterators should not allow copying > [backport] Set ShenandoahMinFreeThreshold default to 10% > > Testing: hotspot_gc_shenandoah {fastdebug|release} > > Thanks, > -Aleksey > From ashipile at redhat.com Thu May 3 14:29:44 2018 From: ashipile at redhat.com (ashipile at redhat.com) Date: Thu, 03 May 2018 14:29:44 +0000 Subject: hg: shenandoah/jdk10: 2 new changesets Message-ID: <201805031429.w43ETiUr018365@aojmv0008.oracle.com> Changeset: 24c07a252840 Author: shade Date: 2018-05-02 21:42 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk10/rev/24c07a252840 [backport] Shenandoah region/set iterators should not allow copying ! src/hotspot/share/gc/shenandoah/shenandoahHeap.cpp ! src/hotspot/share/gc/shenandoah/shenandoahHeap.hpp ! src/hotspot/share/gc/shenandoah/shenandoahHeapRegionSet.cpp ! src/hotspot/share/gc/shenandoah/shenandoahHeapRegionSet.hpp ! src/hotspot/share/gc/shenandoah/shenandoahMarkCompact.cpp ! src/hotspot/share/gc/shenandoah/shenandoahTraversalGC.cpp Changeset: 10e06f07d629 Author: shade Date: 2018-05-03 11:22 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk10/rev/10e06f07d629 [backport] Set ShenandoahMinFreeThreshold default to 10% ! src/hotspot/share/gc/shenandoah/shenandoah_globals.hpp From ashipile at redhat.com Thu May 3 14:30:08 2018 From: ashipile at redhat.com (ashipile at redhat.com) Date: Thu, 03 May 2018 14:30:08 +0000 Subject: hg: shenandoah/jdk9/hotspot: 2 new changesets Message-ID: <201805031430.w43EU9qa018576@aojmv0008.oracle.com> Changeset: b47b69066903 Author: shade Date: 2018-05-02 21:42 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk9/hotspot/rev/b47b69066903 [backport] Shenandoah region/set iterators should not allow copying ! src/share/vm/gc/shenandoah/shenandoahHeap.cpp ! src/share/vm/gc/shenandoah/shenandoahHeap.hpp ! src/share/vm/gc/shenandoah/shenandoahHeapRegionSet.cpp ! src/share/vm/gc/shenandoah/shenandoahHeapRegionSet.hpp ! src/share/vm/gc/shenandoah/shenandoahMarkCompact.cpp Changeset: 82415e2b3b0f Author: shade Date: 2018-05-03 13:27 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk9/hotspot/rev/82415e2b3b0f [backport] Set ShenandoahMinFreeThreshold default to 10% ! src/share/vm/gc/shenandoah/shenandoah_globals.hpp From ashipile at redhat.com Thu May 3 14:30:28 2018 From: ashipile at redhat.com (ashipile at redhat.com) Date: Thu, 03 May 2018 14:30:28 +0000 Subject: hg: shenandoah/jdk8u/hotspot: 2 new changesets Message-ID: <201805031430.w43EUS5G018848@aojmv0008.oracle.com> Changeset: cc1f986e880f Author: shade Date: 2018-05-02 21:42 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/hotspot/rev/cc1f986e880f [backport] Shenandoah region/set iterators should not allow copying ! src/share/vm/gc_implementation/shenandoah/shenandoahHeap.cpp ! src/share/vm/gc_implementation/shenandoah/shenandoahHeap.hpp ! src/share/vm/gc_implementation/shenandoah/shenandoahHeapRegionSet.cpp ! src/share/vm/gc_implementation/shenandoah/shenandoahHeapRegionSet.hpp ! src/share/vm/gc_implementation/shenandoah/shenandoahMarkCompact.cpp Changeset: 9f217770c77d Author: shade Date: 2018-05-03 13:39 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/hotspot/rev/9f217770c77d [backport] Set ShenandoahMinFreeThreshold default to 10% ! src/share/vm/gc_implementation/shenandoah/shenandoah_globals.hpp From rkennke at redhat.com Thu May 3 19:31:38 2018 From: rkennke at redhat.com (Roman Kennke) Date: Thu, 3 May 2018 21:31:38 +0200 Subject: RFR: Primitive access for interpreter/x86 In-Reply-To: <9177ae18-5772-2069-59a5-c5f73663103a@redhat.com> References: <7ec85c68-daf0-d3b9-4b2a-5d428eddde5b@redhat.com> <9177ae18-5772-2069-59a5-c5f73663103a@redhat.com> Message-ID: <74cec787-5389-7304-695e-ff602aaaa3d1@redhat.com> Hi Aleksey, Thanks for reviewing! >> http://cr.openjdk.java.net/~rkennke/interp_primitives/webrev.00/ > > *) Indent breaks: > > 61 case T_BOOLEAN: __ load_unsigned_byte(dst, src); break; > 62 case T_BYTE: __ load_signed_byte(dst, src); break; > 63 case T_CHAR: __ load_unsigned_short(dst, src); break; > 64 case T_SHORT: __ load_signed_short(dst, src); break; > 65 case T_INT: __ movl (dst, src); break; > 66 case T_ADDRESS: __ movptr(dst, src); break; Ok, fixed. > *) It looks like {c|i|d|f}aloads are missing IN_HEAP_ARRAY decorators Right. Added them. Also to the Xastore variants. > *) The uncommented RB in ShenandoahBarrierSetAssembler::load_at -- had we missed it before? If so, > should it be done separately to land in sh/jdk10 too? > > *) Ditto for uncommented WB in ShenandoahBarrierSetAssembler::store_at? It was uncommented before because it was waiting for this patch :-) There was also some commented-out debug code that I removed now. I forgot to mention it before, but this patch also fixes a missing RB in methodHandles_x86.cpp via load_heap_oop(). I shall propose this separately for backporting. Roman From shade at redhat.com Thu May 3 19:34:20 2018 From: shade at redhat.com (Aleksey Shipilev) Date: Thu, 3 May 2018 21:34:20 +0200 Subject: RFR: Primitive access for interpreter/x86 In-Reply-To: <74cec787-5389-7304-695e-ff602aaaa3d1@redhat.com> References: <7ec85c68-daf0-d3b9-4b2a-5d428eddde5b@redhat.com> <9177ae18-5772-2069-59a5-c5f73663103a@redhat.com> <74cec787-5389-7304-695e-ff602aaaa3d1@redhat.com> Message-ID: On 05/03/2018 09:31 PM, Roman Kennke wrote: >>> http://cr.openjdk.java.net/~rkennke/interp_primitives/webrev.00/ >> >> *) Indent breaks: >> >> 61 case T_BOOLEAN: __ load_unsigned_byte(dst, src); break; >> 62 case T_BYTE: __ load_signed_byte(dst, src); break; >> 63 case T_CHAR: __ load_unsigned_short(dst, src); break; >> 64 case T_SHORT: __ load_signed_short(dst, src); break; >> 65 case T_INT: __ movl (dst, src); break; >> 66 case T_ADDRESS: __ movptr(dst, src); break; > > Ok, fixed. > >> *) It looks like {c|i|d|f}aloads are missing IN_HEAP_ARRAY decorators > > Right. Added them. Also to the Xastore variants. > >> *) The uncommented RB in ShenandoahBarrierSetAssembler::load_at -- had we missed it before? If so, >> should it be done separately to land in sh/jdk10 too? >> >> *) Ditto for uncommented WB in ShenandoahBarrierSetAssembler::store_at? > > It was uncommented before because it was waiting for this patch :-) > There was also some commented-out debug code that I removed now. Ah. So resolve_* did RBs before, right? Okay then. > I forgot to mention it before, but this patch also fixes a missing RB in > methodHandles_x86.cpp via load_heap_oop(). I shall propose this > separately for backporting. Yes, please do. -Aleksey From rkennke at redhat.com Thu May 3 19:42:49 2018 From: rkennke at redhat.com (Roman Kennke) Date: Thu, 3 May 2018 21:42:49 +0200 Subject: RFR: Primitive access for interpreter/x86 In-Reply-To: References: <7ec85c68-daf0-d3b9-4b2a-5d428eddde5b@redhat.com> <9177ae18-5772-2069-59a5-c5f73663103a@redhat.com> <74cec787-5389-7304-695e-ff602aaaa3d1@redhat.com> Message-ID: <1596434f-889f-7ecd-bf97-754ec8e4cff2@redhat.com> Am 03.05.2018 um 21:34 schrieb Aleksey Shipilev: > On 05/03/2018 09:31 PM, Roman Kennke wrote: >>>> http://cr.openjdk.java.net/~rkennke/interp_primitives/webrev.00/ >>> >>> *) Indent breaks: >>> >>> 61 case T_BOOLEAN: __ load_unsigned_byte(dst, src); break; >>> 62 case T_BYTE: __ load_signed_byte(dst, src); break; >>> 63 case T_CHAR: __ load_unsigned_short(dst, src); break; >>> 64 case T_SHORT: __ load_signed_short(dst, src); break; >>> 65 case T_INT: __ movl (dst, src); break; >>> 66 case T_ADDRESS: __ movptr(dst, src); break; >> >> Ok, fixed. >> >>> *) It looks like {c|i|d|f}aloads are missing IN_HEAP_ARRAY decorators >> >> Right. Added them. Also to the Xastore variants. >> >>> *) The uncommented RB in ShenandoahBarrierSetAssembler::load_at -- had we missed it before? If so, >>> should it be done separately to land in sh/jdk10 too? >>> >>> *) Ditto for uncommented WB in ShenandoahBarrierSetAssembler::store_at? >> >> It was uncommented before because it was waiting for this patch :-) >> There was also some commented-out debug code that I removed now. > > Ah. So resolve_* did RBs before, right? Correct. Now all those explicit barriers are gone and folded into the general access calls. Except for a few places where we really need explicit barriers (monitorenter/exit and some intrinsics code). > Okay then. I forgot to post the actual webrevs: Diff: http://cr.openjdk.java.net/~rkennke/interp_primitives/webrev.01.diff/ Full: http://cr.openjdk.java.net/~rkennke/interp_primitives/webrev.01/ >> I forgot to mention it before, but this patch also fixes a missing RB in >> methodHandles_x86.cpp via load_heap_oop(). I shall propose this >> separately for backporting. > > Yes, please do. I need to check this carefully. When working on it, it did look like missing barrier, but now it doesn't look like it ;-) It's hard to reason about it when the accesses are disconnected from the actual barrier and located many lines away. The new code makes this much better/easier. Roman From rkennke at redhat.com Thu May 3 19:42:56 2018 From: rkennke at redhat.com (Roman Kennke) Date: Thu, 3 May 2018 21:42:56 +0200 Subject: RFR: Primitive access for interpreter/x86 In-Reply-To: References: <7ec85c68-daf0-d3b9-4b2a-5d428eddde5b@redhat.com> <9177ae18-5772-2069-59a5-c5f73663103a@redhat.com> <74cec787-5389-7304-695e-ff602aaaa3d1@redhat.com> Message-ID: <1ac8d376-0ad3-436a-a4ac-0fb0ecd33dcd@redhat.com> Am 03.05.2018 um 21:34 schrieb Aleksey Shipilev: > On 05/03/2018 09:31 PM, Roman Kennke wrote: >>>> http://cr.openjdk.java.net/~rkennke/interp_primitives/webrev.00/ >>> >>> *) Indent breaks: >>> >>> 61 case T_BOOLEAN: __ load_unsigned_byte(dst, src); break; >>> 62 case T_BYTE: __ load_signed_byte(dst, src); break; >>> 63 case T_CHAR: __ load_unsigned_short(dst, src); break; >>> 64 case T_SHORT: __ load_signed_short(dst, src); break; >>> 65 case T_INT: __ movl (dst, src); break; >>> 66 case T_ADDRESS: __ movptr(dst, src); break; >> >> Ok, fixed. >> >>> *) It looks like {c|i|d|f}aloads are missing IN_HEAP_ARRAY decorators >> >> Right. Added them. Also to the Xastore variants. >> >>> *) The uncommented RB in ShenandoahBarrierSetAssembler::load_at -- had we missed it before? If so, >>> should it be done separately to land in sh/jdk10 too? >>> >>> *) Ditto for uncommented WB in ShenandoahBarrierSetAssembler::store_at? >> >> It was uncommented before because it was waiting for this patch :-) >> There was also some commented-out debug code that I removed now. > > Ah. So resolve_* did RBs before, right? Correct. Now all those explicit barriers are gone and folded into the general access calls. Except for a few places where we really need explicit barriers (monitorenter/exit and some intrinsics code). > Okay then. I forgot to post the actual webrevs: Diff: http://cr.openjdk.java.net/~rkennke/interp_primitives/webrev.01.diff/ Full: http://cr.openjdk.java.net/~rkennke/interp_primitives/webrev.01/ >> I forgot to mention it before, but this patch also fixes a missing RB in >> methodHandles_x86.cpp via load_heap_oop(). I shall propose this >> separately for backporting. > > Yes, please do. I need to check this carefully. When working on it, it did look like missing barrier, but now it doesn't look like it ;-) It's hard to reason about it when the accesses are disconnected from the actual barrier and located many lines away. The new code makes this much better/easier. Roman From shade at redhat.com Thu May 3 20:02:02 2018 From: shade at redhat.com (Aleksey Shipilev) Date: Thu, 3 May 2018 22:02:02 +0200 Subject: RFR: Primitive access for interpreter/x86 In-Reply-To: <1ac8d376-0ad3-436a-a4ac-0fb0ecd33dcd@redhat.com> References: <7ec85c68-daf0-d3b9-4b2a-5d428eddde5b@redhat.com> <9177ae18-5772-2069-59a5-c5f73663103a@redhat.com> <74cec787-5389-7304-695e-ff602aaaa3d1@redhat.com> <1ac8d376-0ad3-436a-a4ac-0fb0ecd33dcd@redhat.com> Message-ID: On 05/03/2018 09:42 PM, Roman Kennke wrote: > Diff: > http://cr.openjdk.java.net/~rkennke/interp_primitives/webrev.01.diff/ > Full: > http://cr.openjdk.java.net/~rkennke/interp_primitives/webrev.01/ Looks OK. -Aleksey From roman at kennke.org Thu May 3 20:04:59 2018 From: roman at kennke.org (roman at kennke.org) Date: Thu, 03 May 2018 20:04:59 +0000 Subject: hg: shenandoah/jdk: Primitive access for interpreter/x86 Message-ID: <201805032004.w43K4xgE024584@aojmv0008.oracle.com> Changeset: a690e66bdced Author: rkennke Date: 2018-05-03 22:04 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/a690e66bdced Primitive access for interpreter/x86 ! src/hotspot/cpu/x86/gc/shared/barrierSetAssembler_x86.cpp ! src/hotspot/cpu/x86/gc/shenandoah/shenandoahBarrierSetAssembler_x86.cpp ! src/hotspot/cpu/x86/interp_masm_x86.cpp ! src/hotspot/cpu/x86/jniFastGetField_x86_64.cpp ! src/hotspot/cpu/x86/macroAssembler_x86.cpp ! src/hotspot/cpu/x86/methodHandles_x86.cpp ! src/hotspot/cpu/x86/sharedRuntime_x86_64.cpp ! src/hotspot/cpu/x86/templateInterpreterGenerator_x86.cpp ! src/hotspot/cpu/x86/templateTable_x86.cpp From rkennke at redhat.com Fri May 4 13:29:19 2018 From: rkennke at redhat.com (Roman Kennke) Date: Fri, 4 May 2018 15:29:19 +0200 Subject: RFR: Several small aarch64 fixes Message-ID: While poking around aarch64 interpreter code for the primitives stuff, I discovered some things that should be fixed separately: http://cr.openjdk.java.net/~rkennke/aarch64-fixes/webrev.00/ It doesn't make testing clean yet, but it's a big step forward. Roman From shade at redhat.com Fri May 4 13:32:23 2018 From: shade at redhat.com (Aleksey Shipilev) Date: Fri, 4 May 2018 15:32:23 +0200 Subject: RFR: Several small aarch64 fixes In-Reply-To: References: Message-ID: On 05/04/2018 03:29 PM, Roman Kennke wrote: > While poking around aarch64 interpreter code for the primitives stuff, I > discovered some things that should be fixed separately: > > http://cr.openjdk.java.net/~rkennke/aarch64-fixes/webrev.00/ This does not look correct for a SATB barrier. Did you mean "MARKING | TRAVERSAL"? 1141 __ mov(rscratch2, ShenandoahHeap::EVACUATION | ShenandoahHeap::TRAVERSAL); 1142 __ tst(rscratch1, rscratch2); 1143 __ br(Assembler::EQ, done); Otherwise good. Thanks, -Aleksey From rkennke at redhat.com Fri May 4 13:36:26 2018 From: rkennke at redhat.com (Roman Kennke) Date: Fri, 4 May 2018 15:36:26 +0200 Subject: RFR: Several small aarch64 fixes In-Reply-To: References: Message-ID: Am 04.05.2018 um 15:32 schrieb Aleksey Shipilev: > On 05/04/2018 03:29 PM, Roman Kennke wrote: >> While poking around aarch64 interpreter code for the primitives stuff, I >> discovered some things that should be fixed separately: >> >> http://cr.openjdk.java.net/~rkennke/aarch64-fixes/webrev.00/ > > This does not look correct for a SATB barrier. Did you mean "MARKING | TRAVERSAL"? > > 1141 __ mov(rscratch2, ShenandoahHeap::EVACUATION | ShenandoahHeap::TRAVERSAL); > 1142 __ tst(rscratch1, rscratch2); > 1143 __ br(Assembler::EQ, done); > > Otherwise good. > > Thanks, > -Aleksey > Gaa! Of course! Diff: http://cr.openjdk.java.net/~rkennke/aarch64-fixes/webrev.01.diff/ Full: http://cr.openjdk.java.net/~rkennke/aarch64-fixes/webrev.01/ Ok? Roman From shade at redhat.com Fri May 4 13:39:03 2018 From: shade at redhat.com (Aleksey Shipilev) Date: Fri, 4 May 2018 15:39:03 +0200 Subject: RFR: Several small aarch64 fixes In-Reply-To: References: Message-ID: <48ae665c-babc-8552-dd51-64e9c2843cf7@redhat.com> On 05/04/2018 03:36 PM, Roman Kennke wrote: > Am 04.05.2018 um 15:32 schrieb Aleksey Shipilev: >> On 05/04/2018 03:29 PM, Roman Kennke wrote: >>> While poking around aarch64 interpreter code for the primitives stuff, I >>> discovered some things that should be fixed separately: >>> >>> http://cr.openjdk.java.net/~rkennke/aarch64-fixes/webrev.00/ >> >> This does not look correct for a SATB barrier. Did you mean "MARKING | TRAVERSAL"? >> >> 1141 __ mov(rscratch2, ShenandoahHeap::EVACUATION | ShenandoahHeap::TRAVERSAL); >> 1142 __ tst(rscratch1, rscratch2); >> 1143 __ br(Assembler::EQ, done); >> >> Otherwise good. >> >> Thanks, >> -Aleksey >> > > Gaa! Of course! > > Diff: > http://cr.openjdk.java.net/~rkennke/aarch64-fixes/webrev.01.diff/ > Full: > http://cr.openjdk.java.net/~rkennke/aarch64-fixes/webrev.01/ Should probably also be "tmp", not "rscratch1" at L1142: 1140 __ ldrb(tmp, gc_state); 1141 __ mov(rscratch2, ShenandoahHeap::MARKING | ShenandoahHeap::TRAVERSAL); 1142 __ tst(rscratch1, rscratch2); 1143 __ br(Assembler::EQ, done); Otherwise good. -Aleksey From rkennke at redhat.com Fri May 4 13:43:48 2018 From: rkennke at redhat.com (Roman Kennke) Date: Fri, 4 May 2018 15:43:48 +0200 Subject: RFR: Several small aarch64 fixes In-Reply-To: <48ae665c-babc-8552-dd51-64e9c2843cf7@redhat.com> References: <48ae665c-babc-8552-dd51-64e9c2843cf7@redhat.com> Message-ID: Am 04.05.2018 um 15:39 schrieb Aleksey Shipilev: > On 05/04/2018 03:36 PM, Roman Kennke wrote: >> Am 04.05.2018 um 15:32 schrieb Aleksey Shipilev: >>> On 05/04/2018 03:29 PM, Roman Kennke wrote: >>>> While poking around aarch64 interpreter code for the primitives stuff, I >>>> discovered some things that should be fixed separately: >>>> >>>> http://cr.openjdk.java.net/~rkennke/aarch64-fixes/webrev.00/ >>> >>> This does not look correct for a SATB barrier. Did you mean "MARKING | TRAVERSAL"? >>> >>> 1141 __ mov(rscratch2, ShenandoahHeap::EVACUATION | ShenandoahHeap::TRAVERSAL); >>> 1142 __ tst(rscratch1, rscratch2); >>> 1143 __ br(Assembler::EQ, done); >>> >>> Otherwise good. >>> >>> Thanks, >>> -Aleksey >>> >> >> Gaa! Of course! >> >> Diff: >> http://cr.openjdk.java.net/~rkennke/aarch64-fixes/webrev.01.diff/ >> Full: >> http://cr.openjdk.java.net/~rkennke/aarch64-fixes/webrev.01/ > > Should probably also be "tmp", not "rscratch1" at L1142: > > 1140 __ ldrb(tmp, gc_state); > 1141 __ mov(rscratch2, ShenandoahHeap::MARKING | ShenandoahHeap::TRAVERSAL); > 1142 __ tst(rscratch1, rscratch2); > 1143 __ br(Assembler::EQ, done); > > Otherwise good. It's clearly Friday and aarch64 assembler ate my brains. Diff: http://cr.openjdk.java.net/~rkennke/aarch64-fixes/webrev.02.diff/ Full: http://cr.openjdk.java.net/~rkennke/aarch64-fixes/webrev.02/ Good? From shade at redhat.com Fri May 4 13:45:03 2018 From: shade at redhat.com (Aleksey Shipilev) Date: Fri, 4 May 2018 15:45:03 +0200 Subject: RFR: Several small aarch64 fixes In-Reply-To: References: <48ae665c-babc-8552-dd51-64e9c2843cf7@redhat.com> Message-ID: On 05/04/2018 03:43 PM, Roman Kennke wrote: > It's clearly Friday and aarch64 assembler ate my brains. > > Diff: > http://cr.openjdk.java.net/~rkennke/aarch64-fixes/webrev.02.diff/ > Full: > http://cr.openjdk.java.net/~rkennke/aarch64-fixes/webrev.02/ > > Good? Yup, good! -Aleksey From roman at kennke.org Fri May 4 14:03:10 2018 From: roman at kennke.org (roman at kennke.org) Date: Fri, 04 May 2018 14:03:10 +0000 Subject: hg: shenandoah/jdk: Several small aarch64 fixes Message-ID: <201805041403.w44E3AUo026804@aojmv0008.oracle.com> Changeset: b945d15c23f4 Author: rkennke Date: 2018-05-04 09:45 -0400 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/b945d15c23f4 Several small aarch64 fixes ! src/hotspot/cpu/aarch64/c1_Runtime1_aarch64.cpp ! src/hotspot/cpu/aarch64/stubGenerator_aarch64.cpp From rkennke at redhat.com Fri May 4 14:17:53 2018 From: rkennke at redhat.com (Roman Kennke) Date: Fri, 4 May 2018 16:17:53 +0200 Subject: RFR: Primitive access for interpreter/aarch64 Message-ID: This implements the BS interface for aarch64. Some notes: - AArch64 cannot do base+index+disp addressing. Array element addresses are precomputed as (base+index) + disp. I changed that to base + (index+disp) to preserve the base oop, which we need for the barriers. - jniFastGetField uses a address dependency trick to keep the field load and the safepoint-counter load in order. However, with access API this doesn't work for float because it needs to load into v0, not into intermediate r0. I insert a LoadLoad membar in float and double cases instead, which is heavier but should be rare. - code in macroAssembler has been reshuffled to match x86 more closely. In particular, load_heap_oop() / store_heap_oop() now call through the BS API, and not the other way around. http://cr.openjdk.java.net/~rkennke/interp_primitives_aarch64/webrev.00/ Testing is unstable. Looks about as unclean as it has been before the change (need to check if late-minute changes to 'simple aarch64 fixes' actually made them green). Ok? Roman From zgu at redhat.com Fri May 4 16:35:14 2018 From: zgu at redhat.com (Zhengyu Gu) Date: Fri, 4 May 2018 12:35:14 -0400 Subject: Shenandoah critical native tests should only be ran on x86_64 platforms Message-ID: Shenandoah critical native support is only implemented for x86_64, so only corresponding tests should only be ran on those platform. Webrev: http://cr.openjdk.java.net/~zgu/shenandoah/critical-native-tests/webrev.00/ Test: Two critical native tests on Linux x64 Thanks, -Zhengyu From rkennke at redhat.com Fri May 4 16:36:41 2018 From: rkennke at redhat.com (Roman Kennke) Date: Fri, 4 May 2018 18:36:41 +0200 Subject: Shenandoah critical native tests should only be ran on x86_64 platforms In-Reply-To: References: Message-ID: Am 04.05.2018 um 18:35 schrieb Zhengyu Gu: > Shenandoah critical native support is only implemented for x86_64, so > only corresponding tests should only be ran on those platform. > > Webrev: > http://cr.openjdk.java.net/~zgu/shenandoah/critical-native-tests/webrev.00/ > > Test: > ? Two critical native tests on Linux x64 > > > Thanks, > > -Zhengyu Yes, please. Thanks! Roman From zgu at redhat.com Fri May 4 16:38:35 2018 From: zgu at redhat.com (zgu at redhat.com) Date: Fri, 04 May 2018 16:38:35 +0000 Subject: hg: shenandoah/jdk: Critical native tests should only be ran on x86_64 platforms Message-ID: <201805041638.w44Gcaq6018042@aojmv0008.oracle.com> Changeset: 2c7675fb1dba Author: zgu Date: 2018-05-04 12:38 -0400 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/2c7675fb1dba Critical native tests should only be ran on x86_64 platforms ! test/hotspot/jtreg/gc/shenandoah/CriticalNativeArgs.java ! test/hotspot/jtreg/gc/shenandoah/CriticalNativeStress.java From rkennke at redhat.com Fri May 4 21:23:14 2018 From: rkennke at redhat.com (Roman Kennke) Date: Fri, 4 May 2018 23:23:14 +0200 Subject: RFR: AArch64: Fix endless loop / stack-corruption Message-ID: <65dd0292-4055-fabf-5158-41c2db268ff3@redhat.com> In aarch64's TemplateInterpreterGenerator::generate_Reference_get_entry(void), there used to be enter()/leave() calls around the g1 pre-barrier. This is necessary in case the barrier calls into the runtime, to setup/remove stack frames for the call. With the interpreter BarrierSetAssembler work, this seems to have been dropped. It does lead to stack corruption, sometimes endless loops, etc. This patch re-instates the missing enter()/leave() calls where they have been. This makes hotspot_gc_shenandoah tests happy (finally!) I filed https://bugs.openjdk.java.net/browse/JDK-8202676 to track and fix this upstream. http://cr.openjdk.java.net/~rkennke/aarch64-fix-barrier-rt-call/webrev.00/ Ok to push? Roman From shade at redhat.com Sat May 5 09:16:30 2018 From: shade at redhat.com (Aleksey Shipilev) Date: Sat, 5 May 2018 11:16:30 +0200 Subject: RFR: AArch64: Fix endless loop / stack-corruption In-Reply-To: <65dd0292-4055-fabf-5158-41c2db268ff3@redhat.com> References: <65dd0292-4055-fabf-5158-41c2db268ff3@redhat.com> Message-ID: <55a75f81-32d4-25d0-26ae-87af57e7a963@redhat.com> On 05/04/2018 11:23 PM, Roman Kennke wrote: > In aarch64's > TemplateInterpreterGenerator::generate_Reference_get_entry(void), there > used to be enter()/leave() calls around the g1 pre-barrier. This is > necessary in case the barrier calls into the runtime, to setup/remove > stack frames for the call. With the interpreter BarrierSetAssembler > work, this seems to have been dropped. It does lead to stack corruption, > sometimes endless loops, etc. > > This patch re-instates the missing enter()/leave() calls where they have > been. This makes hotspot_gc_shenandoah tests happy (finally!) > > I filed > https://bugs.openjdk.java.net/browse/JDK-8202676 > > to track and fix this upstream. > > http://cr.openjdk.java.net/~rkennke/aarch64-fix-barrier-rt-call/webrev.00/ > > Ok to push? OK. -Aleksey From rkennke at redhat.com Sat May 5 22:52:39 2018 From: rkennke at redhat.com (Roman Kennke) Date: Sun, 6 May 2018 00:52:39 +0200 Subject: RFR: AArch64: Fix endless loop / stack-corruption In-Reply-To: <55a75f81-32d4-25d0-26ae-87af57e7a963@redhat.com> References: <65dd0292-4055-fabf-5158-41c2db268ff3@redhat.com> <55a75f81-32d4-25d0-26ae-87af57e7a963@redhat.com> Message-ID: <3474d975-bb0d-67e1-ac84-d553c1db21cb@redhat.com> Am 05.05.2018 um 11:16 schrieb Aleksey Shipilev: > On 05/04/2018 11:23 PM, Roman Kennke wrote: >> In aarch64's >> TemplateInterpreterGenerator::generate_Reference_get_entry(void), there >> used to be enter()/leave() calls around the g1 pre-barrier. This is >> necessary in case the barrier calls into the runtime, to setup/remove >> stack frames for the call. With the interpreter BarrierSetAssembler >> work, this seems to have been dropped. It does lead to stack corruption, >> sometimes endless loops, etc. >> >> This patch re-instates the missing enter()/leave() calls where they have >> been. This makes hotspot_gc_shenandoah tests happy (finally!) >> >> I filed >> https://bugs.openjdk.java.net/browse/JDK-8202676 >> >> to track and fix this upstream. >> >> http://cr.openjdk.java.net/~rkennke/aarch64-fix-barrier-rt-call/webrev.00/ >> >> Ok to push? > > OK. > > -Aleksey > Upstream review lead to moving the enter/leave into the BSA impls. http://hg.openjdk.java.net/jdk/jdk/raw-rev/7238cb613dc5 Adopted accordingly (cherry-pick 8202676: AArch64: Missing enter/leave around barrier leads to infinite loop): http://cr.openjdk.java.net/~rkennke/aarch64-fix-barrier-rt-call/webrev.01/ Still ok to push? Roman From shade at redhat.com Sun May 6 20:49:19 2018 From: shade at redhat.com (Aleksey Shipilev) Date: Sun, 6 May 2018 22:49:19 +0200 Subject: RFR: AArch64: Fix endless loop / stack-corruption In-Reply-To: <3474d975-bb0d-67e1-ac84-d553c1db21cb@redhat.com> References: <65dd0292-4055-fabf-5158-41c2db268ff3@redhat.com> <55a75f81-32d4-25d0-26ae-87af57e7a963@redhat.com> <3474d975-bb0d-67e1-ac84-d553c1db21cb@redhat.com> Message-ID: <0bc0cd40-ded4-fa24-0534-8d096ceebd1e@redhat.com> On 05/06/2018 12:52 AM, Roman Kennke wrote: > Adopted accordingly (cherry-pick 8202676: AArch64: Missing enter/leave > around barrier leads to infinite loop): > > http://cr.openjdk.java.net/~rkennke/aarch64-fix-barrier-rt-call/webrev.01/ > > Still ok to push? OK -Aleksey From lennart.borjeson at cinnober.com Mon May 7 08:11:39 2018 From: lennart.borjeson at cinnober.com (=?utf-8?B?TGVubmFydCBCw7ZyamVzb24=?=) Date: Mon, 7 May 2018 08:11:39 +0000 Subject: Spurious printout from shenandoah/jdk10 Message-ID: In the current shenandoah/jdk10, there seems to be a debug printout left in src/hotspot/share/utilities/bitMap.cpp, in the method void BitMap::copy_from(BitMap& other, idx_t start_bit, idx_t end_bit), on line 708: tty->print_cr("suffix: "SIZE_FORMAT, end_bit); When running Shenandoah, this shows up in my log as, e.g.: [...] suffix: 2146916816 suffix: 2146916815 suffix: 2146916814 [...] Best regards, /Lennart B?rjeson From shade at redhat.com Mon May 7 08:16:27 2018 From: shade at redhat.com (Aleksey Shipilev) Date: Mon, 7 May 2018 10:16:27 +0200 Subject: Spurious printout from shenandoah/jdk10 In-Reply-To: References: Message-ID: <41e238b3-0c86-e973-533a-caf289a4732a@redhat.com> Oops. Let us clean that up. -Aleksey On 05/07/2018 10:11 AM, Lennart B?rjeson wrote: > In the current shenandoah/jdk10, there seems to be a debug printout left in src/hotspot/share/utilities/bitMap.cpp, in the method void BitMap::copy_from(BitMap& other, idx_t start_bit, idx_t end_bit), on line 708: > > tty->print_cr("suffix: "SIZE_FORMAT, end_bit); > > > > When running Shenandoah, this shows up in my log as, e.g.: > > [...] > suffix: 2146916816 > suffix: 2146916815 > suffix: 2146916814 > [...] > > > > Best regards, > > /Lennart B?rjeson > From rkennke at redhat.com Mon May 7 08:23:05 2018 From: rkennke at redhat.com (Roman Kennke) Date: Mon, 7 May 2018 10:23:05 +0200 Subject: RFR: Remove debug output Message-ID: diff --git a/src/hotspot/share/utilities/bitMap.cpp b/src/hotspot/share/utilities/bitMap.cpp --- a/src/hotspot/share/utilities/bitMap.cpp +++ b/src/hotspot/share/utilities/bitMap.cpp @@ -675,7 +675,6 @@ void BitMap::copy_from(BitMap& other, idx_t start_bit, idx_t end_bit) { // Copy prefix. while (bit_in_word(start_bit) != 0 && start_bit < end_bit) { - tty->print_cr("prefix: "SIZE_FORMAT, start_bit); at_put(start_bit, other.at(start_bit)); start_bit++; } @@ -683,7 +682,6 @@ while (bit_in_word(end_bit) != 0 && end_bit > start_bit) { end_bit--; at_put(end_bit, other.at(end_bit)); - tty->print_cr("suffix: "SIZE_FORMAT, end_bit); } assert(bit_in_word(start_bit) == 0, "can only handle aligned copy for now, bit: "SIZE_FORMAT, bit_in_word(start_bit)); Ok? From shade at redhat.com Mon May 7 08:24:37 2018 From: shade at redhat.com (Aleksey Shipilev) Date: Mon, 7 May 2018 10:24:37 +0200 Subject: RFR: Remove debug output In-Reply-To: References: Message-ID: On 05/07/2018 10:23 AM, Roman Kennke wrote: > diff --git a/src/hotspot/share/utilities/bitMap.cpp > b/src/hotspot/share/utilities/bitMap.cpp > --- a/src/hotspot/share/utilities/bitMap.cpp > +++ b/src/hotspot/share/utilities/bitMap.cpp > @@ -675,7 +675,6 @@ > void BitMap::copy_from(BitMap& other, idx_t start_bit, idx_t end_bit) { > // Copy prefix. > while (bit_in_word(start_bit) != 0 && start_bit < end_bit) { > - tty->print_cr("prefix: "SIZE_FORMAT, start_bit); > at_put(start_bit, other.at(start_bit)); > start_bit++; > } > @@ -683,7 +682,6 @@ > while (bit_in_word(end_bit) != 0 && end_bit > start_bit) { > end_bit--; > at_put(end_bit, other.at(end_bit)); > - tty->print_cr("suffix: "SIZE_FORMAT, end_bit); > } > > assert(bit_in_word(start_bit) == 0, "can only handle aligned copy for > now, bit: "SIZE_FORMAT, bit_in_word(start_bit)); > > > Ok? Yup. Commit it under more descriptive name, e.g.: "Shun debug messages in BitMap::copy_from" -Aleksey From roman at kennke.org Mon May 7 08:26:43 2018 From: roman at kennke.org (roman at kennke.org) Date: Mon, 07 May 2018 08:26:43 +0000 Subject: hg: shenandoah/jdk: Remove debug messages in BitMap::copy_from() Message-ID: <201805070826.w478QhmF017209@aojmv0008.oracle.com> Changeset: 5b6179167789 Author: rkennke Date: 2018-05-07 10:25 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/5b6179167789 Remove debug messages in BitMap::copy_from() ! src/hotspot/share/utilities/bitMap.cpp From roman at kennke.org Mon May 7 08:29:16 2018 From: roman at kennke.org (roman at kennke.org) Date: Mon, 07 May 2018 08:29:16 +0000 Subject: hg: shenandoah/jdk: Cherry-pick: 8202676: AArch64: Missing enter/leave around barrier leads to infinite loop Message-ID: <201805070829.w478TGKe018357@aojmv0008.oracle.com> Changeset: 8d2495708dc0 Author: rkennke Date: 2018-05-06 00:42 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/8d2495708dc0 Cherry-pick: 8202676: AArch64: Missing enter/leave around barrier leads to infinite loop ! src/hotspot/cpu/aarch64/gc/g1/g1BarrierSetAssembler_aarch64.cpp ! src/hotspot/cpu/aarch64/gc/shared/barrierSetAssembler_aarch64.cpp ! src/hotspot/cpu/aarch64/gc/shenandoah/shenandoahBarrierSetAssembler_aarch64.cpp ! src/hotspot/cpu/aarch64/templateInterpreterGenerator_aarch64.cpp From shade at redhat.com Mon May 7 08:31:56 2018 From: shade at redhat.com (Aleksey Shipilev) Date: Mon, 7 May 2018 10:31:56 +0200 Subject: RFR: Primitive access for interpreter/aarch64 In-Reply-To: References: Message-ID: On 05/04/2018 04:17 PM, Roman Kennke wrote: > - code in macroAssembler has been reshuffled to match x86 more closely. > In particular, load_heap_oop() / store_heap_oop() now call through the > BS API, and not the other way around. This should be upstreamed right away. > http://cr.openjdk.java.net/~rkennke/interp_primitives_aarch64/webrev.00/ Looks good. -Aleksey From rkennke at redhat.com Mon May 7 08:43:02 2018 From: rkennke at redhat.com (Roman Kennke) Date: Mon, 7 May 2018 10:43:02 +0200 Subject: RFR: Primitive access for interpreter/aarch64 In-Reply-To: References: Message-ID: <1a739b68-77b5-e609-7c78-cfb7e40f322f@redhat.com> Am 07.05.2018 um 10:31 schrieb Aleksey Shipilev: > On 05/04/2018 04:17 PM, Roman Kennke wrote: >> - code in macroAssembler has been reshuffled to match x86 more closely. >> In particular, load_heap_oop() / store_heap_oop() now call through the >> BS API, and not the other way around. > > This should be upstreamed right away. Yup. Next up on my list. >> http://cr.openjdk.java.net/~rkennke/interp_primitives_aarch64/webrev.00/ > > Looks good. Good, thanks! Cheers, Roman From shade at redhat.com Mon May 7 11:46:50 2018 From: shade at redhat.com (Aleksey Shipilev) Date: Mon, 7 May 2018 13:46:50 +0200 Subject: RFR: Fix Minimal VM build Message-ID: <3e6200f3-4ff3-dfd8-8381-6ade208b38c2@redhat.com> http://cr.openjdk.java.net/~shade/shenandoah/minimal-vm/webrev.01/ This enables Shenandoah workspace to build cleanly with jvm-variant=minimal. Testing: hotspot_gc_shenandoah {fastdebug|release} x86_64, {server,minimal} x86 build Thanks, -Aleksey From rkennke at redhat.com Mon May 7 13:17:19 2018 From: rkennke at redhat.com (Roman Kennke) Date: Mon, 7 May 2018 15:17:19 +0200 Subject: RFR: Fix Minimal VM build In-Reply-To: <3e6200f3-4ff3-dfd8-8381-6ade208b38c2@redhat.com> References: <3e6200f3-4ff3-dfd8-8381-6ade208b38c2@redhat.com> Message-ID: Am 07.05.2018 um 13:46 schrieb Aleksey Shipilev: > http://cr.openjdk.java.net/~shade/shenandoah/minimal-vm/webrev.01/ > > This enables Shenandoah workspace to build cleanly with jvm-variant=minimal. > > Testing: hotspot_gc_shenandoah {fastdebug|release} x86_64, {server,minimal} x86 build > > Thanks, > -Aleksey > Ugh. All those #ifdefs ... but well ok, most of this stuff will (hopefully) disappear again once we merge upstream c1 barrierset stuff. Ok Roman From ashipile at redhat.com Mon May 7 14:38:16 2018 From: ashipile at redhat.com (ashipile at redhat.com) Date: Mon, 07 May 2018 14:38:16 +0000 Subject: hg: shenandoah/jdk: Fix Minimal VM build Message-ID: <201805071438.w47EcGrA009493@aojmv0008.oracle.com> Changeset: 363978f40de4 Author: shade Date: 2018-05-07 12:00 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/363978f40de4 Fix Minimal VM build ! make/hotspot/lib/JvmFeatures.gmk ! src/hotspot/cpu/aarch64/c1_LIRAssembler_aarch64.cpp ! src/hotspot/cpu/aarch64/c1_LIRGenerator_aarch64.cpp ! src/hotspot/cpu/x86/c1_LIRAssembler_x86.cpp ! src/hotspot/cpu/x86/c1_LIRGenerator_x86.cpp ! src/hotspot/cpu/x86/macroAssembler_x86.cpp ! src/hotspot/cpu/x86/macroAssembler_x86.hpp ! src/hotspot/share/c1/c1_LIR.cpp ! src/hotspot/share/c1/c1_LIR.hpp ! src/hotspot/share/c1/c1_LIRAssembler.hpp ! src/hotspot/share/c1/c1_LIRGenerator.cpp ! src/hotspot/share/c1/c1_LIRGenerator.hpp ! src/hotspot/share/gc/shared/referenceProcessor.cpp ! src/hotspot/share/oops/oopsHierarchy.hpp ! src/hotspot/share/runtime/sharedRuntime.cpp From rkennke at redhat.com Mon May 7 15:32:38 2018 From: rkennke at redhat.com (Roman Kennke) Date: Mon, 7 May 2018 17:32:38 +0200 Subject: RFR: Rename ShenandoahConcurrentThread to ShenandoahSchedulerThread Message-ID: <6b05a021-5df9-f976-5210-5ad130fc195e@redhat.com> Wanted to do this since forever: http://cr.openjdk.java.net/~rkennke/shschedulerthread/webrev.00/ Builds+tests fine. Ok? Roman From zgu at redhat.com Mon May 7 15:51:07 2018 From: zgu at redhat.com (Zhengyu Gu) Date: Mon, 7 May 2018 11:51:07 -0400 Subject: RFR: Rename ShenandoahConcurrentThread to ShenandoahSchedulerThread In-Reply-To: <6b05a021-5df9-f976-5210-5ad130fc195e@redhat.com> References: <6b05a021-5df9-f976-5210-5ad130fc195e@redhat.com> Message-ID: Good to me. -Zhengyu On 05/07/2018 11:32 AM, Roman Kennke wrote: > Wanted to do this since forever: > > http://cr.openjdk.java.net/~rkennke/shschedulerthread/webrev.00/ > > Builds+tests fine. > > Ok? > > Roman > From shade at redhat.com Mon May 7 16:15:40 2018 From: shade at redhat.com (Aleksey Shipilev) Date: Mon, 7 May 2018 18:15:40 +0200 Subject: RFR: Rename ShenandoahConcurrentThread to ShenandoahSchedulerThread In-Reply-To: <6b05a021-5df9-f976-5210-5ad130fc195e@redhat.com> References: <6b05a021-5df9-f976-5210-5ad130fc195e@redhat.com> Message-ID: On 05/07/2018 05:32 PM, Roman Kennke wrote: > Wanted to do this since forever: > > http://cr.openjdk.java.net/~rkennke/shschedulerthread/webrev.00/ ShenandoahDirectorThread, maybe? (I think it is called that way in ZGC) -Aleksey From rkennke at redhat.com Mon May 7 16:28:42 2018 From: rkennke at redhat.com (Roman Kennke) Date: Mon, 7 May 2018 18:28:42 +0200 Subject: RFR: Rename ShenandoahConcurrentThread to ShenandoahSchedulerThread In-Reply-To: References: <6b05a021-5df9-f976-5210-5ad130fc195e@redhat.com> Message-ID: Am 07.05.2018 um 18:15 schrieb Aleksey Shipilev: > On 05/07/2018 05:32 PM, Roman Kennke wrote: >> Wanted to do this since forever: >> >> http://cr.openjdk.java.net/~rkennke/shschedulerthread/webrev.00/ > > ShenandoahDirectorThread, maybe? (I think it is called that way in ZGC) > > -Aleksey > Naah. We're going to have two of them soonish. There can only be one director ;-) Roman From rkennke at redhat.com Mon May 7 18:12:42 2018 From: rkennke at redhat.com (Roman Kennke) Date: Mon, 7 May 2018 20:12:42 +0200 Subject: RFR: Rename ShenandoahConcurrentThread to ShenandoahSchedulerThread In-Reply-To: References: <6b05a021-5df9-f976-5210-5ad130fc195e@redhat.com> Message-ID: <2e9e5778-6d8a-6a2f-9ea4-2ed1d56b52f3@redhat.com> Am 07.05.2018 um 18:28 schrieb Roman Kennke: > Am 07.05.2018 um 18:15 schrieb Aleksey Shipilev: >> On 05/07/2018 05:32 PM, Roman Kennke wrote: >>> Wanted to do this since forever: >>> >>> http://cr.openjdk.java.net/~rkennke/shschedulerthread/webrev.00/ >> >> ShenandoahDirectorThread, maybe? (I think it is called that way in ZGC) >> >> -Aleksey >> > > Naah. > We're going to have two of them soonish. There can only be one director ;-) > > Roman > > Please confirm if ShSchedulerThread is ok, or if you prefer ShDirectorThread (and probably say why), or come up with an even better name.!? Roman From shade at redhat.com Mon May 7 18:14:52 2018 From: shade at redhat.com (Aleksey Shipilev) Date: Mon, 7 May 2018 20:14:52 +0200 Subject: RFR: Rename ShenandoahConcurrentThread to ShenandoahSchedulerThread In-Reply-To: <2e9e5778-6d8a-6a2f-9ea4-2ed1d56b52f3@redhat.com> References: <6b05a021-5df9-f976-5210-5ad130fc195e@redhat.com> <2e9e5778-6d8a-6a2f-9ea4-2ed1d56b52f3@redhat.com> Message-ID: <3a9d8d54-1428-970d-01d0-513f5bb3b330@redhat.com> On 05/07/2018 08:12 PM, Roman Kennke wrote: > Am 07.05.2018 um 18:28 schrieb Roman Kennke: >> Am 07.05.2018 um 18:15 schrieb Aleksey Shipilev: >>> On 05/07/2018 05:32 PM, Roman Kennke wrote: >>>> Wanted to do this since forever: >>>> >>>> http://cr.openjdk.java.net/~rkennke/shschedulerthread/webrev.00/ >>> >>> ShenandoahDirectorThread, maybe? (I think it is called that way in ZGC) >>> >>> -Aleksey >>> >> >> Naah. >> We're going to have two of them soonish. There can only be one director ;-) >> >> Roman >> >> > > Please confirm if ShSchedulerThread is ok, or if you prefer > ShDirectorThread (and probably say why), or come up with an even better > name.!? "Scheduler" seems to imply time/periodicity. ShenandoahControlThread or ShenandoahDirectorThread seems more descriptive for the thread that controls the GC cycle. -Aleksey From rkennke at redhat.com Mon May 7 19:49:34 2018 From: rkennke at redhat.com (Roman Kennke) Date: Mon, 7 May 2018 21:49:34 +0200 Subject: RFR: Rename ShenandoahConcurrentThread to ShenandoahSchedulerThread In-Reply-To: <3a9d8d54-1428-970d-01d0-513f5bb3b330@redhat.com> References: <6b05a021-5df9-f976-5210-5ad130fc195e@redhat.com> <2e9e5778-6d8a-6a2f-9ea4-2ed1d56b52f3@redhat.com> <3a9d8d54-1428-970d-01d0-513f5bb3b330@redhat.com> Message-ID: <1b9f2385-c9b4-652f-a92d-63e08d99cdc2@redhat.com> Am 07.05.2018 um 20:14 schrieb Aleksey Shipilev: > On 05/07/2018 08:12 PM, Roman Kennke wrote: >> Am 07.05.2018 um 18:28 schrieb Roman Kennke: >>> Am 07.05.2018 um 18:15 schrieb Aleksey Shipilev: >>>> On 05/07/2018 05:32 PM, Roman Kennke wrote: >>>>> Wanted to do this since forever: >>>>> >>>>> http://cr.openjdk.java.net/~rkennke/shschedulerthread/webrev.00/ >>>> >>>> ShenandoahDirectorThread, maybe? (I think it is called that way in ZGC) >>>> >>>> -Aleksey >>>> >>> >>> Naah. >>> We're going to have two of them soonish. There can only be one director ;-) >>> >>> Roman >>> >>> >> >> Please confirm if ShSchedulerThread is ok, or if you prefer >> ShDirectorThread (and probably say why), or come up with an even better >> name.!? > > "Scheduler" seems to imply time/periodicity. ShenandoahControlThread or ShenandoahDirectorThread > seems more descriptive for the thread that controls the GC cycle. I like ShControlThread. That was the other name I came up with too. http://cr.openjdk.java.net/~rkennke/shschedulerthread/webrev.01/ Ok? Roman From roman at kennke.org Mon May 7 19:53:10 2018 From: roman at kennke.org (roman at kennke.org) Date: Mon, 07 May 2018 19:53:10 +0000 Subject: hg: shenandoah/jdk: Primitive access for interpreter/aarch64 Message-ID: <201805071953.w47JrACT016896@aojmv0008.oracle.com> Changeset: 8bba67e0f82d Author: rkennke Date: 2018-05-07 15:52 -0400 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/8bba67e0f82d Primitive access for interpreter/aarch64 ! src/hotspot/cpu/aarch64/gc/g1/g1BarrierSetAssembler_aarch64.cpp ! src/hotspot/cpu/aarch64/gc/shared/barrierSetAssembler_aarch64.cpp ! src/hotspot/cpu/aarch64/gc/shared/cardTableBarrierSetAssembler_aarch64.cpp ! src/hotspot/cpu/aarch64/gc/shenandoah/shenandoahBarrierSetAssembler_aarch64.cpp ! src/hotspot/cpu/aarch64/interp_masm_aarch64.cpp ! src/hotspot/cpu/aarch64/jniFastGetField_aarch64.cpp ! src/hotspot/cpu/aarch64/macroAssembler_aarch64.cpp ! src/hotspot/cpu/aarch64/macroAssembler_aarch64.hpp ! src/hotspot/cpu/aarch64/methodHandles_aarch64.cpp ! src/hotspot/cpu/aarch64/stubGenerator_aarch64.cpp ! src/hotspot/cpu/aarch64/templateTable_aarch64.cpp From rkennke at redhat.com Mon May 7 20:22:20 2018 From: rkennke at redhat.com (Roman Kennke) Date: Mon, 7 May 2018 22:22:20 +0200 Subject: RFR: Break heuristics out from ShCollectorPolicy into their own source files Message-ID: Another one that I wanted to do since a long time, and which now is needed in preparation for the interleaving of minor/major GC change. - Break out all the heuristics into their own source files - split declarations from definitions into .hpp/.cpp files This was a pretty mechanic refactoring, no logic changes (hopefully). http://cr.openjdk.java.net/~rkennke/shheuristics/webrev.00/ Tested: building release/fastdebug PCH/no-PCH, hotspot_gc_shenandoah Ok? From zgu at redhat.com Mon May 7 20:22:33 2018 From: zgu at redhat.com (Zhengyu Gu) Date: Mon, 7 May 2018 16:22:33 -0400 Subject: RFR: Fixing Windows and ARM32 build Message-ID: Apparently, you cannot avoids precompiled headers for selected files on Windows, or you have to turn it off all together. Webrev: http://cr.openjdk.java.net/~zgu/shenandoah/win-build/webrev.00/ Test: Windows X64 PCH and Non-PCH builds Linux x64 PCH and Non-PCH builds ARM32 PCH and Non-PCH builds Thanks, -Zhengyu From zgu at redhat.com Mon May 7 20:28:55 2018 From: zgu at redhat.com (Zhengyu Gu) Date: Mon, 7 May 2018 16:28:55 -0400 Subject: RFR: Break heuristics out from ShCollectorPolicy into their own source files In-Reply-To: References: Message-ID: Yes, I like this cleanup! -Zhengyu On 05/07/2018 04:22 PM, Roman Kennke wrote: > Another one that I wanted to do since a long time, and which now is > needed in preparation for the interleaving of minor/major GC change. > > - Break out all the heuristics into their own source files > - split declarations from definitions into .hpp/.cpp files > > > This was a pretty mechanic refactoring, no logic changes (hopefully). > > http://cr.openjdk.java.net/~rkennke/shheuristics/webrev.00/ > > Tested: building release/fastdebug PCH/no-PCH, hotspot_gc_shenandoah > > Ok? > > From rkennke at redhat.com Mon May 7 20:34:51 2018 From: rkennke at redhat.com (Roman Kennke) Date: Mon, 7 May 2018 22:34:51 +0200 Subject: RFR: Fixing Windows and ARM32 build In-Reply-To: References: Message-ID: Am 07.05.2018 um 22:22 schrieb Zhengyu Gu: > Apparently, you cannot avoids precompiled headers for selected files on > Windows, or you have to turn it off all together. > > Webrev: http://cr.openjdk.java.net/~zgu/shenandoah/win-build/webrev.00/ > > Test: > > ? Windows X64 PCH and Non-PCH builds > ? Linux x64 PCH and Non-PCH builds > ? ARM32 PCH and Non-PCH builds > > > Thanks, > > -Zhengyu > > IIRC, Aleksey did not want this: - Atomic::add(-bytes, &_used); + Atomic::sub(bytes, &_used); because backports. Why is this needed: - write_ref_array_pre_work(T* dst, int count); + write_ref_array_pre_work(T* dst, size_t count); ? Is the change in src/hotspot/os/windows/attachListener_windows.cpp needed? If yes, then upstream it? Thanks, Roman From shade at redhat.com Mon May 7 20:52:37 2018 From: shade at redhat.com (Aleksey Shipilev) Date: Mon, 7 May 2018 22:52:37 +0200 Subject: RFR: Rename ShenandoahConcurrentThread to ShenandoahSchedulerThread In-Reply-To: <1b9f2385-c9b4-652f-a92d-63e08d99cdc2@redhat.com> References: <6b05a021-5df9-f976-5210-5ad130fc195e@redhat.com> <2e9e5778-6d8a-6a2f-9ea4-2ed1d56b52f3@redhat.com> <3a9d8d54-1428-970d-01d0-513f5bb3b330@redhat.com> <1b9f2385-c9b4-652f-a92d-63e08d99cdc2@redhat.com> Message-ID: On 05/07/2018 09:49 PM, Roman Kennke wrote: >> "Scheduler" seems to imply time/periodicity. ShenandoahControlThread or ShenandoahDirectorThread >> seems more descriptive for the thread that controls the GC cycle. > > I like ShControlThread. That was the other name I came up with too. > > http://cr.openjdk.java.net/~rkennke/shschedulerthread/webrev.01/ > > Ok? Yeah, let's do it. -Aleksey From roman at kennke.org Mon May 7 21:27:01 2018 From: roman at kennke.org (roman at kennke.org) Date: Mon, 07 May 2018 21:27:01 +0000 Subject: hg: shenandoah/jdk: Rename ShenandoahConcurrentThread to ShenandoahControlThread Message-ID: <201805072127.w47LR1ju014672@aojmv0008.oracle.com> Changeset: 0aaedb7a5fc5 Author: rkennke Date: 2018-05-07 23:26 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/0aaedb7a5fc5 Rename ShenandoahConcurrentThread to ShenandoahControlThread - src/hotspot/share/gc/shenandoah/shenandoahConcurrentThread.cpp - src/hotspot/share/gc/shenandoah/shenandoahConcurrentThread.hpp + src/hotspot/share/gc/shenandoah/shenandoahControlThread.cpp + src/hotspot/share/gc/shenandoah/shenandoahControlThread.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/runtime/thread.cpp From zgu at redhat.com Mon May 7 22:07:51 2018 From: zgu at redhat.com (Zhengyu Gu) Date: Mon, 7 May 2018 18:07:51 -0400 Subject: RFR: Fixing Windows and ARM32 build In-Reply-To: References: Message-ID: On 05/07/2018 04:34 PM, Roman Kennke wrote: > Am 07.05.2018 um 22:22 schrieb Zhengyu Gu: >> Apparently, you cannot avoids precompiled headers for selected files on >> Windows, or you have to turn it off all together. >> >> Webrev: http://cr.openjdk.java.net/~zgu/shenandoah/win-build/webrev.00/ >> >> Test: >> >> ? Windows X64 PCH and Non-PCH builds >> ? Linux x64 PCH and Non-PCH builds >> ? ARM32 PCH and Non-PCH builds >> >> >> Thanks, >> >> -Zhengyu >> >> > > IIRC, Aleksey did not want this: > - Atomic::add(-bytes, &_used); > + Atomic::sub(bytes, &_used); > > because backports. VSC++ does not like it: /shenandoah-jdk/src/hotspot/share/gc/shenandoah/shenandoahHeap.cpp(595) : warning C4146: unary minus operator applied to unsigned type, result still unsigned so, we have to suppress warning at call site to avoid warnings-as-errors build failure, sounds like not making backports any easier. > > > Why is this needed: > - write_ref_array_pre_work(T* dst, int count); > + write_ref_array_pre_work(T* dst, size_t count); > VSC++ wants explicit casting. G1BassierSet uses size_t here, probably we should do so to avoid casting, also for consistency. Do you see any issues here? > ? > > Is the change in src/hotspot/os/windows/attachListener_windows.cpp > needed? If yes, then upstream it? Ah, someone beats me on this. Looks like upstream fixed in JDK-8200729. I will revert this one. Thanks, -Zhengyu > > Thanks, > Roman > From rkennke at redhat.com Tue May 8 06:04:56 2018 From: rkennke at redhat.com (Roman Kennke) Date: Tue, 8 May 2018 08:04:56 +0200 Subject: RFR: Fixing Windows and ARM32 build In-Reply-To: References: Message-ID: Am 08.05.2018 um 00:07 schrieb Zhengyu Gu: > > > On 05/07/2018 04:34 PM, Roman Kennke wrote: >> Am 07.05.2018 um 22:22 schrieb Zhengyu Gu: >>> Apparently, you cannot avoids precompiled headers for selected files on >>> Windows, or you have to turn it off all together. >>> >>> Webrev: http://cr.openjdk.java.net/~zgu/shenandoah/win-build/webrev.00/ >>> >>> Test: >>> >>> ?? Windows X64 PCH and Non-PCH builds >>> ?? Linux x64 PCH and Non-PCH builds >>> ?? ARM32 PCH and Non-PCH builds >>> >>> >>> Thanks, >>> >>> -Zhengyu >>> >>> >> >> IIRC, Aleksey did not want this: >> -? Atomic::add(-bytes, &_used); >> +? Atomic::sub(bytes, &_used); >> >> because backports. > > VSC++ does not like it: > > /shenandoah-jdk/src/hotspot/share/gc/shenandoah/shenandoahHeap.cpp(595) > : warning C4146: unary minus operator applied to unsigned type, result > still unsigned > > so, we have to suppress warning at call site to avoid warnings-as-errors > build failure, sounds like not making backports any easier. Ok. It's good for me, probably let Aleksey confirm, he should at least have it on his radar ;-) >> Why is this needed: >> -? write_ref_array_pre_work(T* dst, int count); >> +? write_ref_array_pre_work(T* dst, size_t count); >> > VSC++ wants explicit casting. G1BassierSet uses size_t here, probably we > should do so to avoid casting, also for consistency. > > Do you see any issues here? No, it's ok, I just wanted to understand. >> ? >> >> Is the change in src/hotspot/os/windows/attachListener_windows.cpp >> needed? If yes, then upstream it? > > Ah, someone beats me on this.? Looks like upstream fixed in JDK-8200729. > I will revert this one. You can also ship the fix. If it's identical to what upstream pushed, it will be smooth merging. Roman From shade at redhat.com Tue May 8 09:15:41 2018 From: shade at redhat.com (Aleksey Shipilev) Date: Tue, 8 May 2018 11:15:41 +0200 Subject: RFR: Fixing Windows and ARM32 build In-Reply-To: References: Message-ID: <22422292-3283-923b-f7e3-655add1e046e@redhat.com> On 05/08/2018 08:04 AM, Roman Kennke wrote: >> VSC++ does not like it: >> >> /shenandoah-jdk/src/hotspot/share/gc/shenandoah/shenandoahHeap.cpp(595) >> : warning C4146: unary minus operator applied to unsigned type, result >> still unsigned >> >> so, we have to suppress warning at call site to avoid warnings-as-errors >> build failure, sounds like not making backports any easier. > > Ok. It's good for me, probably let Aleksey confirm, he should at least > have it on his radar ;-) Ok, fine, do it with sub. We will sort that out during backports. >>> Why is this needed: >>> -? write_ref_array_pre_work(T* dst, int count); >>> +? write_ref_array_pre_work(T* dst, size_t count); >>> >> VSC++ wants explicit casting. G1BassierSet uses size_t here, probably we >> should do so to avoid casting, also for consistency. >> >> Do you see any issues here? > > No, it's ok, I just wanted to understand. We should keep our code synced up between JDK versions. So, if this issue is present in either jdk10, jdk9, or jdk8u, it should be done separately. Thanks, -Aleksey From shade at redhat.com Tue May 8 09:25:38 2018 From: shade at redhat.com (Aleksey Shipilev) Date: Tue, 8 May 2018 11:25:38 +0200 Subject: RFR: Break heuristics out from ShCollectorPolicy into their own source files In-Reply-To: References: Message-ID: <4d3b18ea-71cd-86fd-4bea-1f6d687dbde0@redhat.com> On 05/07/2018 10:22 PM, Roman Kennke wrote: > Another one that I wanted to do since a long time, and which now is > needed in preparation for the interleaving of minor/major GC change. > > - Break out all the heuristics into their own source files > - split declarations from definitions into .hpp/.cpp files > > > This was a pretty mechanic refactoring, no logic changes (hopefully). > > http://cr.openjdk.java.net/~rkennke/shheuristics/webrev.00/ *) Nothing prevents us from putting these into subfolder, right? That would group all of them in filesystem and in the includes. E.g.: gc/share/shenandoah/heuristics/ *) Also, we might just merge: shenandoahLRUPartialHeuristics.* shenandoahPartialConnectedHeuristics.* shenandoahGenerationalPartialHeuristics.* Into common: shenandoahPartialHeuristics.* Or, at very least make their names consistent: shenandoahPartial{$Type}Heuristics, so they naturally cluster together. *) Also, shenandoahStaticHeuristics has only the header, with definitions inlined, but others seem to have their own .cpp. Thanks, -Aleksey From zgu at redhat.com Tue May 8 13:02:29 2018 From: zgu at redhat.com (zgu at redhat.com) Date: Tue, 08 May 2018 13:02:29 +0000 Subject: hg: shenandoah/jdk: Fixing Windows and ARM32 build Message-ID: <201805081302.w48D2TbA010465@aojmv0008.oracle.com> Changeset: 18250eeadc82 Author: zgu Date: 2018-05-08 09:02 -0400 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/18250eeadc82 Fixing Windows and ARM32 build ! 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/shenandoahHeap.cpp ! src/hotspot/share/gc/shenandoah/shenandoahHeap.inline.hpp ! src/hotspot/share/gc/shenandoah/shenandoahMarkCompact.cpp ! src/hotspot/share/gc/shenandoah/shenandoahSATBMarkQueueSet.cpp ! src/hotspot/share/gc/shenandoah/shenandoahVerifier.cpp From rkennke at redhat.com Tue May 8 17:00:01 2018 From: rkennke at redhat.com (Roman Kennke) Date: Tue, 8 May 2018 19:00:01 +0200 Subject: RFR: Break heuristics out from ShCollectorPolicy into their own source files In-Reply-To: <4d3b18ea-71cd-86fd-4bea-1f6d687dbde0@redhat.com> References: <4d3b18ea-71cd-86fd-4bea-1f6d687dbde0@redhat.com> Message-ID: <3be75668-5464-2760-b38b-fc0f8602d9f7@redhat.com> Am 08.05.2018 um 11:25 schrieb Aleksey Shipilev: > On 05/07/2018 10:22 PM, Roman Kennke wrote: >> Another one that I wanted to do since a long time, and which now is >> needed in preparation for the interleaving of minor/major GC change. >> >> - Break out all the heuristics into their own source files >> - split declarations from definitions into .hpp/.cpp files >> >> >> This was a pretty mechanic refactoring, no logic changes (hopefully). >> >> http://cr.openjdk.java.net/~rkennke/shheuristics/webrev.00/ > > *) Nothing prevents us from putting these into subfolder, right? That would group all of them in > filesystem and in the includes. E.g.: gc/share/shenandoah/heuristics/ Good idea. Done it. > *) Also, we might just merge: > shenandoahLRUPartialHeuristics.* > shenandoahPartialConnectedHeuristics.* > shenandoahGenerationalPartialHeuristics.* > > Into common: > shenandoahPartialHeuristics.* > > Or, at very least make their names consistent: shenandoahPartial{$Type}Heuristics, so they naturally > cluster together. I renamed them to be consistent. The heuristics are not so small that I'd group them together. > *) Also, shenandoahStaticHeuristics has only the header, with definitions inlined, but others seem > to have their own .cpp. An oversight. I fixed it. http://cr.openjdk.java.net/~rkennke/shheuristics/webrev.01/ Ok? Roman From janoupe at gmail.com Tue May 8 20:01:57 2018 From: janoupe at gmail.com (Petr Janouch) Date: Tue, 8 May 2018 22:01:57 +0200 Subject: Feedback from experiments on production application Message-ID: Hi everyone, I have done some experiments with Shenandoah on our production application (Unfortunately not in production). I did not see any explicit bug, but my experience wasn?t smooth either. Before I clog this mailing list with my report ;), I would like to ask if you are interested into my feedback and if this mailing list is the right place to give it. Thanks Petr From rkennke at redhat.com Tue May 8 20:24:52 2018 From: rkennke at redhat.com (Roman Kennke) Date: Tue, 8 May 2018 22:24:52 +0200 Subject: Feedback from experiments on production application In-Reply-To: References: Message-ID: <02f08fe4-a1fe-de17-dc46-b7ab607ef375@redhat.com> Am 08.05.2018 um 22:01 schrieb Petr Janouch: > Hi everyone, > > I have done some experiments with Shenandoah on our production application (Unfortunately not in production). I did not see any explicit bug, but my experience wasn?t smooth either. Before I clog this mailing list with my report ;), I would like to ask if you are interested into my feedback and if this mailing list is the right place to give it. > Yes, and yes. Of course! Thanks in advance! Roman From rkennke at redhat.com Tue May 8 22:12:33 2018 From: rkennke at redhat.com (Roman Kennke) Date: Wed, 9 May 2018 00:12:33 +0200 Subject: RFR: Improve abstraction for runtime allocations Message-ID: <61989864-5192-36df-fda7-f5d149526849@redhat.com> This improves (IMO) the GC interface abstraction for allocations in the runtime. The idea is that much like GC owns heap access (loads and stores, etc), the GC should also own allocations. Specifically, speaking from Shenandoah perspective, it should be fully to GCs discretion how much actual space is allocated, how it is laid out, etc. The way it is currently done is actually close to this, but not quite: TLAB allocations are outside of the GC interface, and the GC has no real good way to intercept those. That is why we added CH::tlab_post_allocation_setup() to perform additional setup after allocating objects from TLABs (to initialize the forwarding pointer). This patch changes CH::mem_allocate() to also be responsible for allocations from TLABs, if the GC wishes to do that. This means that all the heap implementations need to explicitely call CH::allocate_from_tlab() to support TLAB allocations. On the good side, Shenandoah now has full control over object size and forwarding pointer setup, without ugly insertions into shared code. I intend to upstream the non-Shenandoah parts soonish, after some time to review+bake in Shenandoah. I also intend to implement something equivalent (and later upstream) for interpreter, C1 and C2 separately. Tests: hotspot_gc_shenandoah http://cr.openjdk.java.net/~rkennke/allocations-rt/webrev.00/ Ok? Roman From rkennke at redhat.com Wed May 9 05:53:51 2018 From: rkennke at redhat.com (Roman Kennke) Date: Wed, 9 May 2018 07:53:51 +0200 Subject: Feedback from experiments on production application In-Reply-To: <4BF631F5-B5B6-48A5-8CB8-AC27E66902AE@gmail.com> References: <02f08fe4-a1fe-de17-dc46-b7ab607ef375@redhat.com> <4BF631F5-B5B6-48A5-8CB8-AC27E66902AE@gmail.com> Message-ID: <5a4a1e79-5f03-3f0b-fa67-bdfd6faaba88@redhat.com> Hi Petr, thanks a LOT for the detailed report. Would it be possible to run the same experiments with a newer build, e.g. one from here: https://builds.shipilev.net/ ? The version that we have in Fedora is fairly old by now. It should be updated soon. Class unloading can be turned off by -XX:ShenandoahClassUnloadingFrequency=0 I need to digest your data a little more :-) Thanks and best regads, Roman > Ok here it goes: > > First shortly about the application: > > It is a service that is part of an e-commerce platform and is tuned for high load (of course not Facebook scale ;)) and low latency. It?s most latency sensitive REST endpoint responds in single digit milliseconds plus GC pauses. We managed to tune G1 for 20ms pauses. It is what I would consider a typical backend service (might be a little big to call it a microservice) that provides REST API and does some business logic based on data in its database. So there is relatively few application-scoped objects (services, configuration, ? ) and a lot of request-scoped objects (HTTP requests/responses with JSON bodies, Hibernate entities, intermediate business objects, ?) > > Here is the list of libraries it uses extracted from Gradle build file (just to show that it is not a monstrosity with many dependencies): > > compile 'org.springframework.boot:spring-boot-starter-jetty' > compile 'org.springframework.boot:spring-boot-starter-logging' > compile 'com.paypal.springboot:resteasy-spring-boot-starter' > compile 'org.jboss.resteasy:resteasy-json-p-provider' > compile 'javax.inject:javax.inject' > compile 'org.springframework.boot:spring-boot-starter-data-jpa' > compile 'mysql:mysql-connector-java' > compile 'org.springframework.boot:spring-boot-starter-actuator' > compile 'org.springframework:spring-context-support' > compile 'com.fasterxml.jackson.datatype:jackson-datatype-jsr310' > compile 'net.ttddyy:datasource-proxy' > compile 'org.hdrhistogram:HdrHistogram' > compile 'org.infinispan:infinispan-core' > compile 'com.zaxxer:HikariCP' > compile 'org.glassfish:javax.json' > compile 'org.infinispan:infinispan-hibernate-cache? > > We have some performance/stress tests that simulate the typical workload and measure latency percentiles. The observations bellow were made when running those tests with Shenandoah enabled. > The tests were performed on AWS c4.4xlarge machine with Fedora and OpenJDK 64-Bit Server VM (build 25.162-b12, mixed mode) > > Here is the biggest issue I have experienced: > Even though most GC pauses were reasonably small, there was an occasional much larger pause usually around 20ms. Here is an extract from the logs that shows a GC cycle with such a big pause: > > Concurrent marking triggered. Free: 1221M, Free Threshold: 1228M; Allocated: 1221M, Alloc Threshold: 0M > Application time: 8.0970046 seconds > [Pause Init Mark, 2.985 ms] > vmop [threads: total initially_running wait_to_block] [time: spin block sync cleanup vmop] page_trap_count > 1037.151: ShenandoahInitMark [ 1075 1 0 ] [ 0 0 0 1 3 ] 0 > Total time for which application threads were stopped: 0.0054568 seconds, Stopping threads took: 0.0005413 seconds > [Concurrent marking 18G->19G(20G), 120.974 ms] > Application time: 0.1211539 seconds > [Pause Final MarkTotal Garbage: 19176M > Immediate Garbage: 17379M, 2173 regions (90% of total) > Garbage to be collected: 1758M (9% of total), 221 regions > Live objects to be evacuated: 9M > Live/garbage ratio in collected regions: 0% > 19G->2366M(20G), 16.095 ms] > vmop [threads: total initially_running wait_to_block] [time: spin block sync cleanup vmop] page_trap_count > 1037.278: ShenandoahFinalMarkStartEvac [ 1075 2 0 ] [ 0 0 0 1 16 ] 0 > Total time for which application threads were stopped: 0.0185424 seconds, Stopping threads took: 0.0005058 seconds > [Concurrent evacuation 2370M->3559M(20G), 71.193 ms] > Application time: 0.0713514 seconds > [Pause Init Update Refs, 0.341 ms] > vmop [threads: total initially_running wait_to_block] [time: spin block sync cleanup vmop] page_trap_count > 1037.368: ShenandoahInitUpdateRefs [ 1075 0 1 ] [ 0 0 0 1 0 ] 0 > Total time for which application threads were stopped: 0.0029125 seconds, Stopping threads took: 0.0005305 seconds > [Concurrent update references 3562M->4722M(20G), 442.210 ms] > Application time: 0.4423174 seconds > [Pause Final Update Refs 4722M->2954M(20G), 4.855 ms] > vmop [threads: total initially_running wait_to_block] [time: spin block sync cleanup vmop] page_trap_count > 1037.813: ShenandoahFinalUpdateRefs [ 1075 0 2 ] [ 0 0 0 1 4 ] 0 > Total time for which application threads were stopped: 0.0070979 seconds, Stopping threads took: 0.0004547 seconds > [Concurrent reset bitmaps 2954M->2954M(20G), 1.096 ms] > Capacity: 20480M, Peak Occupancy: 19746M, Lowest Free: 733M, Free Threshold: 614M > Concurrent marking triggered. Free: 1211M, Free Threshold: 1228M; Allocated: 1211M, Alloc Threshold: 0M > Application time: 7.8430755 seconds > > I nearly gave up on Shenandoah, because 20ms GC pauses are G1 territory for this application and workload. Luckily I found ShenandoahUnloadClassesFrequency = 5 in the VM flags, turned on class unloading logging and found out that the large GC pause is really associated with Shenandoah trying to GC and unload classes. Unloading classes is pointless for this application, so I just turned it off. I did not figure out how to turn it off completely, but after setting the unloading frequency to something infinity-like, the no GC pause exceeded 10ms. > I would suggest mentioning somewhere in the user guide the fact, that the class unloading feature can significantly prolong GC pauses. Also the GC logging could mention that the class unloading is going on (yes, you can see it with class unloading logging on, but most people usually don?t have it on, when trying to fix GC issues). > > Here goes my second big issue: > The concurrent part is sometimes too short (who would think it would a performance problem ;)) which makes the GC pauses too tightly spaced. Here is again an extract from logs to illustrate this: > > Concurrent marking triggered. Free: 4081M, Free Threshold: 4096M; Allocated: 4081M, Alloc Threshold: 0M > Application time: 7.1562731 seconds > [Pause Init Mark, 2.733 ms] > vmop [threads: total initially_running wait_to_block] [time: spin block sync cleanup vmop] page_trap_count > 369.133: ShenandoahInitMark [ 1076 0 1 ] [ 0 0 0 1 2 ] 0 > Total time for which application threads were stopped: 0.0052538 seconds, Stopping threads took: 0.0004846 seconds > [Concurrent marking 16G->16G(20G), 30.012 ms] > [Concurrent precleaning 16G->16G(20G), 1.419 ms] > Application time: 0.0328136 seconds > [Pause Final MarkTotal Garbage: 16310M > Immediate Garbage: 14771M, 1847 regions (90% of total) > Garbage to be collected: 1477M (9% of total), 186 regions > Live objects to be evacuated: 10M > Live/garbage ratio in collected regions: 0% > 16G->1715M(20G), 4.473 ms] > vmop [threads: total initially_running wait_to_block] [time: spin block sync cleanup vmop] page_trap_count > 369.172: ShenandoahFinalMarkStartEvac [ 1076 2 0 ] [ 0 0 0 1 4 ] 0 > Total time for which application threads were stopped: 0.0072521 seconds, Stopping threads took: 0.0006079 seconds > [Concurrent evacuation 1715M->1871M(20G), 5.272 ms] > Application time: 0.0061683 seconds > [Pause Init Update Refs, 0.214 ms] > vmop [threads: total initially_running wait_to_block] [time: spin block sync cleanup vmop] page_trap_count > 369.185: ShenandoahInitUpdateRefs [ 1076 0 1 ] [ 0 0 0 2 0 ] 0 > Total time for which application threads were stopped: 0.0029071 seconds, Stopping threads took: 0.0004698 seconds > [Concurrent update references 1875M->2125M(20G), 72.610 ms] > Application time: 0.0727956 seconds > [Pause Final Update Refs 2126M->638M(20G), 1.635 ms] > vmop [threads: total initially_running wait_to_block] [time: spin block sync cleanup vmop] page_trap_count > 369.261: ShenandoahFinalUpdateRefs [ 1076 3 0 ] [ 0 0 0 2 1 ] 0 > Total time for which application threads were stopped: 0.0043687 seconds, Stopping threads took: 0.0005341 seconds > [Concurrent reset bitmaps 638M->639M(20G), 0.526 ms] > Capacity: 20480M, Peak Occupancy: 16486M, Lowest Free: 3993M, Free Threshold: 614M > > In the sample above, ShenandoahFinalMarkStartEvac and ShenandoahInitUpdateRefs are extremely close together and some unlucky requests can experience both pauses during their processing. Moreover, for instance if a request took 50ms to process, which I would still consider low latency, such request could experience 3 pauses during its processing. This issue went mostly away by setting ConcGCThreads = 1, but even with only one thread doing the concurrent work, the GC pauses are sometimes too close together. GC cycles are many seconds apart even with the highest load, so it seems like a waste if a requests can experience multiple GC pauses, which for observers creates the same effect as one larger pause. > Have you considered a possibility to provide a configuration option that would be something like ?target min STW distance?? > > With ShenandoahUnloadClassesFrequency = and ConcGCThreads = 1 the performance was really good. I did not notice any significant drop in throughput, but it had much better request tail latency compared to G1. As I wrote above a typical GC pause for G1 was 20ms. With Shenandoah all pauses were < 10ms with some very close to the 10ms mark. > > Here are statistics, in case you find them helpful: > > Cancelling concurrent GC: Stopping VM > Heap > Shenandoah Heap > 20971520K total, 20406272K committed, 11820035K used > 2560 x 8192K regions > Status: idle cancelled > Reserved region: > - [0x00000002c0000000, 0x00000007c0000000) > > GC STATISTICS: > "(G)" (gross) pauses include VM time: time to notify and block threads, do the pre- > and post-safepoint housekeeping. Use -XX:+PrintSafepointStatistics to dissect. > "(N)" (net) pauses are the times spent in the actual GC code. > "a" is average time for each phase, look at levels to see if average makes sense. > "lvls" are quantiles: 0% (minimum), 25%, 50% (median), 75%, 100% (maximum). > > Total Pauses (G) = 3.09 s (a = 8148 us) (n = 379) (lvls, us = 2383, 4570, 5566, 7559, 396598) > Total Pauses (N) = 3.42 s (a = 8977 us) (n = 381) (lvls, us = 188, 1465, 2930, 4121, 1492103) > Pause Init Mark (G) = 1.02 s (a = 7423 us) (n = 137) (lvls, us = 5078, 5430, 5605, 5781, 135628) > Pause Init Mark (N) = 0.57 s (a = 4148 us) (n = 137) (lvls, us = 2656, 2949, 3086, 3145, 122749) > Accumulate Stats = 0.03 s (a = 248 us) (n = 137) (lvls, us = 213, 236, 240, 250, 345) > Make Parsable = 0.04 s (a = 311 us) (n = 137) (lvls, us = 115, 303, 309, 328, 426) > Clear Liveness = 0.02 s (a = 116 us) (n = 137) (lvls, us = 67, 113, 115, 117, 133) > Scan Roots = 0.44 s (a = 3212 us) (n = 137) (lvls, us = 1758, 2012, 2148, 2207, 121455) > S: Thread Roots = 0.12 s (a = 862 us) (n = 137) (lvls, us = 297, 350, 367, 391, 41679) > S: String Table Roots = 0.09 s (a = 661 us) (n = 137) (lvls, us = 395, 402, 410, 428, 29442) > S: Universe Roots = 0.00 s (a = 2 us) (n = 137) (lvls, us = 1, 2, 2, 2, 22) > S: JNI Roots = 0.00 s (a = 16 us) (n = 137) (lvls, us = 10, 11, 14, 16, 172) > S: JNI Weak Roots = 0.01 s (a = 60 us) (n = 137) (lvls, us = 0, 35, 54, 60, 1077) > S: Synchronizer Roots = 0.00 s (a = 34 us) (n = 137) (lvls, us = 25, 29, 31, 33, 74) > S: Flat Profiler Roots = 0.01 s (a = 60 us) (n = 137) (lvls, us = 40, 50, 57, 65, 154) > S: Management Roots = 0.00 s (a = 2 us) (n = 137) (lvls, us = 1, 1, 2, 2, 4) > S: System Dict Roots = 0.01 s (a = 69 us) (n = 137) (lvls, us = 16, 20, 25, 29, 5703) > S: CLDG Roots = 0.07 s (a = 483 us) (n = 137) (lvls, us = 195, 223, 238, 248, 30918) > S: JVMTI Roots = 0.00 s (a = 1 us) (n = 137) (lvls, us = 0, 1, 1, 1, 1) > Resize TLABs = 0.02 s (a = 176 us) (n = 137) (lvls, us = 141, 164, 168, 178, 343) > Pause Final Mark (G) = 1.17 s (a = 8560 us) (n = 137) (lvls, us = 3906, 4961, 7559, 9141, 30611) > Pause Final Mark (N) = 0.56 s (a = 4117 us) (n = 137) (lvls, us = 1133, 1406, 4316, 4980, 21240) > Update Roots = 0.04 s (a = 1945 us) (n = 22) (lvls, us = 1348, 1484, 1973, 2305, 2841) > U: Thread Roots = 0.02 s (a = 903 us) (n = 22) (lvls, us = 312, 326, 984, 1328, 1814) > U: String Table Roots = 0.01 s (a = 264 us) (n = 22) (lvls, us = 236, 252, 260, 266, 299) > U: Universe Roots = 0.00 s (a = 1 us) (n = 22) (lvls, us = 1, 1, 1, 1, 1) > U: JNI Roots = 0.00 s (a = 11 us) (n = 22) (lvls, us = 8, 9, 10, 12, 17) > U: JNI Weak Roots = 0.00 s (a = 21 us) (n = 22) (lvls, us = 10, 15, 21, 24, 36) > U: Synchronizer Roots = 0.00 s (a = 53 us) (n = 22) (lvls, us = 38, 46, 56, 59, 74) > U: Flat Profiler Roots = 0.00 s (a = 59 us) (n = 22) (lvls, us = 47, 51, 52, 65, 81) > U: Management Roots = 0.00 s (a = 2 us) (n = 22) (lvls, us = 1, 2, 2, 2, 2) > U: System Dict Roots = 0.00 s (a = 16 us) (n = 22) (lvls, us = 11, 14, 16, 17, 20) > U: CLDG Roots = 0.00 s (a = 161 us) (n = 22) (lvls, us = 152, 154, 156, 164, 177) > U: JVMTI Roots = 0.00 s (a = 1 us) (n = 22) (lvls, us = 1, 1, 1, 1, 1) > Finish Queues = 0.13 s (a = 981 us) (n = 137) (lvls, us = 457, 643, 746, 832, 13097) > Weak References = 0.03 s (a = 1198 us) (n = 27) (lvls, us = 303, 375, 426, 2129, 3010) > Process = 0.02 s (a = 867 us) (n = 27) (lvls, us = 40, 45, 79, 1797, 2590) > Enqueue = 0.01 s (a = 327 us) (n = 27) (lvls, us = 248, 287, 312, 352, 419) > Prepare Evacuation = 0.07 s (a = 531 us) (n = 137) (lvls, us = 236, 514, 547, 566, 777) > Initial Evacuation = 0.26 s (a = 3468 us) (n = 76) (lvls, us = 2793, 3086, 3145, 3379, 8814) > E: Thread Roots = 0.05 s (a = 646 us) (n = 76) (lvls, us = 295, 354, 400, 523, 2960) > E: Code Cache Roots = 0.13 s (a = 1729 us) (n = 76) (lvls, us = 1660, 1680, 1699, 1719, 1908) > Pause Init Update Refs (G) = 0.19 s (a = 3553 us) (n = 53) (lvls, us = 2383, 2812, 3086, 3457, 12040) > Pause Init Update Refs (N) = 0.01 s (a = 222 us) (n = 53) (lvls, us = 188, 201, 215, 227, 334) > Pause Final Update Refs (G) = 0.71 s (a = 13643 us) (n = 52) (lvls, us = 2695, 4355, 4590, 5039, 396594) > Pause Final Update Refs (N) = 0.54 s (a = 10463 us) (n = 52) (lvls, us = 1465, 1582, 1680, 1719, 393407) > Finish Work = 0.45 s (a = 151299 us) (n = 3) (lvls, us = 5195, 5195, 5195, 57031, 391500) > Update Roots = 0.08 s (a = 1543 us) (n = 52) (lvls, us = 1328, 1426, 1504, 1543, 2426) > UR: Thread Roots = 0.02 s (a = 413 us) (n = 52) (lvls, us = 268, 330, 354, 402, 1360) > UR: String Table Roots = 0.01 s (a = 266 us) (n = 52) (lvls, us = 229, 252, 264, 277, 316) > UR: Universe Roots = 0.00 s (a = 1 us) (n = 52) (lvls, us = 1, 1, 1, 1, 2) > UR: JNI Roots = 0.00 s (a = 12 us) (n = 52) (lvls, us = 8, 9, 11, 13, 41) > UR: JNI Weak Roots = 0.00 s (a = 24 us) (n = 52) (lvls, us = 15, 20, 22, 24, 58) > UR: Synchronizer Roots = 0.00 s (a = 39 us) (n = 52) (lvls, us = 27, 33, 34, 36, 115) > UR: Flat Profiler Roots = 0.00 s (a = 59 us) (n = 52) (lvls, us = 43, 52, 61, 64, 87) > UR: Management Roots = 0.00 s (a = 2 us) (n = 52) (lvls, us = 1, 1, 2, 2, 3) > UR: System Dict Roots = 0.00 s (a = 16 us) (n = 52) (lvls, us = 11, 14, 16, 17, 42) > UR: CLDG Roots = 0.01 s (a = 160 us) (n = 52) (lvls, us = 146, 154, 158, 162, 191) > UR: JVMTI Roots = 0.00 s (a = 1 us) (n = 52) (lvls, us = 1, 1, 1, 1, 1) > Recycle = 0.01 s (a = 144 us) (n = 52) (lvls, us = 98, 111, 117, 152, 258) > Pause Full GC = 1.73 s (a = 865870 us) (n = 2) (lvls, us = 238281, 238281, 238281, 238281, 1492101) > Heap Dumps = 0.00 s (a = 1 us) (n = 4) (lvls, us = 1, 1, 1, 1, 1) > Prepare = 0.00 s (a = 497 us) (n = 2) (lvls, us = 475, 475, 475, 475, 517) > Roots = 0.07 s (a = 17314 us) (n = 4) (lvls, us = 3770, 3770, 4785, 6035, 54657) > F: Thread Roots = 0.03 s (a = 5217 us) (n = 6) (lvls, us = 1562, 1562, 2246, 2324, 21039) > F: Code Cache Roots = 0.01 s (a = 1133 us) (n = 6) (lvls, us = 0, 0, 1660, 1680, 1740) > F: String Table Roots = 0.00 s (a = 252 us) (n = 6) (lvls, us = 0, 0, 299, 363, 467) > F: Universe Roots = 0.00 s (a = 2 us) (n = 6) (lvls, us = 1, 1, 2, 2, 3) > F: JNI Roots = 0.00 s (a = 18 us) (n = 6) (lvls, us = 11, 11, 14, 16, 35) > F: JNI Weak Roots = 0.00 s (a = 61 us) (n = 6) (lvls, us = 0, 0, 23, 99, 135) > F: Synchronizer Roots = 0.00 s (a = 64 us) (n = 6) (lvls, us = 51, 51, 63, 70, 72) > F: Flat Profiler Roots = 0.00 s (a = 82 us) (n = 6) (lvls, us = 57, 57, 78, 78, 118) > F: Management Roots = 0.00 s (a = 2 us) (n = 6) (lvls, us = 1, 1, 2, 2, 4) > F: System Dict Roots = 0.00 s (a = 402 us) (n = 6) (lvls, us = 19, 19, 32, 35, 1508) > F: CLDG Roots = 0.00 s (a = 529 us) (n = 6) (lvls, us = 89, 89, 193, 238, 1998) > F: JVMTI Roots = 0.00 s (a = 1 us) (n = 6) (lvls, us = 1, 1, 1, 1, 1) > Mark = 0.30 s (a = 148858 us) (n = 2) (lvls, us = 68359, 68359, 68359, 68359, 229302) > Finish Queues = 0.17 s (a = 85505 us) (n = 2) (lvls, us = 39648, 39648, 39648, 39648, 131294) > Weak References = 0.01 s (a = 6880 us) (n = 2) (lvls, us = 2598, 2598, 2598, 2598, 11155) > Process = 0.01 s (a = 6429 us) (n = 2) (lvls, us = 2227, 2227, 2227, 2227, 10627) > Enqueue = 0.00 s (a = 445 us) (n = 2) (lvls, us = 367, 367, 367, 367, 521) > System Purge = 0.04 s (a = 21831 us) (n = 2) (lvls, us = 17383, 17383, 17383, 17383, 26143) > Unload Classes = 0.02 s (a = 10718 us) (n = 2) (lvls, us = 7988, 7988, 7988, 7988, 13429) > Parallel Cleanup = 0.02 s (a = 9692 us) (n = 2) (lvls, us = 9473, 9473, 9473, 9473, 9900) > Code Cache = 0.01 s (a = 4005 us) (n = 2) (lvls, us = 3867, 3867, 3867, 3867, 4141) > String/Symbol Tables = 0.00 s (a = 2383 us) (n = 2) (lvls, us = 2305, 2305, 2305, 2305, 2450) > Clean Classes = 0.01 s (a = 3125 us) (n = 2) (lvls, us = 3105, 3105, 3105, 3105, 3128) > CLDG = 0.00 s (a = 1413 us) (n = 2) (lvls, us = 19, 19, 19, 19, 2806) > Calculate Addresses = 0.03 s (a = 15912 us) (n = 2) (lvls, us = 15430, 15430, 15430, 15430, 16284) > Adjust Pointers = 0.07 s (a = 33302 us) (n = 2) (lvls, us = 31641, 31641, 31641, 31641, 34817) > Copy Objects = 1.33 s (a = 666542 us) (n = 2) (lvls, us = 121094, 121094, 121094, 121094, 1210432) > Resize TLABs = 0.00 s (a = 481 us) (n = 2) (lvls, us = 467, 467, 467, 467, 495) > Concurrent Marking = 15.49 s (a = 113039 us) (n = 137) (lvls, us = 13672, 52344, 63867, 89062, 661729) > Concurrent Precleaning = 0.05 s (a = 1892 us) (n = 27) (lvls, us = 1367, 1602, 1699, 2031, 3704) > Concurrent Evacuation = 1.51 s (a = 19892 us) (n = 76) (lvls, us = 2578, 4395, 5898, 10352, 315417) > Concurrent Update Refs = 4.93 s (a = 93068 us) (n = 53) (lvls, us = 8594, 68555, 86523, 94922, 675641) > Concurrent Reset Bitmaps = 2.43 s (a = 18021 us) (n = 135) (lvls, us = 439, 672, 1152, 1758, 505395) > > 2 allocation failure and 0 user requested GCs > 135 successful and 2 degenerated concurrent markings > 110 successful and 3 degenerated update references > > ALLOCATION TRACING > These are the slow-path allocations, including TLAB/GCLAB refills, and out-of-TLAB allocations. > In-TLAB/GCLAB allocations happen orders of magnitude more frequently, and without delays. > > Allocation tracing is disabled, use -XX:+ShenandoahAllocationTrace to enable. > Application time: 0.0627666 seconds > vmop [threads: total initially_running wait_to_block] [time: spin block sync cleanup vmop] page_trap_count > 1072.992: Exit [ 22 0 0 ] [ 0 0 0 0 10 ] 0 > > Polling page always armed > ForceSafepoint 13 > Deoptimize 61 > CollectForMetadataAllocation 861 > ShenandoahFullGC 2 > ShenandoahInitMark 137 > ShenandoahFinalMarkStartEvac 137 > ShenandoahInitUpdateRefs 53 > ShenandoahFinalUpdateRefs 51 > Exit 1 > 2 VM operations coalesced during safepoint > Maximum sync time 14 ms > Maximum vm operation time (except for Exit VM operation) 1492 ms > > I hope the report did not come out too negative, because I have very positive feeling about Shenandoah and I will definitely use Shenandoah in the future. > If you need more information, don?t hesitate to contact me. I cannot give you the source code of the application, but I can easily rerun the workload with different settings or logging . > > Thanks > Petr > > > >> On 8 May 2018, at 22:24, Roman Kennke wrote: >> >> Am 08.05.2018 um 22:01 schrieb Petr Janouch: >>> Hi everyone, >>> >>> I have done some experiments with Shenandoah on our production application (Unfortunately not in production). I did not see any explicit bug, but my experience wasn?t smooth either. Before I clog this mailing list with my report ;), I would like to ask if you are interested into my feedback and if this mailing list is the right place to give it. >>> >> >> Yes, and yes. Of course! >> >> Thanks in advance! >> Roman >> >> > From shade at redhat.com Wed May 9 07:36:49 2018 From: shade at redhat.com (Aleksey Shipilev) Date: Wed, 9 May 2018 09:36:49 +0200 Subject: Feedback from experiments on production application In-Reply-To: <5a4a1e79-5f03-3f0b-fa67-bdfd6faaba88@redhat.com> References: <02f08fe4-a1fe-de17-dc46-b7ab607ef375@redhat.com> <4BF631F5-B5B6-48A5-8CB8-AC27E66902AE@gmail.com> <5a4a1e79-5f03-3f0b-fa67-bdfd6faaba88@redhat.com> Message-ID: On 05/09/2018 07:53 AM, Roman Kennke wrote: > Would it be possible to run the same experiments with a newer build, > e.g. one from here: > > https://builds.shipilev.net/ More precisely, this one for 8u: https://builds.shipilev.net/openjdk-shenandoah-jdk8/ >> I would suggest mentioning somewhere in the user guide the fact, that the class unloading >> feature can significantly prolong GC pauses. Also the GC logging could mention that the class >> unloading is going on (yes, you can see it with class unloading logging on, but most people >> usually don?t have it on, when trying to fix GC issues). It does mention it in recent builds, like this: [Pause Init Mark (unload classes), 3.463 ms] [Concurrent marking (unload classes) 557M->557M(8192M), 53.294 ms] [Pause Final Mark (unload classes), 15.750 ms] [Concurrent cleanup 557M->543M(8192M), 0.288 ms] Thanks, -Aleksey From shade at redhat.com Wed May 9 07:50:51 2018 From: shade at redhat.com (Aleksey Shipilev) Date: Wed, 9 May 2018 09:50:51 +0200 Subject: RFR: Break heuristics out from ShCollectorPolicy into their own source files In-Reply-To: <3be75668-5464-2760-b38b-fc0f8602d9f7@redhat.com> References: <4d3b18ea-71cd-86fd-4bea-1f6d687dbde0@redhat.com> <3be75668-5464-2760-b38b-fc0f8602d9f7@redhat.com> Message-ID: <17321e0a-5dbe-5634-2cec-4ff1277bdaf2@redhat.com> On 05/08/2018 07:00 PM, Roman Kennke wrote: > http://cr.openjdk.java.net/~rkennke/shheuristics/webrev.01/ > > Ok? OK. -Aleksey From roman at kennke.org Wed May 9 10:02:23 2018 From: roman at kennke.org (roman at kennke.org) Date: Wed, 09 May 2018 10:02:23 +0000 Subject: hg: shenandoah/jdk: Break heuristics out from ShCollectorPolicy into their own source files Message-ID: <201805091002.w49A2NmD004766@aojmv0008.oracle.com> Changeset: 60991f168696 Author: rkennke Date: 2018-05-08 19:50 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/60991f168696 Break heuristics out from ShCollectorPolicy into their own source files + 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/shenandoahAggressiveHeuristics.hpp + src/hotspot/share/gc/shenandoah/heuristics/shenandoahCompactHeuristics.cpp + src/hotspot/share/gc/shenandoah/heuristics/shenandoahCompactHeuristics.hpp + 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/shenandoahPassiveHeuristics.hpp + src/hotspot/share/gc/shenandoah/heuristics/shenandoahStaticHeuristics.cpp + src/hotspot/share/gc/shenandoah/heuristics/shenandoahStaticHeuristics.hpp + src/hotspot/share/gc/shenandoah/heuristics/shenandoahTraversalHeuristics.cpp + src/hotspot/share/gc/shenandoah/heuristics/shenandoahTraversalHeuristics.hpp ! src/hotspot/share/gc/shenandoah/shenandoahCollectorPolicy.cpp ! src/hotspot/share/gc/shenandoah/shenandoahHeapRegion.hpp + src/hotspot/share/gc/shenandoah/shenandoahHeuristics.cpp + src/hotspot/share/gc/shenandoah/shenandoahHeuristics.hpp From zgu at redhat.com Wed May 9 12:07:05 2018 From: zgu at redhat.com (Zhengyu Gu) Date: Wed, 9 May 2018 08:07:05 -0400 Subject: RFR: Make Shenandoah string deduplication CDS aware Message-ID: <88f83b39-70c7-00d9-d924-950f751af276@redhat.com> Following g1's string deduplication, we should also populate archived string to string deduplication table. Webrev: http://cr.openjdk.java.net/~zgu/shenandoah/dedup-cds/webrev.00/ Test: hotspot_gc_shenandoah + new test on Linux x64 (release + fastdebug) Thanks, -Zhengyu From zgu at redhat.com Wed May 9 13:36:16 2018 From: zgu at redhat.com (Zhengyu Gu) Date: Wed, 9 May 2018 09:36:16 -0400 Subject: RFR: Make Shenandoah string deduplication CDS aware In-Reply-To: <88f83b39-70c7-00d9-d924-950f751af276@redhat.com> References: <88f83b39-70c7-00d9-d924-950f751af276@redhat.com> Message-ID: <7de7a7c2-8dfa-f5a6-5d4a-8fd9e19614cf@redhat.com> Well, it looks like Shenandoah does not have shared string archive support: [0.021s][info][cds] Cached heap data from the CDS archive is being ignored. UseG1GC, UseCompressedOops and UseCompressedClassPointers are required. So, I would like to withdraw this patch and look into adding the support first. Thanks, -Zhengyu On 05/09/2018 08:07 AM, Zhengyu Gu wrote: > Following g1's string deduplication, we should also populate archived > string to string deduplication table. > > Webrev: http://cr.openjdk.java.net/~zgu/shenandoah/dedup-cds/webrev.00/ > > Test: > ? hotspot_gc_shenandoah + new test on Linux x64 (release + fastdebug) > > > Thanks, > > -Zhengyu From rkennke at redhat.com Wed May 9 17:02:26 2018 From: rkennke at redhat.com (Roman Kennke) Date: Wed, 9 May 2018 19:02:26 +0200 Subject: RFR: Use PLAB for evacuations instead of TLAB Message-ID: <0533075f-7977-0ef8-8514-f3fc0302b7fa@redhat.com> I propose to use PLAB for evacuations (write-barrier and GC workers). It has the following benefits: - It reverts/removes a *whole* lot of code to upstream state, thus significantly improving/reducing our upstream exposure - It is a much better fit for what we need (e.g. already has rollback functionality) - It avoids disturbing TLAB stats by GCLAB activity (which has much different characteristics) - I implemented it to not mix up mutator and collector GCLAB stats, which have very different characteristics (churn vs. very occasional allocs) I hope I got the mechanics right. This might need some experimentation and tweaking afterwards, and would then be backportable. http://cr.openjdk.java.net/~rkennke/plab-gclab/webrev.00/ Testing: hotspot_gc_shenandoah ok From rkennke at redhat.com Wed May 9 18:11:25 2018 From: rkennke at redhat.com (Roman Kennke) Date: Wed, 9 May 2018 20:11:25 +0200 Subject: RFR: Use PLAB for evacuations instead of TLAB In-Reply-To: <0533075f-7977-0ef8-8514-f3fc0302b7fa@redhat.com> References: <0533075f-7977-0ef8-8514-f3fc0302b7fa@redhat.com> Message-ID: <7add73c9-c0c8-dc10-bab6-4622af740033@redhat.com> Am 09.05.2018 um 19:02 schrieb Roman Kennke: > I propose to use PLAB for evacuations (write-barrier and GC workers). It > has the following benefits: > - It reverts/removes a *whole* lot of code to upstream state, thus > significantly improving/reducing our upstream exposure > - It is a much better fit for what we need (e.g. already has rollback > functionality) > - It avoids disturbing TLAB stats by GCLAB activity (which has much > different characteristics) > - I implemented it to not mix up mutator and collector GCLAB stats, > which have very different characteristics (churn vs. very occasional allocs) > > I hope I got the mechanics right. This might need some experimentation > and tweaking afterwards, and would then be backportable. > > http://cr.openjdk.java.net/~rkennke/plab-gclab/webrev.00/ > > Testing: hotspot_gc_shenandoah ok > Need to move around some UseTLAB guards. The GCLABs are enabled regardless of UseTLAB or not. Do we want to guard this with a separate flag? Diff: http://cr.openjdk.java.net/~rkennke/plab-gclab/webrev.01.diff/ Full: http://cr.openjdk.java.net/~rkennke/plab-gclab/webrev.01/ Roman From rkennke at redhat.com Wed May 9 19:30:41 2018 From: rkennke at redhat.com (Roman Kennke) Date: Wed, 9 May 2018 21:30:41 +0200 Subject: RFR: Fix ShFreeSet boundary case Message-ID: <163ce2fc-b2b2-e8f3-774e-d2dd33769470@redhat.com> In ShFreeSet, if we steal a region from 'the other' set, and then immediately allocate a region-sized object (e.g. a LAB), the region gets retired and taken out of any of the two allocator/mutator free sets. However, right afterwards, the region gets added to the set again. When that happens, it will run into the assert at the start of ShFreeSet::try_allocate_in() l168. Observed with the new PLAB code. Apparently this triggers the situation fairly often because it tends to allocate region sized GCLABs. http://cr.openjdk.java.net/~rkennke/fixfreeset/webrev.00/ Testing: hotspot_gc_dev (with PLAB patch) ok Roman From rkennke at redhat.com Wed May 9 20:27:22 2018 From: rkennke at redhat.com (Roman Kennke) Date: Wed, 9 May 2018 22:27:22 +0200 Subject: Feedback from experiments on production application In-Reply-To: <4E14A9F9-41F7-404E-9E87-5CD356853626@gmail.com> References: <02f08fe4-a1fe-de17-dc46-b7ab607ef375@redhat.com> <4BF631F5-B5B6-48A5-8CB8-AC27E66902AE@gmail.com> <5a4a1e79-5f03-3f0b-fa67-bdfd6faaba88@redhat.com> <4E14A9F9-41F7-404E-9E87-5CD356853626@gmail.com> Message-ID: <649f4249-7e87-35c3-946c-c259db5130f1@redhat.com> Hi Petr, thanks for running the experiments with newer builds again. I guess the class unloading problem can currently only be 'solved' by disabling it with -XX:ShenandoahUnloadClassesFrequency=0, which should be ok if your application doesn't use much classloaders. However, be aware that app servers then to make fairly heavy use of classloaders. And then there is also anonymous classes (and related stuff like lambdas) which are not obvious but also put pressure on the class unloading. If it is possible at all for you to run with JDK10 or JDK11, you might want to try the latest build of that: https://builds.shipilev.net/openjdk-shenandoah-jdk/ and use the traversal heuristics: -XX:ShenandoahGCHeuristics=traversal that might solve the tightly spaced pauses problem. Explanation: Traversal mode only has one concurrent phase to do all of marking+evacuation+updating-referenes, book-ended by a pause at each end. Classic Shenandoah has 3 concurrent phases, with 4 pauses in total, and in your workload it seems that two of the 3 phases are really short, and that's why you see the 'STW storm' (nice term!) We shall look into improving heuristics to avoid that, e.g. by folding the concurrent phases into a single pause if expected concurrent work is too little. Cheers, Roman > I have tried again with build 25.71-b228 > > This build seems like an improvement over the one I used before. > Just by glancing into the logs it seems that GC pauses got smaller. > > About the 2 observations I had in previous email: > 1) Class unloading > Every fifth ShenandoahFinalMarkStartEvac pauses is longer (around 14ms) compared to the ones when it does not try to unload classes (7-8ms). > As promised, it really says that it tries to unload the classes now, so the longer pause can be associated with it: > > Concurrent marking triggered. Free: 2249M, Free Threshold: 2252M; Allocated: 18009M, Alloc Threshold: 0M > Free set: Used: 17810M of 20060M, Regions: 298 mutator, 0 collector > Free set: Mutator view: Max regular: 8192K, Max humongous: 2048000K, External frag: 12%, Internal frag: 5% > Free set: Collector view: Max regular: 0K > Application time: 8.4427237 seconds > [Pause Init Mark (unload classes)Pacer for Mark. Used: 18226M, Free: 2249M, Non-Taxable: 224M, Alloc Tax Rate: 29.7x > , 3.064 ms] > vmop [threads: total initially_running wait_to_block] [time: spin block sync cleanup vmop] page_trap_count > 1507.865: ShenandoahInitMark [ 1074 0 0 ] [ 0 0 0 1 3 ] 0 > Total time for which application threads were stopped: 0.0054101 seconds, Stopping threads took: 0.0004040 seconds > [Concurrent marking (unload classes) 17G->17G(20G), 33.855 ms] > Application time: 0.0344424 seconds > [Pause Final Mark (unload classes)Adaptive CSet Selection. Target Free: 3276M, Actual Free: 17876M, Target CSet: [0M, 13407M] > Collectable Garbage: 2099M (11% of total), 3M CSet, 263 CSet regions > Immediate Garbage: 15868M (87% of total), 1984 regions > Free: 18046M, Regions: 2271 mutator, 0 collector > Pacer for Evacuation. CSet: 3M, Free: 18046M, Non-Taxable: 1804M, Alloc Tax Rate: 1.1x > , 11.950 ms] > vmop [threads: total initially_running wait_to_block] [time: spin block sync cleanup vmop] page_trap_count > 1507.905: ShenandoahFinalMarkStartEvac [ 1074 1 4 ] [ 0 0 0 1 11 ] 0 > Total time for which application threads were stopped: 0.0146809 seconds, Stopping threads took: 0.0006311 seconds > [Concurrent cleanup 17G->2442M(20G), 0.566 ms] > [Concurrent evacuation 2445M->2464M(20G), 3.280 ms] > > 2) Too closely spaced STW pauses > It is the same story as before. This actually got worse It seems that Shenandoah is doing too well on strongly generational workloads like my application is doing (when application-scoped objects are created at the beginning and almost everything created after that is request scoped). This is very extreme with default settings. The JVM takes 13 concurrent threads on the test machine and then the log is full of pathological situations like this: > > 1431.134: ShenandoahInitMark [ 1074 0 1 ] [ 0 0 0 1 2 ] 0 > Total time for which application threads were stopped: 0.0052016 seconds, Stopping threads took: 0.0004466 seconds > [Concurrent marking (process refs) 17G->17G(20G), 32.542 ms] > [Concurrent precleaning 17G->17G(20G), 2.180 ms] > Application time: 0.0367779 seconds > [Pause Final Mark (process refs)Adaptive CSet Selection. Target Free: 3276M, Actual Free: 18102M, Target CSet: [0M, 13576M] > Collectable Garbage: 1915M (10% of total), 9M CSet, 241 CSet regions > Immediate Garbage: 16078M (88% of total), 2011 regions > Free: 18253M, Regions: 2296 mutator, 0 collector > Pacer for Evacuation. CSet: 9M, Free: 18253M, Non-Taxable: 1825M, Alloc Tax Rate: 1.1x > , 4.711 ms] > vmop [threads: total initially_running wait_to_block] [time: spin block sync cleanup vmop] page_trap_count > 1431.176: ShenandoahFinalMarkStartEvac [ 1074 4 0 ] [ 0 0 0 1 4 ] 0 > Total time for which application threads were stopped: 0.0073044 seconds, Stopping threads took: 0.0006198 seconds > [Concurrent cleanup 17G->2232M(20G), 0.627 ms] > [Concurrent evacuation 2232M->2274M(20G), 3.539 ms] > Application time: 0.0043597 seconds > [Pause Init Update RefsPacer for Update-Refs. Used: 2274M, Free: 18202M, Non-Taxable: 1820M, Alloc Tax Rate: 1.1x > , 0.272 ms] > vmop [threads: total initially_running wait_to_block] [time: spin block sync cleanup vmop] page_trap_count > 1431.188: ShenandoahInitUpdateRefs [ 1074 0 1 ] [ 0 0 0 2 0 ] 0 > Total time for which application threads were stopped: 0.0029428 seconds, Stopping threads took: 0.0003774 seconds > [Concurrent update references 2274M->2343M(20G), 29.363 ms] > Application time: 0.0294687 seconds > [Pause Final Update RefsFree: 20060M, Regions: 2524 mutator, 0 collector > , 1.745 ms] > vmop [threads: total initially_running wait_to_block] [time: spin block sync cleanup vmop] page_trap_count > 1431.221: ShenandoahFinalUpdateRefs [ 1074 0 1 ] [ 0 0 0 2 1 ] 0 > Total time for which application threads were stopped: 0.0048456 seconds, Stopping threads took: 0.0005142 seconds > [Concurrent cleanup 2344M->420M(20G), 1.251 ms] > > The effect on the request tail latency observed by the test client during such a STW storm is worse than one larger pause done by G1. > Again setting Concurrent threads to 1 helps a lot, but even with that especially ShenandoahFinalMarkStartEvac is often so short, that it its STW pause almost joins with the next pause: > 958.586: ShenandoahInitMark [ 1075 0 0 ] [ 0 0 0 1 2 ] 0 > Total time for which application threads were stopped: 0.0049878 seconds, Stopping threads took: 0.0004109 seconds > [Concurrent marking 17G->17G(20G), 94.828 ms] > Application time: 0.0949659 seconds > [Pause Final MarkAdaptive CSet Selection. Target Free: 3276M, Actual Free: 18423M, Target CSet: [0M, 13817M] > Collectable Garbage: 1480M (8% of total), 3M CSet, 186 CSet regions > Immediate Garbage: 16511M (90% of total), 2064 regions > Free: 18597M, Regions: 2343 mutator, 0 collector > Pacer for Evacuation. CSet: 3M, Free: 18597M, Non-Taxable: 1859M, Alloc Tax Rate: 1.1x > , 5.164 ms] > vmop [threads: total initially_running wait_to_block] [time: spin block sync cleanup vmop] page_trap_count > 958.686: ShenandoahFinalMarkStartEvac [ 1075 0 0 ] [ 0 0 0 1 5 ] 0 > Total time for which application threads were stopped: 0.0076722 seconds, Stopping threads took: 0.0004436 seconds > [Concurrent cleanup 17G->1896M(20G), 0.684 ms] > [Concurrent evacuation 1896M->1948M(20G), 7.096 ms] > Application time: 0.0081824 seconds > [Pause Init Update RefsPacer for Update-Refs. Used: 1948M, Free: 18526M, Non-Taxable: 1852M, Alloc Tax Rate: 1.1x > , 0.290 ms] > vmop [threads: total initially_running wait_to_block] [time: spin block sync cleanup vmop] page_trap_count > 958.702: ShenandoahInitUpdateRefs [ 1075 0 0 ] [ 0 0 0 1 0 ] 0 > Total time for which application threads were stopped: 0.0027895 seconds, Stopping threads took: 0.0004562 seconds > [Concurrent update references 1948M->2170M(20G), 131.651 ms] > Application time: 0.1317581 seconds > [Pause Final Update RefsFree: 19793M, Regions: 2499 mutator, 0 collector > , 1.593 ms] > vmop [threads: total initially_running wait_to_block] [time: spin block sync cleanup vmop] page_trap_count > 958.836: ShenandoahFinalUpdateRefs [ 1075 0 0 ] [ 0 0 0 1 1 ] 0 > Total time for which application threads were stopped: 0.0039250 seconds, Stopping threads took: 0.0004161 seconds > [Concurrent cleanup 2170M->704M(20G), 4.958 ms] > > > > If you need some more statistics or rerunning the workload with different setting, don?t hesitate to ask. > > > Petr > > > >> On 9 May 2018, at 09:36, Aleksey Shipilev wrote: >> >> On 05/09/2018 07:53 AM, Roman Kennke wrote: >>> Would it be possible to run the same experiments with a newer build, >>> e.g. one from here: >>> >>> https://builds.shipilev.net/ >> >> More precisely, this one for 8u: >> https://builds.shipilev.net/openjdk-shenandoah-jdk8/ >> >> >>>> I would suggest mentioning somewhere in the user guide the fact, that the class unloading >>>> feature can significantly prolong GC pauses. Also the GC logging could mention that the class >>>> unloading is going on (yes, you can see it with class unloading logging on, but most people >>>> usually don?t have it on, when trying to fix GC issues). >> It does mention it in recent builds, like this: >> >> [Pause Init Mark (unload classes), 3.463 ms] >> [Concurrent marking (unload classes) 557M->557M(8192M), 53.294 ms] >> [Pause Final Mark (unload classes), 15.750 ms] >> [Concurrent cleanup 557M->543M(8192M), 0.288 ms] >> >> Thanks, >> -Aleksey >> > From zgu at redhat.com Wed May 9 20:45:44 2018 From: zgu at redhat.com (Zhengyu Gu) Date: Wed, 9 May 2018 16:45:44 -0400 Subject: RFR: Use PLAB for evacuations instead of TLAB In-Reply-To: <7add73c9-c0c8-dc10-bab6-4622af740033@redhat.com> References: <0533075f-7977-0ef8-8514-f3fc0302b7fa@redhat.com> <7add73c9-c0c8-dc10-bab6-4622af740033@redhat.com> Message-ID: <3aaabb2b-2353-aa7d-f449-58c92371d1f6@redhat.com> Hi Roman, On 05/09/2018 02:11 PM, Roman Kennke wrote: > Need to move around some UseTLAB guards. The GCLABs are enabled > regardless of UseTLAB or not. Do we want to guard this with a separate flag? > > Diff: > http://cr.openjdk.java.net/~rkennke/plab-gclab/webrev.01.diff/ > Full: > http://cr.openjdk.java.net/~rkennke/plab-gclab/webrev.01/ ShenandoahBarrierSet.cpp L384: thread is passed in as JavaThread*, so this test is unnecessary, and "else" path can be eliminated. ShenandoahHeap.cpp L1499 Need scope block for 1499 ShenandoahGCPhase phase(ShenandoahPhaseTimings::make_parsable); 1500 make_tlabs_parsable(true); or should just keep UseTLAB test here to avoid misleading timing info, in case of phase time > 0. Thanks, -Zhengyu > > > Roman > From rkennke at redhat.com Wed May 9 21:19:14 2018 From: rkennke at redhat.com (Roman Kennke) Date: Wed, 9 May 2018 23:19:14 +0200 Subject: RFR: Use PLAB for evacuations instead of TLAB In-Reply-To: <3aaabb2b-2353-aa7d-f449-58c92371d1f6@redhat.com> References: <0533075f-7977-0ef8-8514-f3fc0302b7fa@redhat.com> <7add73c9-c0c8-dc10-bab6-4622af740033@redhat.com> <3aaabb2b-2353-aa7d-f449-58c92371d1f6@redhat.com> Message-ID: Am 09.05.2018 um 22:45 schrieb Zhengyu Gu: > Hi Roman, > > On 05/09/2018 02:11 PM, Roman Kennke wrote: >> Need to move around some UseTLAB guards. The GCLABs are enabled >> regardless of UseTLAB or not. Do we want to guard this with a separate >> flag? >> >> Diff: >> http://cr.openjdk.java.net/~rkennke/plab-gclab/webrev.01.diff/ >> Full: >> http://cr.openjdk.java.net/~rkennke/plab-gclab/webrev.01/ > > ShenandoahBarrierSet.cpp L384: > ? thread is passed in as JavaThread*, so this test is unnecessary, and > "else" path can be eliminated. Oops. Fixed. > ShenandoahHeap.cpp L1499 > ? Need scope block for > 1499?? ShenandoahGCPhase phase(ShenandoahPhaseTimings::make_parsable); > 1500?? make_tlabs_parsable(true); > > or should just keep UseTLAB test here to avoid misleading timing info, > in case of phase time > 0. We also need to always retire the GCLABs, regardless of UseTLABs, the test is moved into the retire_all_tlabs() code. I also fixed some other issues that came up in more testing: A typo: - _collector_gclab_stats(new PLABStats("Shenandoah colletor GCLAB stats", YoungPLABSize, PLABWeight)), + _collector_gclab_stats(new PLABStats("Shenandoah collector GCLAB stats", YoungPLABSize, PLABWeight)), Added a call to + accumulate_statistics_all_gclabs(); in op_init_updaterefs() This latter one is very important. I only used to do this in op_final_evac() but this is almost never called. We need it to get appropriately sized GCLABs. I ran some quick performance tests and nothing suspicious came up. Evac times are where they used to be. Will run comprehensive before/after comparison over night. Eyeballing -Xlog:gc+plab=debug looks reasonable to me: [164,441s][debug][gc,plab] GC(85) Shenandoah mutator GCLAB stats PLAB allocation: allocated: 1516008B, wasted: 72880B, unused: 486880B, used: 956248B, undo waste: 0B, [164,441s][debug][gc,plab] GC(85) Shenandoah mutator GCLAB stats sizing: calculated: 956248B, actual: 1271144B [164,441s][debug][gc,plab] GC(85) Shenandoah colletor GCLAB stats PLAB allocation: allocated: 182452224B, wasted: 357312B, unused: 9645144B, used: 172449768B, undo waste: 0B, [164,441s][debug][gc,plab] GC(85) Shenandoah colletor GCLAB stats sizing: calculated: 172449768B, actual: 199585872B This sizing looks about right. Diff: http://cr.openjdk.java.net/~rkennke/plab-gclab/webrev.02.diff/ Full: http://cr.openjdk.java.net/~rkennke/plab-gclab/webrev.02/ From zgu at redhat.com Wed May 9 23:24:19 2018 From: zgu at redhat.com (Zhengyu Gu) Date: Wed, 9 May 2018 19:24:19 -0400 Subject: RFR: Use PLAB for evacuations instead of TLAB In-Reply-To: References: <0533075f-7977-0ef8-8514-f3fc0302b7fa@redhat.com> <7add73c9-c0c8-dc10-bab6-4622af740033@redhat.com> <3aaabb2b-2353-aa7d-f449-58c92371d1f6@redhat.com> Message-ID: > >> ShenandoahHeap.cpp L1499 >> ? Need scope block for >> 1499?? ShenandoahGCPhase phase(ShenandoahPhaseTimings::make_parsable); >> 1500?? make_tlabs_parsable(true); >> >> or should just keep UseTLAB test here to avoid misleading timing info, >> in case of phase time > 0. > > We also need to always retire the GCLABs, regardless of UseTLABs, the > test is moved into the retire_all_tlabs() code. > Ah, I missed changes in make_tlabs_parsable() :-( -Zhengyu > I also fixed some other issues that came up in more testing: > > A typo: > > - _collector_gclab_stats(new PLABStats("Shenandoah colletor GCLAB > stats", YoungPLABSize, PLABWeight)), > + _collector_gclab_stats(new PLABStats("Shenandoah collector GCLAB > stats", YoungPLABSize, PLABWeight)), > > > Added a call to > > + accumulate_statistics_all_gclabs(); > > in op_init_updaterefs() > > This latter one is very important. I only used to do this in > op_final_evac() but this is almost never called. We need it to get > appropriately sized GCLABs. > > I ran some quick performance tests and nothing suspicious came up. Evac > times are where they used to be. Will run comprehensive before/after > comparison over night. > > Eyeballing -Xlog:gc+plab=debug looks reasonable to me: > > [164,441s][debug][gc,plab] GC(85) Shenandoah mutator GCLAB stats PLAB > allocation: allocated: 1516008B, wasted: 72880B, unused: 486880B, used: > 956248B, undo waste: 0B, > [164,441s][debug][gc,plab] GC(85) Shenandoah mutator GCLAB stats sizing: > calculated: 956248B, actual: 1271144B > [164,441s][debug][gc,plab] GC(85) Shenandoah colletor GCLAB stats PLAB > allocation: allocated: 182452224B, wasted: 357312B, unused: 9645144B, > used: 172449768B, undo waste: 0B, > [164,441s][debug][gc,plab] GC(85) Shenandoah colletor GCLAB stats > sizing: calculated: 172449768B, actual: 199585872B > > > This sizing looks about right. > > Diff: > http://cr.openjdk.java.net/~rkennke/plab-gclab/webrev.02.diff/ > Full: > http://cr.openjdk.java.net/~rkennke/plab-gclab/webrev.02/ > From rkennke at redhat.com Thu May 10 11:42:58 2018 From: rkennke at redhat.com (Roman Kennke) Date: Thu, 10 May 2018 13:42:58 +0200 Subject: RFR: Use PLAB for evacuations instead of TLAB In-Reply-To: References: <0533075f-7977-0ef8-8514-f3fc0302b7fa@redhat.com> <7add73c9-c0c8-dc10-bab6-4622af740033@redhat.com> <3aaabb2b-2353-aa7d-f449-58c92371d1f6@redhat.com> Message-ID: Am 10.05.2018 um 01:24 schrieb Zhengyu Gu: >> >>> ShenandoahHeap.cpp L1499 >>> ?? Need scope block for >>> 1499?? ShenandoahGCPhase phase(ShenandoahPhaseTimings::make_parsable); >>> 1500?? make_tlabs_parsable(true); >>> >>> or should just keep UseTLAB test here to avoid misleading timing info, >>> in case of phase time > 0. >> >> We also need to always retire the GCLABs, regardless of UseTLABs, the >> test is moved into the retire_all_tlabs() code. >> > Ah, I missed changes in make_tlabs_parsable() :-( Can I take that as approval from you? ;-) I would like to get Aleksey's ok too. Roman From zgu at redhat.com Thu May 10 12:15:58 2018 From: zgu at redhat.com (Zhengyu Gu) Date: Thu, 10 May 2018 08:15:58 -0400 Subject: RFR: Use PLAB for evacuations instead of TLAB In-Reply-To: References: <0533075f-7977-0ef8-8514-f3fc0302b7fa@redhat.com> <7add73c9-c0c8-dc10-bab6-4622af740033@redhat.com> <3aaabb2b-2353-aa7d-f449-58c92371d1f6@redhat.com> Message-ID: <2cdcbc03-ac17-9f2d-c5dd-e096ddd24484@redhat.com> Yes, it looks ok to me. Thanks, -Zhengyu On 05/10/2018 07:42 AM, Roman Kennke wrote: > Am 10.05.2018 um 01:24 schrieb Zhengyu Gu: >>> >>>> ShenandoahHeap.cpp L1499 >>>> ?? Need scope block for >>>> 1499?? ShenandoahGCPhase phase(ShenandoahPhaseTimings::make_parsable); >>>> 1500?? make_tlabs_parsable(true); >>>> >>>> or should just keep UseTLAB test here to avoid misleading timing info, >>>> in case of phase time > 0. >>> >>> We also need to always retire the GCLABs, regardless of UseTLABs, the >>> test is moved into the retire_all_tlabs() code. >>> >> Ah, I missed changes in make_tlabs_parsable() :-( > > Can I take that as approval from you? ;-) > > I would like to get Aleksey's ok too. > > Roman > From shade at redhat.com Thu May 10 14:28:49 2018 From: shade at redhat.com (Aleksey Shipilev) Date: Thu, 10 May 2018 16:28:49 +0200 Subject: RFR: Use PLAB for evacuations instead of TLAB In-Reply-To: References: <0533075f-7977-0ef8-8514-f3fc0302b7fa@redhat.com> <7add73c9-c0c8-dc10-bab6-4622af740033@redhat.com> <3aaabb2b-2353-aa7d-f449-58c92371d1f6@redhat.com> Message-ID: <3d60d680-6d40-2617-e8f7-a749c1e9e0b1@redhat.com> On 05/09/2018 11:19 PM, Roman Kennke wrote: > Diff: > http://cr.openjdk.java.net/~rkennke/plab-gclab/webrev.02.diff/ > Full: > http://cr.openjdk.java.net/~rkennke/plab-gclab/webrev.02/ Looks like a nice cleanup. *) Seems that plab.* files exist only starting JDK 9. This would pose some problems with backporting, but it looks resolvable. *) Break this line, and use template parameter instead of cast? 47 AlignmentReserve = oopDesc::header_size() > MinObjAlignment ? align_object_size(MAX2(arrayOopDesc::header_size(T_INT), min_align_reserve)) : 0; *) There is a commented block, do we need it? 671 PLAB* gclab = ShenandoahThreadLocalData::gclab(thread); 672 /* 673 * TODO: We used to do that with TLABs, how to do it with PLABs? 674 675 if (gclab->free() > thread->gclab().refill_waste_limit()) { 676 thread->gclab().record_slow_allocation(size); 677 return NULL; 678 } 679 */ *) What is the reason for moving this block out of mark-compact? 229 if (UseTLAB) { 230 ShenandoahGCPhase phase(ShenandoahPhaseTimings::full_gc_resize_tlabs); 231 heap->resize_all_tlabs(); 232 } -Aleksey From shade at redhat.com Thu May 10 14:30:11 2018 From: shade at redhat.com (Aleksey Shipilev) Date: Thu, 10 May 2018 16:30:11 +0200 Subject: Feedback from experiments on production application In-Reply-To: <649f4249-7e87-35c3-946c-c259db5130f1@redhat.com> References: <02f08fe4-a1fe-de17-dc46-b7ab607ef375@redhat.com> <4BF631F5-B5B6-48A5-8CB8-AC27E66902AE@gmail.com> <5a4a1e79-5f03-3f0b-fa67-bdfd6faaba88@redhat.com> <4E14A9F9-41F7-404E-9E87-5CD356853626@gmail.com> <649f4249-7e87-35c3-946c-c259db5130f1@redhat.com> Message-ID: <5c6db1ac-24f8-a1c8-1d41-dfe8a97912c5@redhat.com> On 05/09/2018 10:27 PM, Roman Kennke wrote: > Hi Petr, > > thanks for running the experiments with newer builds again. > > I guess the class unloading problem can currently only be 'solved' by > disabling it with -XX:ShenandoahUnloadClassesFrequency=0, which should > be ok if your application doesn't use much classloaders. However, be > aware that app servers then to make fairly heavy use of classloaders. > And then there is also anonymous classes (and related stuff like > lambdas) which are not obvious but also put pressure on the class unloading. So maybe we can fix it radically: make class unloading opt-in, rather than opt-out with -XX:+UseShenandoahGC? Pending jdk/jdk work is supposed to make class unloading concurrent, and we can make it opt-out again at that point. It seems unwise to throw low-latency users under the bus like this. (Milder alternative: disable class unloading for concurrent cycles, but leave it for STW) Thanks, -Aleksey From shade at redhat.com Thu May 10 14:42:01 2018 From: shade at redhat.com (Aleksey Shipilev) Date: Thu, 10 May 2018 16:42:01 +0200 Subject: RFR: Fix ShFreeSet boundary case In-Reply-To: <163ce2fc-b2b2-e8f3-774e-d2dd33769470@redhat.com> References: <163ce2fc-b2b2-e8f3-774e-d2dd33769470@redhat.com> Message-ID: <2cec5dbf-9f8d-ff93-7e05-1e92df2ce698@redhat.com> On 05/09/2018 09:30 PM, Roman Kennke wrote: > In ShFreeSet, if we steal a region from 'the other' set, and then > immediately allocate a region-sized object (e.g. a LAB), the region gets > retired and taken out of any of the two allocator/mutator free sets. > However, right afterwards, the region gets added to the set again. When > that happens, it will run into the assert at the start of > ShFreeSet::try_allocate_in() l168. Observed with the new PLAB code. > Apparently this triggers the situation fairly often because it tends to > allocate region sized GCLABs. > > http://cr.openjdk.java.net/~rkennke/fixfreeset/webrev.00/ Ah! Oops. Looks good. -Aleksey From shade at redhat.com Thu May 10 15:05:34 2018 From: shade at redhat.com (Aleksey Shipilev) Date: Thu, 10 May 2018 17:05:34 +0200 Subject: RFR: Fix ShFreeSet boundary case In-Reply-To: <2cec5dbf-9f8d-ff93-7e05-1e92df2ce698@redhat.com> References: <163ce2fc-b2b2-e8f3-774e-d2dd33769470@redhat.com> <2cec5dbf-9f8d-ff93-7e05-1e92df2ce698@redhat.com> Message-ID: On 05/10/2018 04:42 PM, Aleksey Shipilev wrote: > On 05/09/2018 09:30 PM, Roman Kennke wrote: >> Observed with the new PLAB code. Apparently this triggers the situation fairly often because it >> tends to allocate region sized GCLABs. But this is also suspicious: we used to cap the TLAB sizes below region size to avoid fragmentation. This does not happen with PLABs? Should probably adjust that part. -Aleksey From rkennke at redhat.com Thu May 10 15:43:37 2018 From: rkennke at redhat.com (Roman Kennke) Date: Thu, 10 May 2018 17:43:37 +0200 Subject: RFR: Use PLAB for evacuations instead of TLAB In-Reply-To: <3d60d680-6d40-2617-e8f7-a749c1e9e0b1@redhat.com> References: <0533075f-7977-0ef8-8514-f3fc0302b7fa@redhat.com> <7add73c9-c0c8-dc10-bab6-4622af740033@redhat.com> <3aaabb2b-2353-aa7d-f449-58c92371d1f6@redhat.com> <3d60d680-6d40-2617-e8f7-a749c1e9e0b1@redhat.com> Message-ID: <8b146635-f114-92cb-a8a1-19775602850e@redhat.com> Am 10.05.2018 um 16:28 schrieb Aleksey Shipilev: > On 05/09/2018 11:19 PM, Roman Kennke wrote: >> Diff: >> http://cr.openjdk.java.net/~rkennke/plab-gclab/webrev.02.diff/ >> Full: >> http://cr.openjdk.java.net/~rkennke/plab-gclab/webrev.02/ > > Looks like a nice cleanup. > > *) Seems that plab.* files exist only starting JDK 9. This would pose some problems with > backporting, but it looks resolvable. We could put the plab.* stuff under shenandoah/ > *) Break this line, and use template parameter instead of cast? > > 47 AlignmentReserve = oopDesc::header_size() > MinObjAlignment ? > align_object_size(MAX2(arrayOopDesc::header_size(T_INT), min_align_reserve)) : > 0; Ok, done. > *) There is a commented block, do we need it? Not really. Removed it. > *) What is the reason for moving this block out of mark-compact? > > 229 if (UseTLAB) { > 230 ShenandoahGCPhase phase(ShenandoahPhaseTimings::full_gc_resize_tlabs); > 231 heap->resize_all_tlabs(); > 232 } resize_all_tlabs() is protected in CH. The alternative would be to override it and make it public. Whatever you prefer? Diff: http://cr.openjdk.java.net/~rkennke/plab-gclab/webrev.03.diff/ Full: http://cr.openjdk.java.net/~rkennke/plab-gclab/webrev.03/ Roman From rkennke at redhat.com Thu May 10 15:46:39 2018 From: rkennke at redhat.com (Roman Kennke) Date: Thu, 10 May 2018 17:46:39 +0200 Subject: RFR: Fix ShFreeSet boundary case In-Reply-To: References: <163ce2fc-b2b2-e8f3-774e-d2dd33769470@redhat.com> <2cec5dbf-9f8d-ff93-7e05-1e92df2ce698@redhat.com> Message-ID: Am 10.05.2018 um 17:05 schrieb Aleksey Shipilev: > On 05/10/2018 04:42 PM, Aleksey Shipilev wrote: >> On 05/09/2018 09:30 PM, Roman Kennke wrote: >>> Observed with the new PLAB code. Apparently this triggers the situation fairly often because it >>> tends to allocate region sized GCLABs. > But this is also suspicious: we used to cap the TLAB sizes below region size to avoid fragmentation. > This does not happen with PLABs? Apparently not. > Should probably adjust that part. Probably. I suggest to experiment with the new plab stuff once it's in and fine-tune it. Roman From shade at redhat.com Thu May 10 15:48:49 2018 From: shade at redhat.com (Aleksey Shipilev) Date: Thu, 10 May 2018 17:48:49 +0200 Subject: RFR: Use PLAB for evacuations instead of TLAB In-Reply-To: <8b146635-f114-92cb-a8a1-19775602850e@redhat.com> References: <0533075f-7977-0ef8-8514-f3fc0302b7fa@redhat.com> <7add73c9-c0c8-dc10-bab6-4622af740033@redhat.com> <3aaabb2b-2353-aa7d-f449-58c92371d1f6@redhat.com> <3d60d680-6d40-2617-e8f7-a749c1e9e0b1@redhat.com> <8b146635-f114-92cb-a8a1-19775602850e@redhat.com> Message-ID: On 05/10/2018 05:43 PM, Roman Kennke wrote: > Am 10.05.2018 um 16:28 schrieb Aleksey Shipilev: >> *) Seems that plab.* files exist only starting JDK 9. This would pose some problems with >> backporting, but it looks resolvable. > > We could put the plab.* stuff under shenandoah/ Yeah. I would probably do that for sh/jdk8 backports. >> *) What is the reason for moving this block out of mark-compact? >> >> 229 if (UseTLAB) { >> 230 ShenandoahGCPhase phase(ShenandoahPhaseTimings::full_gc_resize_tlabs); >> 231 heap->resize_all_tlabs(); >> 232 } > > resize_all_tlabs() is protected in CH. The alternative would be to > override it and make it public. Whatever you prefer? Ah, OK. No, moving the code is fine then. > Diff: > http://cr.openjdk.java.net/~rkennke/plab-gclab/webrev.03.diff/ > Full: > http://cr.openjdk.java.net/~rkennke/plab-gclab/webrev.03/ Looks good. -Aleksey From rkennke at redhat.com Thu May 10 19:28:24 2018 From: rkennke at redhat.com (Roman Kennke) Date: Thu, 10 May 2018 21:28:24 +0200 Subject: RFR: Use PLAB for evacuations instead of TLAB In-Reply-To: References: <0533075f-7977-0ef8-8514-f3fc0302b7fa@redhat.com> <7add73c9-c0c8-dc10-bab6-4622af740033@redhat.com> <3aaabb2b-2353-aa7d-f449-58c92371d1f6@redhat.com> <3d60d680-6d40-2617-e8f7-a749c1e9e0b1@redhat.com> <8b146635-f114-92cb-a8a1-19775602850e@redhat.com> Message-ID: Am 10.05.2018 um 17:48 schrieb Aleksey Shipilev: > On 05/10/2018 05:43 PM, Roman Kennke wrote: >> Am 10.05.2018 um 16:28 schrieb Aleksey Shipilev: >>> *) Seems that plab.* files exist only starting JDK 9. This would pose some problems with >>> backporting, but it looks resolvable. >> >> We could put the plab.* stuff under shenandoah/ > > Yeah. I would probably do that for sh/jdk8 backports. > >>> *) What is the reason for moving this block out of mark-compact? >>> >>> 229 if (UseTLAB) { >>> 230 ShenandoahGCPhase phase(ShenandoahPhaseTimings::full_gc_resize_tlabs); >>> 231 heap->resize_all_tlabs(); >>> 232 } >> >> resize_all_tlabs() is protected in CH. The alternative would be to >> override it and make it public. Whatever you prefer? > > Ah, OK. No, moving the code is fine then. > >> Diff: >> http://cr.openjdk.java.net/~rkennke/plab-gclab/webrev.03.diff/ >> Full: >> http://cr.openjdk.java.net/~rkennke/plab-gclab/webrev.03/ > > Looks good. > > -Aleksey > I just realized that it sortof depends on the allocation refactoring (see "Improve abstraction for runtime allocations"): http://mail.openjdk.java.net/pipermail/shenandoah-dev/2018-May/005886.html Re-basing it would mean to get half of that patch into this one. I think it's cleaner as it is. Roman From shade at redhat.com Fri May 11 12:51:59 2018 From: shade at redhat.com (Aleksey Shipilev) Date: Fri, 11 May 2018 14:51:59 +0200 Subject: RFR: Use PLAB for evacuations instead of TLAB In-Reply-To: References: <0533075f-7977-0ef8-8514-f3fc0302b7fa@redhat.com> <7add73c9-c0c8-dc10-bab6-4622af740033@redhat.com> <3aaabb2b-2353-aa7d-f449-58c92371d1f6@redhat.com> <3d60d680-6d40-2617-e8f7-a749c1e9e0b1@redhat.com> <8b146635-f114-92cb-a8a1-19775602850e@redhat.com> Message-ID: <1f8b96d8-af16-bbc9-9b5a-54bc771b7f62@redhat.com> On 05/10/2018 09:28 PM, Roman Kennke wrote: >>> Diff: >>> http://cr.openjdk.java.net/~rkennke/plab-gclab/webrev.03.diff/ >>> Full: >>> http://cr.openjdk.java.net/~rkennke/plab-gclab/webrev.03/ >> >> Looks good. >> >> -Aleksey >> > > I just realized that it sortof depends on the allocation refactoring > (see "Improve abstraction for runtime allocations"): > > http://mail.openjdk.java.net/pipermail/shenandoah-dev/2018-May/005886.html > > Re-basing it would mean to get half of that patch into this one. I think > it's cleaner as it is. Since using PLABs instead of TLABs is something that we want to backport, so it should be separate from whatever interface changes we also do. It seems runtime allocations interface would increase upstream exposure in backports, and so we better these two changes. -Aleksey From shade at redhat.com Fri May 11 12:52:25 2018 From: shade at redhat.com (Aleksey Shipilev) Date: Fri, 11 May 2018 14:52:25 +0200 Subject: RFR: Fix ShFreeSet boundary case In-Reply-To: References: <163ce2fc-b2b2-e8f3-774e-d2dd33769470@redhat.com> <2cec5dbf-9f8d-ff93-7e05-1e92df2ce698@redhat.com> Message-ID: <15e28d86-f482-4fc6-aadb-4bec3aeca1af@redhat.com> On 05/10/2018 05:46 PM, Roman Kennke wrote: > Am 10.05.2018 um 17:05 schrieb Aleksey Shipilev: >> On 05/10/2018 04:42 PM, Aleksey Shipilev wrote: >>> On 05/09/2018 09:30 PM, Roman Kennke wrote: >>>> Observed with the new PLAB code. Apparently this triggers the situation fairly often because it >>>> tends to allocate region sized GCLABs. >> But this is also suspicious: we used to cap the TLAB sizes below region size to avoid fragmentation. >> This does not happen with PLABs? > > Apparently not. > >> Should probably adjust that part. > > Probably. I suggest to experiment with the new plab stuff once it's in > and fine-tune it. OK. -Aleksey From shade at redhat.com Fri May 11 12:57:47 2018 From: shade at redhat.com (Aleksey Shipilev) Date: Fri, 11 May 2018 14:57:47 +0200 Subject: RFC: Pick up upstream jdk10 changes to sh/jdk10 Message-ID: <2f3c907c-56d0-0f03-9173-61d28b9841f7@redhat.com> JDK 10.0.2 is 2 months away, so I suggest we pick up the current set of build, product, and test fixes to sh/jdk10 to give them a ride, and to match our code better: http://cr.openjdk.java.net/~shade/shenandoah/merge-jdk10-2018-05-11/webrev.01/ Testing: hotspot_gc_shenandoah {fastdebug|release} Thanks, -Aleksey From rkennke at redhat.com Fri May 11 13:15:16 2018 From: rkennke at redhat.com (Roman Kennke) Date: Fri, 11 May 2018 15:15:16 +0200 Subject: RFR: Use PLAB for evacuations instead of TLAB In-Reply-To: <1f8b96d8-af16-bbc9-9b5a-54bc771b7f62@redhat.com> References: <0533075f-7977-0ef8-8514-f3fc0302b7fa@redhat.com> <7add73c9-c0c8-dc10-bab6-4622af740033@redhat.com> <3aaabb2b-2353-aa7d-f449-58c92371d1f6@redhat.com> <3d60d680-6d40-2617-e8f7-a749c1e9e0b1@redhat.com> <8b146635-f114-92cb-a8a1-19775602850e@redhat.com> <1f8b96d8-af16-bbc9-9b5a-54bc771b7f62@redhat.com> Message-ID: Am 11.05.2018 um 14:51 schrieb Aleksey Shipilev: > On 05/10/2018 09:28 PM, Roman Kennke wrote: >>>> Diff: >>>> http://cr.openjdk.java.net/~rkennke/plab-gclab/webrev.03.diff/ >>>> Full: >>>> http://cr.openjdk.java.net/~rkennke/plab-gclab/webrev.03/ >>> >>> Looks good. >>> >>> -Aleksey >>> >> >> I just realized that it sortof depends on the allocation refactoring >> (see "Improve abstraction for runtime allocations"): >> >> http://mail.openjdk.java.net/pipermail/shenandoah-dev/2018-May/005886.html >> >> Re-basing it would mean to get half of that patch into this one. I think >> it's cleaner as it is. > > Since using PLABs instead of TLABs is something that we want to backport, so it should be separate > from whatever interface changes we also do. It seems runtime allocations interface would increase > upstream exposure in backports, and so we better these two changes. > > -Aleksey > The allocation interface change should be backportable and not increase exposure very significantly (remove some here, add some there). Pulling in the plab stuff without it would also pull in at least half of the allocation path interface changes (everything that has to do with virtualizing fill_with_object() ). Roman From rkennke at redhat.com Fri May 11 13:16:20 2018 From: rkennke at redhat.com (Roman Kennke) Date: Fri, 11 May 2018 15:16:20 +0200 Subject: RFC: Pick up upstream jdk10 changes to sh/jdk10 In-Reply-To: <2f3c907c-56d0-0f03-9173-61d28b9841f7@redhat.com> References: <2f3c907c-56d0-0f03-9173-61d28b9841f7@redhat.com> Message-ID: Am 11.05.2018 um 14:57 schrieb Aleksey Shipilev: > JDK 10.0.2 is 2 months away, so I suggest we pick up the current set of build, product, and test > fixes to sh/jdk10 to give them a ride, and to match our code better: > http://cr.openjdk.java.net/~shade/shenandoah/merge-jdk10-2018-05-11/webrev.01/ > > Testing: hotspot_gc_shenandoah {fastdebug|release} > > Thanks, > -Aleksey > Good, go for it! Roman From rkennke at redhat.com Fri May 11 13:29:44 2018 From: rkennke at redhat.com (Roman Kennke) Date: Fri, 11 May 2018 15:29:44 +0200 Subject: RFR: Use PLAB for evacuations instead of TLAB In-Reply-To: <1f8b96d8-af16-bbc9-9b5a-54bc771b7f62@redhat.com> References: <0533075f-7977-0ef8-8514-f3fc0302b7fa@redhat.com> <7add73c9-c0c8-dc10-bab6-4622af740033@redhat.com> <3aaabb2b-2353-aa7d-f449-58c92371d1f6@redhat.com> <3d60d680-6d40-2617-e8f7-a749c1e9e0b1@redhat.com> <8b146635-f114-92cb-a8a1-19775602850e@redhat.com> <1f8b96d8-af16-bbc9-9b5a-54bc771b7f62@redhat.com> Message-ID: Am 11.05.2018 um 14:51 schrieb Aleksey Shipilev: > On 05/10/2018 09:28 PM, Roman Kennke wrote: >>>> Diff: >>>> http://cr.openjdk.java.net/~rkennke/plab-gclab/webrev.03.diff/ >>>> Full: >>>> http://cr.openjdk.java.net/~rkennke/plab-gclab/webrev.03/ >>> >>> Looks good. >>> >>> -Aleksey >>> >> >> I just realized that it sortof depends on the allocation refactoring >> (see "Improve abstraction for runtime allocations"): >> >> http://mail.openjdk.java.net/pipermail/shenandoah-dev/2018-May/005886.html >> >> Re-basing it would mean to get half of that patch into this one. I think >> it's cleaner as it is. > > Since using PLABs instead of TLABs is something that we want to backport, so it should be separate > from whatever interface changes we also do. It seems runtime allocations interface would increase > upstream exposure in backports, and so we better these two changes. > The alternative would be to add some mess similar to what we have in TLAB now to adjust fill_with_object() and initialize the fwd pointer, etc. I can do that -- after lunch ;-) Roman From shade at redhat.com Fri May 11 13:31:11 2018 From: shade at redhat.com (Aleksey Shipilev) Date: Fri, 11 May 2018 15:31:11 +0200 Subject: RFR: Use PLAB for evacuations instead of TLAB In-Reply-To: References: <0533075f-7977-0ef8-8514-f3fc0302b7fa@redhat.com> <7add73c9-c0c8-dc10-bab6-4622af740033@redhat.com> <3aaabb2b-2353-aa7d-f449-58c92371d1f6@redhat.com> <3d60d680-6d40-2617-e8f7-a749c1e9e0b1@redhat.com> <8b146635-f114-92cb-a8a1-19775602850e@redhat.com> <1f8b96d8-af16-bbc9-9b5a-54bc771b7f62@redhat.com> Message-ID: On 05/11/2018 03:29 PM, Roman Kennke wrote: > Am 11.05.2018 um 14:51 schrieb Aleksey Shipilev: >> On 05/10/2018 09:28 PM, Roman Kennke wrote: >>>>> Diff: >>>>> http://cr.openjdk.java.net/~rkennke/plab-gclab/webrev.03.diff/ >>>>> Full: >>>>> http://cr.openjdk.java.net/~rkennke/plab-gclab/webrev.03/ >>>> >>>> Looks good. >>>> >>>> -Aleksey >>>> >>> >>> I just realized that it sortof depends on the allocation refactoring >>> (see "Improve abstraction for runtime allocations"): >>> >>> http://mail.openjdk.java.net/pipermail/shenandoah-dev/2018-May/005886.html >>> >>> Re-basing it would mean to get half of that patch into this one. I think >>> it's cleaner as it is. >> >> Since using PLABs instead of TLABs is something that we want to backport, so it should be separate >> from whatever interface changes we also do. It seems runtime allocations interface would increase >> upstream exposure in backports, and so we better these two changes. >> > > > The alternative would be to add some mess similar to what we have in > TLAB now to adjust fill_with_object() and initialize the fwd pointer, > etc. I can do that -- after lunch ;-) Yes, please. I think it would be cleaner for all codebases. This PLAB change should be independent, and *then* we can clean it up with saner allocation path for sh/jdk and upstream. -Aleksey From ashipile at redhat.com Fri May 11 13:37:55 2018 From: ashipile at redhat.com (ashipile at redhat.com) Date: Fri, 11 May 2018 13:37:55 +0000 Subject: hg: shenandoah/jdk10: 14 new changesets Message-ID: <201805111337.w4BDbv1G003831@aojmv0008.oracle.com> Changeset: 30289d373031 Author: aph Date: 2018-04-23 19:32 +0100 URL: http://hg.openjdk.java.net/shenandoah/jdk10/rev/30289d373031 8200556: AArch64: assertion failure in slowdebug builds Reviewed-by: adinn ! src/hotspot/cpu/aarch64/nativeInst_aarch64.cpp Changeset: a0d259786ef9 Author: shade Date: 2018-01-17 15:17 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk10/rev/a0d259786ef9 8194554: filterArguments runs multiple filters in the wrong order Reviewed-by: psandoz, jrose ! src/java.base/share/classes/java/lang/invoke/MethodHandles.java + test/jdk/java/lang/invoke/FilterArgumentsTest.java Changeset: 9d2dd967cf74 Author: shade Date: 2018-03-22 18:51 +0100 URL: http://hg.openjdk.java.net/shenandoah/jdk10/rev/9d2dd967cf74 8200118: [TESTBUG] String concat tests should test toString() application order Reviewed-by: psandoz, redestad + test/jdk/java/lang/String/concat/ImplicitStringConcatOrder.java Changeset: 14083039a97a Author: poonam Date: 2018-02-07 21:53 +0000 URL: http://hg.openjdk.java.net/shenandoah/jdk10/rev/14083039a97a 8187577: JVM crash during gc doing concurrent marking Summary: Inform G1's SATB that a klass has been resurrected and it should not be unloaded Reviewed-by: coleenp, tschatzl, kbarrett ! src/hotspot/share/prims/jvmtiGetLoadedClasses.cpp Changeset: 802de89653c8 Author: mcimadamore Date: 2018-03-23 16:53 +0000 URL: http://hg.openjdk.java.net/shenandoah/jdk10/rev/802de89653c8 8199910: Compiler crashes with -g option and variables of intersection type inferred by `var` Summary: Javac should skip non-denotable types in the LocalVariableTypeTable attribute Reviewed-by: jlahoda Contributed-by: bitterfoxc at gmail.com ! src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Check.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/jvm/ClassWriter.java + test/langtools/tools/javac/T8199910.java ! test/langtools/tools/javac/lvti/harness/LocalVariableInferenceTester.java Changeset: e4530ef14c08 Author: mcimadamore Date: 2018-03-28 14:24 +0100 URL: http://hg.openjdk.java.net/shenandoah/jdk10/rev/e4530ef14c08 8200355: local variable inference regression test generates classfile in test folder Summary: LVTI harness should generate files in jtreg scratch dir Reviewed-by: vromero ! test/langtools/tools/javac/lvti/harness/LocalVariableInferenceTester.java Changeset: e45ed986801f Author: sgehwolf Date: 2018-04-25 15:33 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk10/rev/e45ed986801f 8202262: libjsig.so not linked with extra linker flags from configure Reviewed-by: erikj ! make/hotspot/lib/CompileLibjsig.gmk Changeset: 2f8a4aafe85f Author: sgehwolf Date: 2018-04-16 12:20 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk10/rev/2f8a4aafe85f 8201495: [Zero] Reduce limits of max heap size for boot JDK on s390 Reviewed-by: ihse, aph, simonis ! make/autoconf/boot-jdk.m4 Changeset: ddb10178cbb2 Author: sgehwolf Date: 2018-04-19 17:43 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk10/rev/ddb10178cbb2 8201788: Number of make jobs wrong for bootcycle-images target Reviewed-by: erikj, ihse ! make/Init.gmk Changeset: 784c9da2dfbe Author: dfuchs Date: 2018-01-26 14:15 +0000 URL: http://hg.openjdk.java.net/shenandoah/jdk10/rev/784c9da2dfbe 8195096: Exception printed on console with custom LogManager on starting Apache Tomcat Summary: make sure that loadLoggerHandler for ".handler" is called only from within addLogger Reviewed-by: mchung ! src/java.logging/share/classes/java/util/logging/LogManager.java + test/jdk/java/util/logging/LogManager/Configuration/rootLoggerHandlers/BadRootLoggerHandlers.java ! test/jdk/java/util/logging/LogManager/Configuration/rootLoggerHandlers/RootLoggerHandlers.java + test/jdk/java/util/logging/LogManager/Configuration/rootLoggerHandlers/badglobal.properties + test/jdk/java/util/logging/LogManager/Configuration/rootLoggerHandlers/badlogging.properties + test/jdk/java/util/logging/LogManager/Configuration/rootLoggerHandlers/custom/GlobalHandler.java ! test/jdk/java/util/logging/LogManager/Configuration/rootLoggerHandlers/logging.properties + test/jdk/java/util/logging/LogManager/Configuration/rootLoggerHandlers/test.policy Changeset: f49aa8143e35 Author: robm Date: 2018-05-08 18:54 -0700 URL: http://hg.openjdk.java.net/shenandoah/jdk10/rev/f49aa8143e35 8202784: generated-configure.sh changes missing in 8201495 Reviewed-by: tbell ! make/autoconf/generated-configure.sh Changeset: 4a93f4a1ddc8 Author: shade Date: 2018-04-25 14:53 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk10/rev/4a93f4a1ddc8 8202210: jlink uses little-endian for big-endian cross-compilation targets Reviewed-by: ihse, alanb, stuefe ! make/Images.gmk Changeset: 523e40ed3fc7 Author: shade Date: 2018-05-10 17:40 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk10/rev/523e40ed3fc7 8202540: Zero build is broken after JDK-8189871 (Refactor GC barriers to use declarative semantics) Reviewed-by: sgehwolf, dholmes, eosterlund ! src/hotspot/cpu/zero/globalDefinitions_zero.hpp Changeset: 3189d9d7f24c Author: shade Date: 2018-05-11 15:36 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk10/rev/3189d9d7f24c Merge ! src/hotspot/share/prims/jvmtiGetLoadedClasses.cpp From roman at kennke.org Fri May 11 13:56:36 2018 From: roman at kennke.org (roman at kennke.org) Date: Fri, 11 May 2018 13:56:36 +0000 Subject: hg: shenandoah/jdk: Fix ShFreeSet boundary case Message-ID: <201805111356.w4BDuaW2010761@aojmv0008.oracle.com> Changeset: b93e23862671 Author: rkennke Date: 2018-05-11 15:56 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/b93e23862671 Fix ShFreeSet boundary case ! src/hotspot/share/gc/shenandoah/shenandoahFreeSet.cpp From zgu at redhat.com Fri May 11 18:06:26 2018 From: zgu at redhat.com (Zhengyu Gu) Date: Fri, 11 May 2018 14:06:26 -0400 Subject: RFR: Trivial dead code cleanup Message-ID: <49150034-f1bc-08bd-2f81-1afb12147af3@redhat.com> A trivial cleanup of dead code. Webrev: http://cr.openjdk.java.net/~zgu/shenandoah/deadcode-cleanup/webrev.00/index.html Test: hotspot_gc_shenandoah on Linux 64 (fastdebug + release) Thanks, -Zhengyu From rkennke at redhat.com Fri May 11 19:51:03 2018 From: rkennke at redhat.com (Roman Kennke) Date: Fri, 11 May 2018 21:51:03 +0200 Subject: RFR: Trivial dead code cleanup In-Reply-To: <49150034-f1bc-08bd-2f81-1afb12147af3@redhat.com> References: <49150034-f1bc-08bd-2f81-1afb12147af3@redhat.com> Message-ID: Am 11.05.2018 um 20:06 schrieb Zhengyu Gu: > A trivial cleanup of dead code. > > Webrev: > http://cr.openjdk.java.net/~zgu/shenandoah/deadcode-cleanup/webrev.00/index.html > > > > Test: > > ? hotspot_gc_shenandoah on Linux 64 (fastdebug + release) > > Thanks, > > -Zhengyu Ok. It was non-trivial enough to make me think twice why _process_strong_tasks might not be used ;-) Roman From rkennke at redhat.com Fri May 11 20:31:28 2018 From: rkennke at redhat.com (Roman Kennke) Date: Fri, 11 May 2018 22:31:28 +0200 Subject: RFR: Use PLAB for evacuations instead of TLAB In-Reply-To: References: <0533075f-7977-0ef8-8514-f3fc0302b7fa@redhat.com> <7add73c9-c0c8-dc10-bab6-4622af740033@redhat.com> <3aaabb2b-2353-aa7d-f449-58c92371d1f6@redhat.com> <3d60d680-6d40-2617-e8f7-a749c1e9e0b1@redhat.com> <8b146635-f114-92cb-a8a1-19775602850e@redhat.com> <1f8b96d8-af16-bbc9-9b5a-54bc771b7f62@redhat.com> Message-ID: Am 11.05.2018 um 15:31 schrieb Aleksey Shipilev: > On 05/11/2018 03:29 PM, Roman Kennke wrote: >> Am 11.05.2018 um 14:51 schrieb Aleksey Shipilev: >>> On 05/10/2018 09:28 PM, Roman Kennke wrote: >>>>>> Diff: >>>>>> http://cr.openjdk.java.net/~rkennke/plab-gclab/webrev.03.diff/ >>>>>> Full: >>>>>> http://cr.openjdk.java.net/~rkennke/plab-gclab/webrev.03/ >>>>> >>>>> Looks good. >>>>> >>>>> -Aleksey >>>>> >>>> >>>> I just realized that it sortof depends on the allocation refactoring >>>> (see "Improve abstraction for runtime allocations"): >>>> >>>> http://mail.openjdk.java.net/pipermail/shenandoah-dev/2018-May/005886.html >>>> >>>> Re-basing it would mean to get half of that patch into this one. I think >>>> it's cleaner as it is. >>> >>> Since using PLABs instead of TLABs is something that we want to backport, so it should be separate >>> from whatever interface changes we also do. It seems runtime allocations interface would increase >>> upstream exposure in backports, and so we better these two changes. >>> >> >> >> The alternative would be to add some mess similar to what we have in >> TLAB now to adjust fill_with_object() and initialize the fwd pointer, >> etc. I can do that -- after lunch ;-) > > Yes, please. I think it would be cleaner for all codebases. This PLAB change should be independent, > and *then* we can clean it up with saner allocation path for sh/jdk and upstream. This should do it. It passes hotspot_gc_shenandoah: Differential patch: http://cr.openjdk.java.net/~rkennke/plab-gclab/webrev.04.diff/ Full patch: http://cr.openjdk.java.net/~rkennke/plab-gclab/webrev.04/ Ok? From zgu at redhat.com Fri May 11 20:44:32 2018 From: zgu at redhat.com (zgu at redhat.com) Date: Fri, 11 May 2018 20:44:32 +0000 Subject: hg: shenandoah/jdk: Cleanup: removed unused code Message-ID: <201805112044.w4BKiWLe015461@aojmv0008.oracle.com> Changeset: 89928b944f01 Author: zgu Date: 2018-05-11 16:44 -0400 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/89928b944f01 Cleanup: removed unused code ! src/hotspot/share/gc/shenandoah/shenandoahRootProcessor.cpp ! src/hotspot/share/gc/shenandoah/shenandoahRootProcessor.hpp ! src/hotspot/share/gc/shenandoah/shenandoahTraversalGC.cpp From shade at redhat.com Fri May 11 20:37:48 2018 From: shade at redhat.com (Aleksey Shipilev) Date: Fri, 11 May 2018 22:37:48 +0200 Subject: RFR: Use PLAB for evacuations instead of TLAB In-Reply-To: References: <0533075f-7977-0ef8-8514-f3fc0302b7fa@redhat.com> <7add73c9-c0c8-dc10-bab6-4622af740033@redhat.com> <3aaabb2b-2353-aa7d-f449-58c92371d1f6@redhat.com> <3d60d680-6d40-2617-e8f7-a749c1e9e0b1@redhat.com> <8b146635-f114-92cb-a8a1-19775602850e@redhat.com> <1f8b96d8-af16-bbc9-9b5a-54bc771b7f62@redhat.com> Message-ID: On 05/11/2018 10:31 PM, Roman Kennke wrote: > Differential patch: > http://cr.openjdk.java.net/~rkennke/plab-gclab/webrev.04.diff/ > Full patch: > http://cr.openjdk.java.net/~rkennke/plab-gclab/webrev.04/ > > Ok? OK. "obj1" might use a better name, e.g. "head_obj"? A bit sad we need to call post-alloc setup for fillers. We should maybe revisit this places some time later, and split the paths with UseShenandoahGC. -Aleksey From rkennke at redhat.com Fri May 11 21:25:42 2018 From: rkennke at redhat.com (Roman Kennke) Date: Fri, 11 May 2018 23:25:42 +0200 Subject: RFR: Use PLAB for evacuations instead of TLAB In-Reply-To: References: <0533075f-7977-0ef8-8514-f3fc0302b7fa@redhat.com> <7add73c9-c0c8-dc10-bab6-4622af740033@redhat.com> <3aaabb2b-2353-aa7d-f449-58c92371d1f6@redhat.com> <3d60d680-6d40-2617-e8f7-a749c1e9e0b1@redhat.com> <8b146635-f114-92cb-a8a1-19775602850e@redhat.com> <1f8b96d8-af16-bbc9-9b5a-54bc771b7f62@redhat.com> Message-ID: <4fd33f90-2515-06bc-f005-4cc96b9af4fc@redhat.com> Am 11.05.2018 um 22:37 schrieb Aleksey Shipilev: > On 05/11/2018 10:31 PM, Roman Kennke wrote: >> Differential patch: >> http://cr.openjdk.java.net/~rkennke/plab-gclab/webrev.04.diff/ >> Full patch: >> http://cr.openjdk.java.net/~rkennke/plab-gclab/webrev.04/ >> >> Ok? > > OK. "obj1" might use a better name, e.g. "head_obj"? Ok, done that. > A bit sad we need to call post-alloc setup for fillers. We should maybe revisit this places some > time later, and split the paths with UseShenandoahGC. It's basically what we did in TLABs. It'll all go away and look much nicer with the allocation refactoring! Diff: http://cr.openjdk.java.net/~rkennke/plab-gclab/webrev.05.diff/ Full: http://cr.openjdk.java.net/~rkennke/plab-gclab/webrev.05/ Ok? From rkennke at redhat.com Sun May 13 16:45:48 2018 From: rkennke at redhat.com (Roman Kennke) Date: Sun, 13 May 2018 18:45:48 +0200 Subject: RFR: Improve abstraction for runtime allocations In-Reply-To: <61989864-5192-36df-fda7-f5d149526849@redhat.com> References: <61989864-5192-36df-fda7-f5d149526849@redhat.com> Message-ID: Am 09.05.2018 um 00:12 schrieb Roman Kennke: > This improves (IMO) the GC interface abstraction for allocations in the > runtime. The idea is that much like GC owns heap access (loads and > stores, etc), the GC should also own allocations. Specifically, speaking > from Shenandoah perspective, it should be fully to GCs discretion how > much actual space is allocated, how it is laid out, etc. The way it is > currently done is actually close to this, but not quite: TLAB > allocations are outside of the GC interface, and the GC has no real good > way to intercept those. That is why we added > CH::tlab_post_allocation_setup() to perform additional setup after > allocating objects from TLABs (to initialize the forwarding pointer). > > This patch changes CH::mem_allocate() to also be responsible for > allocations from TLABs, if the GC wishes to do that. This means that all > the heap implementations need to explicitely call > CH::allocate_from_tlab() to support TLAB allocations. On the good side, > Shenandoah now has full control over object size and forwarding pointer > setup, without ugly insertions into shared code. > > I intend to upstream the non-Shenandoah parts soonish, after some time > to review+bake in Shenandoah. > > I also intend to implement something equivalent (and later upstream) for > interpreter, C1 and C2 separately. > > Tests: hotspot_gc_shenandoah > > http://cr.openjdk.java.net/~rkennke/allocations-rt/webrev.00/ > > Ok? > > Roman > This rebases the patch on top of the PLAB change. It basically reverts some changes in plab that I needed to do there: Diff: http://cr.openjdk.java.net/~rkennke/allocations-rt/webrev.01.diff/ Full: http://cr.openjdk.java.net/~rkennke/allocations-rt/webrev.01/ still passes hotspot_gc_shenandoah From shade at redhat.com Mon May 14 08:52:21 2018 From: shade at redhat.com (Aleksey Shipilev) Date: Mon, 14 May 2018 10:52:21 +0200 Subject: RFR: Use PLAB for evacuations instead of TLAB In-Reply-To: <4fd33f90-2515-06bc-f005-4cc96b9af4fc@redhat.com> References: <0533075f-7977-0ef8-8514-f3fc0302b7fa@redhat.com> <7add73c9-c0c8-dc10-bab6-4622af740033@redhat.com> <3aaabb2b-2353-aa7d-f449-58c92371d1f6@redhat.com> <3d60d680-6d40-2617-e8f7-a749c1e9e0b1@redhat.com> <8b146635-f114-92cb-a8a1-19775602850e@redhat.com> <1f8b96d8-af16-bbc9-9b5a-54bc771b7f62@redhat.com> <4fd33f90-2515-06bc-f005-4cc96b9af4fc@redhat.com> Message-ID: <6aece01d-e52f-c239-4081-bc47a64a65c9@redhat.com> On 05/11/2018 11:25 PM, Roman Kennke wrote: > Full: > http://cr.openjdk.java.net/~rkennke/plab-gclab/webrev.05/ Looks OK. I have a few final questions: *) On this path we can fire assert with -UseTLAB? 256 inline HeapWord* ShenandoahHeap::allocate_from_gclab(Thread* thread, size_t size) { 257 PLAB* gclab = ShenandoahThreadLocalData::gclab(thread); 258 if (gclab == NULL) { 259 assert(!thread->is_Java_thread() && !thread->is_Worker_thread(), 260 "Performance: thread should have GCLAB: %s", thread->name()); 261 // No GCLABs in this thread, fallback to shared allocation 262 return NULL; 263 } Otherwise OK. -Aleksey From shade at redhat.com Mon May 14 09:12:58 2018 From: shade at redhat.com (Aleksey Shipilev) Date: Mon, 14 May 2018 11:12:58 +0200 Subject: RFR: Improve abstraction for runtime allocations In-Reply-To: References: <61989864-5192-36df-fda7-f5d149526849@redhat.com> Message-ID: <6f503fa3-4969-07aa-0a51-5ae2d9bb8574@redhat.com> On 05/13/2018 06:45 PM, Roman Kennke wrote: > This rebases the patch on top of the PLAB change. It basically reverts > some changes in plab that I needed to do there: > > Diff: > http://cr.openjdk.java.net/~rkennke/allocations-rt/webrev.01.diff/ > Full: > http://cr.openjdk.java.net/~rkennke/allocations-rt/webrev.01/ The patch looks good. But the whole lot of reshuffling in shared code unnerves me. In my mind, it feels safer to do the mem_allocate rework in upstream, make sure upstream does not break with it, and then pick it up from there. Otherwise, we are risking investing into some code shape that would be flat-out rejected upstream, and we would have to redo it again. Alternative: seeing how the only use of mem_allocate is in CH::common_mem_allocate_noinit, maybe we should instead do just disable TLAB alloc block there, and do only Shenandoah part of mem_allocate changes. E.g.: ---------- 8< --------------------------------------------------------------- if (!UseShenandoahGC) { HeapWord* result = NULL; if (UseTLAB) { result = allocate_from_tlab(klass, THREAD, size); if (result != NULL) { assert(!HAS_PENDING_EXCEPTION, "Unexpected exception, will result in uninitialized storage"); return result; } } } bool gc_overhead_limit_was_exceeded = false; result = Universe::heap()->mem_allocate(size, klass, THREAD, &gc_overhead_limit_was_exceeded); ---------- 8< --------------------------------------------------------------- Then have the overload of CH::mem_allocate that ignores new Klass* and Thread* params. This keeps shared changes to minimum, until upstream accepts them. -Aleksey From shade at redhat.com Mon May 14 09:15:45 2018 From: shade at redhat.com (Aleksey Shipilev) Date: Mon, 14 May 2018 11:15:45 +0200 Subject: RFR/RFC: Pick up upstream 8u172 to sh/jdk8u Message-ID: <43f8d6a6-ed96-d3ec-07bc-d39796b9a3be@redhat.com> Upstream had published 8u172 recently, let us pick it up to sh/jdk8u. Hotspot changes: http://cr.openjdk.java.net/~shade/shenandoah/merge-jdk8u172.patch Testing: hotspot_gc_shenandoah {fastdebug,release} Thanks, -Aleksey From rkennke at redhat.com Mon May 14 09:23:57 2018 From: rkennke at redhat.com (Roman Kennke) Date: Mon, 14 May 2018 11:23:57 +0200 Subject: RFR: Use PLAB for evacuations instead of TLAB In-Reply-To: <6aece01d-e52f-c239-4081-bc47a64a65c9@redhat.com> References: <0533075f-7977-0ef8-8514-f3fc0302b7fa@redhat.com> <7add73c9-c0c8-dc10-bab6-4622af740033@redhat.com> <3aaabb2b-2353-aa7d-f449-58c92371d1f6@redhat.com> <3d60d680-6d40-2617-e8f7-a749c1e9e0b1@redhat.com> <8b146635-f114-92cb-a8a1-19775602850e@redhat.com> <1f8b96d8-af16-bbc9-9b5a-54bc771b7f62@redhat.com> <4fd33f90-2515-06bc-f005-4cc96b9af4fc@redhat.com> <6aece01d-e52f-c239-4081-bc47a64a65c9@redhat.com> Message-ID: <6336f747-f4da-061b-2cc5-8edfee246809@redhat.com> Am 14.05.2018 um 10:52 schrieb Aleksey Shipilev: > On 05/11/2018 11:25 PM, Roman Kennke wrote: >> Full: >> http://cr.openjdk.java.net/~rkennke/plab-gclab/webrev.05/ > > Looks OK. I have a few final questions: > > *) On this path we can fire assert with -UseTLAB? > > 256 inline HeapWord* ShenandoahHeap::allocate_from_gclab(Thread* thread, size_t size) { > 257 PLAB* gclab = ShenandoahThreadLocalData::gclab(thread); > 258 if (gclab == NULL) { > 259 assert(!thread->is_Java_thread() && !thread->is_Worker_thread(), > 260 "Performance: thread should have GCLAB: %s", thread->name()); > 261 // No GCLABs in this thread, fallback to shared allocation > 262 return NULL; > 263 } > > Otherwise OK. GCLAB usage is no longer tied to +UseTLAB. I.e. even if we -UseTLAB, we'd still be using GCLABs. We can change this if you prefer, or even introduce a new flag (e.g. +ShenandoahUseGCLAB) ? Roman From rkennke at redhat.com Mon May 14 09:26:50 2018 From: rkennke at redhat.com (Roman Kennke) Date: Mon, 14 May 2018 11:26:50 +0200 Subject: RFR/RFC: Pick up upstream 8u172 to sh/jdk8u In-Reply-To: <43f8d6a6-ed96-d3ec-07bc-d39796b9a3be@redhat.com> References: <43f8d6a6-ed96-d3ec-07bc-d39796b9a3be@redhat.com> Message-ID: Am 14.05.2018 um 11:15 schrieb Aleksey Shipilev: > Upstream had published 8u172 recently, let us pick it up to sh/jdk8u. > > Hotspot changes: > http://cr.openjdk.java.net/~shade/shenandoah/merge-jdk8u172.patch > > Testing: hotspot_gc_shenandoah {fastdebug,release} > > Thanks, > -Aleksey > Ok From shade at redhat.com Mon May 14 09:27:52 2018 From: shade at redhat.com (Aleksey Shipilev) Date: Mon, 14 May 2018 11:27:52 +0200 Subject: RFR: Use PLAB for evacuations instead of TLAB In-Reply-To: <6336f747-f4da-061b-2cc5-8edfee246809@redhat.com> References: <0533075f-7977-0ef8-8514-f3fc0302b7fa@redhat.com> <7add73c9-c0c8-dc10-bab6-4622af740033@redhat.com> <3aaabb2b-2353-aa7d-f449-58c92371d1f6@redhat.com> <3d60d680-6d40-2617-e8f7-a749c1e9e0b1@redhat.com> <8b146635-f114-92cb-a8a1-19775602850e@redhat.com> <1f8b96d8-af16-bbc9-9b5a-54bc771b7f62@redhat.com> <4fd33f90-2515-06bc-f005-4cc96b9af4fc@redhat.com> <6aece01d-e52f-c239-4081-bc47a64a65c9@redhat.com> <6336f747-f4da-061b-2cc5-8edfee246809@redhat.com> Message-ID: <668a3464-0311-8eac-4b48-450bf0bbf124@redhat.com> On 05/14/2018 11:23 AM, Roman Kennke wrote: > Am 14.05.2018 um 10:52 schrieb Aleksey Shipilev: >> On 05/11/2018 11:25 PM, Roman Kennke wrote: >>> Full: >>> http://cr.openjdk.java.net/~rkennke/plab-gclab/webrev.05/ >> >> Looks OK. I have a few final questions: >> >> *) On this path we can fire assert with -UseTLAB? >> >> 256 inline HeapWord* ShenandoahHeap::allocate_from_gclab(Thread* thread, size_t size) { >> 257 PLAB* gclab = ShenandoahThreadLocalData::gclab(thread); >> 258 if (gclab == NULL) { >> 259 assert(!thread->is_Java_thread() && !thread->is_Worker_thread(), >> 260 "Performance: thread should have GCLAB: %s", thread->name()); >> 261 // No GCLABs in this thread, fallback to shared allocation >> 262 return NULL; >> 263 } >> >> Otherwise OK. > > GCLAB usage is no longer tied to +UseTLAB. I.e. even if we -UseTLAB, > we'd still be using GCLABs. We can change this if you prefer, or even > introduce a new flag (e.g. +ShenandoahUseGCLAB) ? Oh. That was counter-intuitive. But looking how other GCs do this, it seems my intuition about UseTLAB is wrong. It seems Parallel and G1 still do PLABs even with -UseTLAB, so we are good doing the same. -Aleksey From ashipile at redhat.com Mon May 14 09:41:13 2018 From: ashipile at redhat.com (ashipile at redhat.com) Date: Mon, 14 May 2018 09:41:13 +0000 Subject: hg: shenandoah/jdk8u/jaxws: 56 new changesets Message-ID: <201805140941.w4E9fFiR013881@aojmv0008.oracle.com> Changeset: 61a5375fb2a7 Author: andrew Date: 2018-04-30 19:00 +0100 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/jaxws/rev/61a5375fb2a7 Added tag aarch64-jdk8u171-b11 for changeset 7ffd685f5516 ! .hgtags Changeset: 7b4329f78e52 Author: asaha Date: 2017-12-19 15:37 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/jaxws/rev/7b4329f78e52 Added tag jdk8u162-b12 for changeset b73f27fc902b ! .hgtags Changeset: 9738b7faaee4 Author: asaha Date: 2017-10-03 23:30 -0700 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/jaxws/rev/9738b7faaee4 Added tag jdk8u171-b00 for changeset b43391a4015f ! .hgtags Changeset: 8aec7ba7bfe3 Author: asaha Date: 2017-11-02 11:33 -0700 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/jaxws/rev/8aec7ba7bfe3 Merge ! .hgtags Changeset: ddf13a1bca64 Author: asaha Date: 2017-10-06 08:33 -0700 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/jaxws/rev/ddf13a1bca64 Added tag jdk8u152-b31 for changeset 52c09505e989 ! .hgtags Changeset: 89c5dcb05c10 Author: asaha Date: 2017-10-31 14:56 -0700 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/jaxws/rev/89c5dcb05c10 Added tag jdk8u152-b32 for changeset ddf13a1bca64 ! .hgtags Changeset: 89658eba580a Author: asaha Date: 2017-11-14 13:11 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/jaxws/rev/89658eba580a Added tag jdk8u152-b33 for changeset 89c5dcb05c10 ! .hgtags Changeset: 46562ec770e7 Author: aefimov Date: 2017-12-02 14:27 +0000 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/jaxws/rev/46562ec770e7 8186441: Change of behavior in the getMessage () method of the SOAPMessageContextImpl class Reviewed-by: lancea ! src/share/jaxws_classes/com/sun/xml/internal/ws/api/message/saaj/SaajStaxWriter.java Changeset: 47bd39412b2f Author: asaha Date: 2017-12-12 09:38 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/jaxws/rev/47bd39412b2f Added tag jdk8u152-b34 for changeset 46562ec770e7 ! .hgtags Changeset: 8c7537db1706 Author: asaha Date: 2017-12-14 13:10 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/jaxws/rev/8c7537db1706 Merge ! .hgtags Changeset: 6f40c2df92e7 Author: asaha Date: 2017-12-15 11:42 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/jaxws/rev/6f40c2df92e7 Added tag jdk8u152-b35 for changeset 47bd39412b2f ! .hgtags Changeset: 2ce3f6736106 Author: asaha Date: 2017-12-15 15:49 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/jaxws/rev/2ce3f6736106 Merge ! .hgtags Changeset: e9040ac59d76 Author: asaha Date: 2017-12-15 16:00 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/jaxws/rev/e9040ac59d76 Merge ! .hgtags Changeset: b2dfabe81b62 Author: asaha Date: 2017-12-21 09:38 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/jaxws/rev/b2dfabe81b62 Merge ! .hgtags Changeset: 25e6ecbfeb09 Author: asaha Date: 2017-12-21 11:15 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/jaxws/rev/25e6ecbfeb09 Merge ! .hgtags Changeset: c7ba624f0c2d Author: asaha Date: 2018-01-02 16:15 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/jaxws/rev/c7ba624f0c2d Added tag jdk8u171-b01 for changeset 25e6ecbfeb09 ! .hgtags Changeset: f9bd31b2202d Author: asaha Date: 2018-01-04 15:45 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/jaxws/rev/f9bd31b2202d Added tag jdk8u162-b31 for changeset b2dfabe81b62 ! .hgtags Changeset: 294248d232cf Author: asaha Date: 2018-01-08 09:06 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/jaxws/rev/294248d232cf Merge ! .hgtags Changeset: 2e4cccb6df48 Author: asaha Date: 2018-01-09 12:37 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/jaxws/rev/2e4cccb6df48 Added tag jdk8u171-b02 for changeset 294248d232cf ! .hgtags Changeset: 068b0c57acac Author: asaha Date: 2018-01-23 13:09 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/jaxws/rev/068b0c57acac Added tag jdk8u171-b03 for changeset 2e4cccb6df48 ! .hgtags Changeset: 8479be9da1fa Author: asaha Date: 2018-01-30 11:23 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/jaxws/rev/8479be9da1fa Added tag jdk8u171-b04 for changeset 068b0c57acac ! .hgtags Changeset: bd5a858e0294 Author: asaha Date: 2018-02-06 10:52 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/jaxws/rev/bd5a858e0294 Added tag jdk8u171-b05 for changeset 8479be9da1fa ! .hgtags Changeset: 9a1b6701c753 Author: asaha Date: 2018-02-13 12:15 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/jaxws/rev/9a1b6701c753 Added tag jdk8u171-b06 for changeset bd5a858e0294 ! .hgtags Changeset: 3a59623f4028 Author: asaha Date: 2018-02-20 12:56 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/jaxws/rev/3a59623f4028 Added tag jdk8u171-b07 for changeset 9a1b6701c753 ! .hgtags Changeset: 615e81982055 Author: asaha Date: 2018-02-27 11:27 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/jaxws/rev/615e81982055 Added tag jdk8u171-b08 for changeset 3a59623f4028 ! .hgtags Changeset: 6b406f0e2b54 Author: asaha Date: 2018-03-06 11:44 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/jaxws/rev/6b406f0e2b54 Added tag jdk8u171-b09 for changeset 615e81982055 ! .hgtags Changeset: 45e4320c2c64 Author: asaha Date: 2018-03-19 11:47 -0700 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/jaxws/rev/45e4320c2c64 Added tag jdk8u171-b10 for changeset 6b406f0e2b54 ! .hgtags Changeset: c0d636ec3822 Author: andrew Date: 2018-05-02 05:07 +0100 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/jaxws/rev/c0d636ec3822 Merge jdk8u171-b11 ! .hgtags Changeset: 895eebcc7c28 Author: andrew Date: 2018-05-02 05:09 +0100 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/jaxws/rev/895eebcc7c28 Added tag aarch64-jdk8u171-b12 for changeset c0d636ec3822 ! .hgtags Changeset: a0a22040bf4d Author: asaha Date: 2017-10-24 13:16 -0700 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/jaxws/rev/a0a22040bf4d Added tag jdk8u172-b00 for changeset 16be4c9dff93 ! .hgtags Changeset: c4309a2d981b Author: aefimov Date: 2017-12-02 14:27 +0000 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/jaxws/rev/c4309a2d981b 8186441: Change of behavior in the getMessage () method of the SOAPMessageContextImpl class Reviewed-by: lancea ! src/share/jaxws_classes/com/sun/xml/internal/ws/api/message/saaj/SaajStaxWriter.java Changeset: 703e4709edae Author: asaha Date: 2018-01-02 17:02 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/jaxws/rev/703e4709edae Added tag jdk8u172-b01 for changeset c4309a2d981b ! .hgtags Changeset: 8ff1173372e3 Author: asaha Date: 2018-01-08 22:36 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/jaxws/rev/8ff1173372e3 Added tag jdk8u172-b02 for changeset 703e4709edae ! .hgtags Changeset: b327c90d911f Author: asaha Date: 2018-01-16 22:57 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/jaxws/rev/b327c90d911f Merge ! .hgtags Changeset: c8487bb583c2 Author: asaha Date: 2018-01-18 06:01 +0000 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/jaxws/rev/c8487bb583c2 Added tag jdk8u172-b03 for changeset b327c90d911f ! .hgtags Changeset: 621d0726ef58 Author: asaha Date: 2018-01-22 15:13 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/jaxws/rev/621d0726ef58 Merge ! .hgtags Changeset: 7d435a6848ed Author: asaha Date: 2018-01-25 08:21 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/jaxws/rev/7d435a6848ed Merge ! .hgtags Changeset: e9368eb17ab6 Author: asaha Date: 2018-01-30 11:32 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/jaxws/rev/e9368eb17ab6 Merge ! .hgtags Changeset: 52b22eec8bc5 Author: asaha Date: 2018-01-30 11:39 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/jaxws/rev/52b22eec8bc5 Added tag jdk8u172-b04 for changeset e9368eb17ab6 ! .hgtags Changeset: 570a943deff0 Author: asaha Date: 2018-02-06 11:04 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/jaxws/rev/570a943deff0 Merge ! .hgtags Changeset: a48eafb20ce4 Author: asaha Date: 2018-02-06 11:13 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/jaxws/rev/a48eafb20ce4 Added tag jdk8u172-b05 for changeset 570a943deff0 ! .hgtags Changeset: d214e78a9450 Author: asaha Date: 2018-02-13 12:26 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/jaxws/rev/d214e78a9450 Merge ! .hgtags Changeset: 167e737f48c8 Author: asaha Date: 2018-02-13 12:57 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/jaxws/rev/167e737f48c8 Added tag jdk8u172-b06 for changeset d214e78a9450 ! .hgtags Changeset: db5f564ce31b Author: asaha Date: 2018-02-20 13:06 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/jaxws/rev/db5f564ce31b Merge ! .hgtags Changeset: f296a92704c6 Author: asaha Date: 2018-02-20 13:11 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/jaxws/rev/f296a92704c6 Added tag jdk8u172-b07 for changeset db5f564ce31b ! .hgtags Changeset: ef209b1aa531 Author: asaha Date: 2018-02-27 11:40 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/jaxws/rev/ef209b1aa531 Merge ! .hgtags Changeset: 75301b59bcb1 Author: asaha Date: 2018-03-06 20:30 +0000 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/jaxws/rev/75301b59bcb1 Added tag jdk8u172-b08 for changeset ef209b1aa531 ! .hgtags Changeset: fc695409c23d Author: asaha Date: 2018-03-06 20:34 +0000 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/jaxws/rev/fc695409c23d Merge ! .hgtags Changeset: 7bce43014cd1 Author: asaha Date: 2018-03-06 20:36 +0000 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/jaxws/rev/7bce43014cd1 Added tag jdk8u172-b09 for changeset fc695409c23d ! .hgtags Changeset: 7287e0008d11 Author: asaha Date: 2018-03-19 12:04 -0700 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/jaxws/rev/7287e0008d11 Merge ! .hgtags Changeset: 1591902a6c6a Author: asaha Date: 2018-03-19 12:13 -0700 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/jaxws/rev/1591902a6c6a Added tag jdk8u172-b10 for changeset 7287e0008d11 ! .hgtags Changeset: b4c4143de246 Author: asaha Date: 2018-03-28 08:18 -0700 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/jaxws/rev/b4c4143de246 Added tag jdk8u171-b11 for changeset 45e4320c2c64 ! .hgtags Changeset: 980c4675006f Author: asaha Date: 2018-03-28 08:41 -0700 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/jaxws/rev/980c4675006f Merge ! .hgtags Changeset: f917360bf8c6 Author: andrew Date: 2018-05-09 04:51 +0100 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/jaxws/rev/f917360bf8c6 Merge jdk8u172-b11 ! .hgtags Changeset: 1e71aeefeecf Author: andrew Date: 2018-05-09 04:52 +0100 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/jaxws/rev/1e71aeefeecf Added tag aarch64-jdk8u172-b11 for changeset f917360bf8c6 ! .hgtags Changeset: 9b184a26e260 Author: shade Date: 2018-05-14 11:17 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/jaxws/rev/9b184a26e260 Merge ! .hgtags From ashipile at redhat.com Mon May 14 09:41:13 2018 From: ashipile at redhat.com (ashipile at redhat.com) Date: Mon, 14 May 2018 09:41:13 +0000 Subject: hg: shenandoah/jdk8u: 55 new changesets Message-ID: <201805140941.w4E9fD8P013785@aojmv0008.oracle.com> Changeset: a4b38fc93bc6 Author: andrew Date: 2018-04-30 19:00 +0100 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/rev/a4b38fc93bc6 Added tag aarch64-jdk8u171-b11 for changeset 58bf8f7f184d ! .hgtags Changeset: 4be07cb28b21 Author: asaha Date: 2017-12-19 15:36 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/rev/4be07cb28b21 Added tag jdk8u162-b12 for changeset 173b2b978c05 ! .hgtags Changeset: 3aac6c8f4f4d Author: asaha Date: 2017-10-03 22:42 -0700 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/rev/3aac6c8f4f4d Added tag jdk8u171-b00 for changeset d66f57333c7f ! .hgtags Changeset: 51fb66d0a998 Author: asaha Date: 2017-11-02 11:28 -0700 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/rev/51fb66d0a998 Merge ! .hgtags Changeset: 54a2665aef21 Author: asaha Date: 2017-10-06 08:33 -0700 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/rev/54a2665aef21 Added tag jdk8u152-b31 for changeset 2093adf53312 ! .hgtags Changeset: d988f1e20caa Author: asaha Date: 2017-10-31 14:55 -0700 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/rev/d988f1e20caa Added tag jdk8u152-b32 for changeset 54a2665aef21 ! .hgtags Changeset: 5ce629d390aa Author: asaha Date: 2017-11-14 13:10 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/rev/5ce629d390aa Added tag jdk8u152-b33 for changeset d988f1e20caa ! .hgtags Changeset: d3482f913375 Author: asaha Date: 2017-12-12 09:37 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/rev/d3482f913375 Added tag jdk8u152-b34 for changeset 5ce629d390aa ! .hgtags Changeset: 39b39e756c70 Author: asaha Date: 2017-12-14 12:22 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/rev/39b39e756c70 Merge ! .hgtags Changeset: 0f549513bf59 Author: asaha Date: 2017-12-15 11:41 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/rev/0f549513bf59 Added tag jdk8u152-b35 for changeset d3482f913375 ! .hgtags Changeset: d9953c777273 Author: asaha Date: 2017-12-15 14:38 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/rev/d9953c777273 Merge ! .hgtags Changeset: dc87db597ede Author: asaha Date: 2017-12-15 15:59 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/rev/dc87db597ede Merge ! .hgtags Changeset: a127ef57877d Author: asaha Date: 2017-12-21 09:36 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/rev/a127ef57877d Merge ! .hgtags Changeset: 6e7e84f6107b Author: asaha Date: 2017-12-21 10:34 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/rev/6e7e84f6107b Merge ! .hgtags Changeset: 0e293f683e97 Author: asaha Date: 2018-01-02 16:14 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/rev/0e293f683e97 Added tag jdk8u171-b01 for changeset 6e7e84f6107b ! .hgtags Changeset: 2c309abde14f Author: asaha Date: 2018-01-04 15:44 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/rev/2c309abde14f Added tag jdk8u162-b31 for changeset a127ef57877d ! .hgtags Changeset: 28f638905f78 Author: asaha Date: 2018-01-08 09:03 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/rev/28f638905f78 Merge ! .hgtags Changeset: f2d13f719516 Author: asaha Date: 2018-01-09 12:36 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/rev/f2d13f719516 Added tag jdk8u171-b02 for changeset 28f638905f78 ! .hgtags Changeset: 86b50f26a9d1 Author: asaha Date: 2018-01-23 13:08 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/rev/86b50f26a9d1 Added tag jdk8u171-b03 for changeset f2d13f719516 ! .hgtags Changeset: 0efc15ed66b0 Author: asaha Date: 2018-01-30 11:22 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/rev/0efc15ed66b0 Added tag jdk8u171-b04 for changeset 86b50f26a9d1 ! .hgtags Changeset: 8c72310b2f39 Author: asaha Date: 2018-02-06 10:51 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/rev/8c72310b2f39 Added tag jdk8u171-b05 for changeset 0efc15ed66b0 ! .hgtags Changeset: ce90929d876a Author: asaha Date: 2018-02-13 12:13 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/rev/ce90929d876a Added tag jdk8u171-b06 for changeset 8c72310b2f39 ! .hgtags Changeset: f967870393dc Author: asaha Date: 2018-02-20 12:55 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/rev/f967870393dc Added tag jdk8u171-b07 for changeset ce90929d876a ! .hgtags Changeset: 899066aa28cf Author: asaha Date: 2018-02-27 11:26 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/rev/899066aa28cf Added tag jdk8u171-b08 for changeset f967870393dc ! .hgtags Changeset: aa62095d8094 Author: asaha Date: 2018-03-06 11:43 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/rev/aa62095d8094 Added tag jdk8u171-b09 for changeset 899066aa28cf ! .hgtags Changeset: 3578bbdd4173 Author: asemenyuk Date: 2018-03-19 11:32 -0700 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/rev/3578bbdd4173 8199141: Windows: new warning messaging for JRE installer UI in non-MOS cases Reviewed-by: erikj, herrick ! common/autoconf/generated-configure.sh Changeset: 8b40342cb580 Author: asaha Date: 2018-03-19 11:46 -0700 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/rev/8b40342cb580 Added tag jdk8u171-b10 for changeset 3578bbdd4173 ! .hgtags Changeset: 153ab037cb2d Author: andrew Date: 2018-05-02 05:07 +0100 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/rev/153ab037cb2d Merge jdk8u171-b11 ! .hgtags ! common/autoconf/generated-configure.sh Changeset: 204bd3484cb0 Author: andrew Date: 2018-05-02 05:09 +0100 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/rev/204bd3484cb0 Added tag aarch64-jdk8u171-b12 for changeset 153ab037cb2d ! .hgtags Changeset: a0672a294b9a Author: asaha Date: 2017-10-24 13:15 -0700 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/rev/a0672a294b9a Added tag jdk8u172-b00 for changeset e91f5717d8a5 ! .hgtags Changeset: 315185c9100a Author: asaha Date: 2018-01-02 17:01 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/rev/315185c9100a Added tag jdk8u172-b01 for changeset a0672a294b9a ! .hgtags Changeset: 3b5b53db61f2 Author: asaha Date: 2018-01-08 22:35 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/rev/3b5b53db61f2 Added tag jdk8u172-b02 for changeset 315185c9100a ! .hgtags Changeset: 7204958a8c00 Author: asaha Date: 2018-01-16 22:51 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/rev/7204958a8c00 Merge ! .hgtags Changeset: 6c0ab40b861f Author: asaha Date: 2018-01-18 06:01 +0000 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/rev/6c0ab40b861f Added tag jdk8u172-b03 for changeset 7204958a8c00 ! .hgtags Changeset: 95ec0b6be586 Author: asaha Date: 2018-01-22 15:09 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/rev/95ec0b6be586 Merge ! .hgtags Changeset: f833e588c629 Author: asaha Date: 2018-01-25 08:09 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/rev/f833e588c629 Merge ! .hgtags Changeset: a80949c226a2 Author: asaha Date: 2018-01-30 11:27 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/rev/a80949c226a2 Merge ! .hgtags Changeset: 5eb172c08a37 Author: asaha Date: 2018-01-30 11:38 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/rev/5eb172c08a37 Added tag jdk8u172-b04 for changeset a80949c226a2 ! .hgtags Changeset: c6ca716659af Author: asaha Date: 2018-02-06 10:59 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/rev/c6ca716659af Merge ! .hgtags Changeset: 6357efb8aa1c Author: asaha Date: 2018-02-06 11:12 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/rev/6357efb8aa1c Added tag jdk8u172-b05 for changeset c6ca716659af ! .hgtags Changeset: 7a95a1d55d53 Author: asaha Date: 2018-02-13 12:18 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/rev/7a95a1d55d53 Merge ! .hgtags Changeset: 306a3ab6740b Author: asaha Date: 2018-02-13 12:56 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/rev/306a3ab6740b Added tag jdk8u172-b06 for changeset 7a95a1d55d53 ! .hgtags Changeset: c3d51ddc2265 Author: asaha Date: 2018-02-20 12:59 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/rev/c3d51ddc2265 Merge ! .hgtags Changeset: 33745ceb07a8 Author: asaha Date: 2018-02-20 13:10 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/rev/33745ceb07a8 Added tag jdk8u172-b07 for changeset c3d51ddc2265 ! .hgtags Changeset: 20086fb0be29 Author: asaha Date: 2018-02-27 11:34 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/rev/20086fb0be29 Merge ! .hgtags Changeset: e037c2761af5 Author: asaha Date: 2018-03-06 20:30 +0000 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/rev/e037c2761af5 Added tag jdk8u172-b08 for changeset 20086fb0be29 ! .hgtags Changeset: 9361e8414bf1 Author: asaha Date: 2018-03-06 20:32 +0000 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/rev/9361e8414bf1 Merge ! .hgtags Changeset: a7ef4deb2851 Author: asaha Date: 2018-03-06 20:36 +0000 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/rev/a7ef4deb2851 Added tag jdk8u172-b09 for changeset 9361e8414bf1 ! .hgtags Changeset: ff9f47b14b8a Author: asaha Date: 2018-03-19 11:56 -0700 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/rev/ff9f47b14b8a Merge ! .hgtags Changeset: 2a90c09417a3 Author: asaha Date: 2018-03-19 12:12 -0700 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/rev/2a90c09417a3 Added tag jdk8u172-b10 for changeset ff9f47b14b8a ! .hgtags Changeset: b8458ce8c60c Author: asaha Date: 2018-03-28 08:17 -0700 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/rev/b8458ce8c60c Added tag jdk8u171-b11 for changeset 8b40342cb580 ! .hgtags Changeset: 4d038b84d113 Author: asaha Date: 2018-03-28 08:34 -0700 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/rev/4d038b84d113 Merge ! .hgtags Changeset: eb1497eaa512 Author: andrew Date: 2018-05-09 04:51 +0100 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/rev/eb1497eaa512 Merge jdk8u172-b11 ! .hgtags Changeset: 74564d40b0d6 Author: andrew Date: 2018-05-09 04:52 +0100 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/rev/74564d40b0d6 Added tag aarch64-jdk8u172-b11 for changeset eb1497eaa512 ! .hgtags Changeset: 90b7e0f4f9a4 Author: shade Date: 2018-05-14 11:17 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/rev/90b7e0f4f9a4 Merge ! .hgtags From ashipile at redhat.com Mon May 14 09:41:16 2018 From: ashipile at redhat.com (ashipile at redhat.com) Date: Mon, 14 May 2018 09:41:16 +0000 Subject: hg: shenandoah/jdk8u/langtools: 56 new changesets Message-ID: <201805140941.w4E9fHCu014061@aojmv0008.oracle.com> Changeset: 31d92dd289ae Author: andrew Date: 2018-04-30 19:00 +0100 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/langtools/rev/31d92dd289ae Added tag aarch64-jdk8u171-b11 for changeset 6c58348c39c2 ! .hgtags Changeset: 034738d4f1d2 Author: asaha Date: 2017-12-19 15:37 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/langtools/rev/034738d4f1d2 Added tag jdk8u162-b12 for changeset 902865570583 ! .hgtags Changeset: 32246a9e16fd Author: asaha Date: 2017-10-03 23:31 -0700 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/langtools/rev/32246a9e16fd Added tag jdk8u171-b00 for changeset c18e76a70416 ! .hgtags Changeset: ca57ac39feed Author: asaha Date: 2017-11-02 11:44 -0700 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/langtools/rev/ca57ac39feed Merge ! .hgtags Changeset: 73ffe473564c Author: asaha Date: 2017-10-06 08:34 -0700 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/langtools/rev/73ffe473564c Added tag jdk8u152-b31 for changeset 757f531633e3 ! .hgtags Changeset: 5a188fbdf539 Author: asaha Date: 2017-10-31 14:56 -0700 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/langtools/rev/5a188fbdf539 Added tag jdk8u152-b32 for changeset 73ffe473564c ! .hgtags Changeset: e0481cb7000c Author: asaha Date: 2017-11-14 13:12 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/langtools/rev/e0481cb7000c Added tag jdk8u152-b33 for changeset 5a188fbdf539 ! .hgtags Changeset: f1fe0a49345b Author: asaha Date: 2017-12-12 09:39 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/langtools/rev/f1fe0a49345b Added tag jdk8u152-b34 for changeset e0481cb7000c ! .hgtags Changeset: 09a649649872 Author: asaha Date: 2017-12-14 13:45 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/langtools/rev/09a649649872 Merge ! .hgtags Changeset: 64ad4f128feb Author: asaha Date: 2017-12-15 11:42 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/langtools/rev/64ad4f128feb Added tag jdk8u152-b35 for changeset f1fe0a49345b ! .hgtags Changeset: b3955adef2d5 Author: asaha Date: 2017-12-15 15:55 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/langtools/rev/b3955adef2d5 Merge ! .hgtags Changeset: 90c95e792e8b Author: asaha Date: 2017-12-15 16:01 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/langtools/rev/90c95e792e8b Merge ! .hgtags Changeset: 07db50c54083 Author: asaha Date: 2017-12-21 09:40 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/langtools/rev/07db50c54083 Merge ! .hgtags Changeset: 64357fde9f88 Author: asaha Date: 2017-12-21 13:49 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/langtools/rev/64357fde9f88 Merge ! .hgtags Changeset: c9b1ccb4ec27 Author: asaha Date: 2018-01-02 16:16 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/langtools/rev/c9b1ccb4ec27 Added tag jdk8u171-b01 for changeset 64357fde9f88 ! .hgtags Changeset: fdc876cee847 Author: asaha Date: 2018-01-04 15:45 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/langtools/rev/fdc876cee847 Added tag jdk8u162-b31 for changeset 07db50c54083 ! .hgtags Changeset: 4cd77f7e459d Author: asaha Date: 2018-01-08 09:10 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/langtools/rev/4cd77f7e459d Merge ! .hgtags Changeset: a459065c13af Author: asaha Date: 2018-01-09 12:38 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/langtools/rev/a459065c13af Added tag jdk8u171-b02 for changeset 4cd77f7e459d ! .hgtags Changeset: c25be482f93d Author: asaha Date: 2018-01-23 13:10 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/langtools/rev/c25be482f93d Added tag jdk8u171-b03 for changeset a459065c13af ! .hgtags Changeset: 206179228d91 Author: asaha Date: 2018-01-30 11:24 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/langtools/rev/206179228d91 Added tag jdk8u171-b04 for changeset c25be482f93d ! .hgtags Changeset: f1dca2ed2b08 Author: asaha Date: 2018-02-06 10:53 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/langtools/rev/f1dca2ed2b08 Added tag jdk8u171-b05 for changeset 206179228d91 ! .hgtags Changeset: 5e864878da06 Author: igerasim Date: 2018-02-06 09:06 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/langtools/rev/5e864878da06 8189997: Enhance keystore mechanisms 8194259: keytool error: java.io.IOException: Invalid secret key format Reviewed-by: mullan, valeriep, rriggs, ahgross ! test/tools/javap/T6587786.java Changeset: b85bfe8b37f3 Author: asaha Date: 2018-02-13 12:16 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/langtools/rev/b85bfe8b37f3 Added tag jdk8u171-b06 for changeset 5e864878da06 ! .hgtags Changeset: 6f2f6a0c04c0 Author: asaha Date: 2018-02-20 12:57 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/langtools/rev/6f2f6a0c04c0 Added tag jdk8u171-b07 for changeset b85bfe8b37f3 ! .hgtags Changeset: bd20bc03808c Author: asaha Date: 2018-02-27 11:28 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/langtools/rev/bd20bc03808c Added tag jdk8u171-b08 for changeset 6f2f6a0c04c0 ! .hgtags Changeset: 32a9ad19c92d Author: asaha Date: 2018-03-06 11:45 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/langtools/rev/32a9ad19c92d Added tag jdk8u171-b09 for changeset bd20bc03808c ! .hgtags Changeset: c9e49a425522 Author: asaha Date: 2018-03-19 11:47 -0700 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/langtools/rev/c9e49a425522 Added tag jdk8u171-b10 for changeset 32a9ad19c92d ! .hgtags Changeset: 1913d6d09817 Author: andrew Date: 2018-05-02 05:07 +0100 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/langtools/rev/1913d6d09817 Merge jdk8u171-b11 ! .hgtags Changeset: 7b9a144f6071 Author: andrew Date: 2018-05-02 05:09 +0100 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/langtools/rev/7b9a144f6071 Added tag aarch64-jdk8u171-b12 for changeset 1913d6d09817 ! .hgtags Changeset: 03ff1eee9fe8 Author: asaha Date: 2017-10-24 13:16 -0700 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/langtools/rev/03ff1eee9fe8 Added tag jdk8u172-b00 for changeset 53092d863cb6 ! .hgtags Changeset: 47a91ecb0b87 Author: sadayapalam Date: 2017-12-04 10:33 -0500 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/langtools/rev/47a91ecb0b87 8191969: javac produces incorrect RuntimeInvisibleTypeAnnotations length attribute Reviewed-by: jlahoda, vromero ! src/share/classes/com/sun/tools/javac/comp/LambdaToMethod.java + test/tools/javac/annotations/typeAnnotations/classfile/TypeAnnotationPropagationTest.java Changeset: 989188d1a978 Author: asaha Date: 2018-01-02 17:02 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/langtools/rev/989188d1a978 Added tag jdk8u172-b01 for changeset 47a91ecb0b87 ! .hgtags Changeset: aee7802a04da Author: asaha Date: 2018-01-08 22:36 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/langtools/rev/aee7802a04da Added tag jdk8u172-b02 for changeset 989188d1a978 ! .hgtags Changeset: c563af72dd01 Author: asaha Date: 2018-01-16 23:02 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/langtools/rev/c563af72dd01 Merge ! .hgtags Changeset: 642a2d44726f Author: asaha Date: 2018-01-18 06:01 +0000 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/langtools/rev/642a2d44726f Added tag jdk8u172-b03 for changeset c563af72dd01 ! .hgtags Changeset: c03269ed8938 Author: asaha Date: 2018-01-22 15:16 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/langtools/rev/c03269ed8938 Merge ! .hgtags Changeset: 5804c0d89157 Author: asaha Date: 2018-01-25 08:25 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/langtools/rev/5804c0d89157 Merge ! .hgtags Changeset: 2fefa5723300 Author: asaha Date: 2018-01-30 11:35 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/langtools/rev/2fefa5723300 Merge ! .hgtags Changeset: dbb8acd710ac Author: asaha Date: 2018-01-30 11:40 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/langtools/rev/dbb8acd710ac Added tag jdk8u172-b04 for changeset 2fefa5723300 ! .hgtags Changeset: fc985725f819 Author: asaha Date: 2018-02-06 11:11 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/langtools/rev/fc985725f819 Merge ! .hgtags Changeset: e5fb3c88a9cd Author: asaha Date: 2018-02-06 11:14 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/langtools/rev/e5fb3c88a9cd Added tag jdk8u172-b05 for changeset fc985725f819 ! .hgtags Changeset: f16940263af4 Author: asaha Date: 2018-02-13 12:30 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/langtools/rev/f16940263af4 Merge ! .hgtags Changeset: d4daa5225bc7 Author: asaha Date: 2018-02-13 12:58 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/langtools/rev/d4daa5225bc7 Added tag jdk8u172-b06 for changeset f16940263af4 ! .hgtags Changeset: 602e04c71a86 Author: asaha Date: 2018-02-20 13:08 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/langtools/rev/602e04c71a86 Merge ! .hgtags Changeset: 09f7c6b90adb Author: asaha Date: 2018-02-20 13:12 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/langtools/rev/09f7c6b90adb Added tag jdk8u172-b07 for changeset 602e04c71a86 ! .hgtags Changeset: 44a8be4e5ab0 Author: asaha Date: 2018-02-27 11:44 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/langtools/rev/44a8be4e5ab0 Merge ! .hgtags Changeset: fa587a021390 Author: asaha Date: 2018-03-06 20:30 +0000 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/langtools/rev/fa587a021390 Added tag jdk8u172-b08 for changeset 44a8be4e5ab0 ! .hgtags Changeset: 3f86a5125522 Author: asaha Date: 2018-03-06 20:35 +0000 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/langtools/rev/3f86a5125522 Merge ! .hgtags Changeset: 88a13735d5b4 Author: asaha Date: 2018-03-06 20:36 +0000 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/langtools/rev/88a13735d5b4 Added tag jdk8u172-b09 for changeset 3f86a5125522 ! .hgtags Changeset: 1c96dd3f4f10 Author: asaha Date: 2018-03-19 12:09 -0700 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/langtools/rev/1c96dd3f4f10 Merge ! .hgtags Changeset: a09d3c540ffd Author: asaha Date: 2018-03-19 12:14 -0700 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/langtools/rev/a09d3c540ffd Added tag jdk8u172-b10 for changeset 1c96dd3f4f10 ! .hgtags Changeset: f09944bba0b4 Author: asaha Date: 2018-03-28 08:19 -0700 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/langtools/rev/f09944bba0b4 Added tag jdk8u171-b11 for changeset c9e49a425522 ! .hgtags Changeset: 2c9cfdb52868 Author: asaha Date: 2018-03-28 08:46 -0700 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/langtools/rev/2c9cfdb52868 Merge ! .hgtags Changeset: d1930b90a690 Author: andrew Date: 2018-05-09 04:51 +0100 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/langtools/rev/d1930b90a690 Merge jdk8u172-b11 ! .hgtags Changeset: 14d381cbe563 Author: andrew Date: 2018-05-09 04:52 +0100 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/langtools/rev/14d381cbe563 Added tag aarch64-jdk8u172-b11 for changeset d1930b90a690 ! .hgtags Changeset: 237e527ccd62 Author: shade Date: 2018-05-14 11:17 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/langtools/rev/237e527ccd62 Merge ! .hgtags From ashipile at redhat.com Mon May 14 09:41:17 2018 From: ashipile at redhat.com (ashipile at redhat.com) Date: Mon, 14 May 2018 09:41:17 +0000 Subject: hg: shenandoah/jdk8u/corba: 56 new changesets Message-ID: <201805140941.w4E9fI7D014145@aojmv0008.oracle.com> Changeset: 486cbe7a0fdf Author: andrew Date: 2018-04-30 19:00 +0100 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/corba/rev/486cbe7a0fdf Added tag aarch64-jdk8u171-b11 for changeset e8d4f321311a ! .hgtags Changeset: f6b6ad6feb6e Author: asaha Date: 2017-12-19 15:36 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/corba/rev/f6b6ad6feb6e Added tag jdk8u162-b12 for changeset ace99846c1fd ! .hgtags Changeset: 1418a957bc51 Author: asaha Date: 2017-10-03 23:29 -0700 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/corba/rev/1418a957bc51 Added tag jdk8u171-b00 for changeset bb767c7211ea ! .hgtags Changeset: 6cdea2580c1b Author: asaha Date: 2017-11-02 11:29 -0700 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/corba/rev/6cdea2580c1b Merge ! .hgtags Changeset: c4e0935e4570 Author: asaha Date: 2017-10-06 08:33 -0700 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/corba/rev/c4e0935e4570 Added tag jdk8u152-b31 for changeset e05b7f7238dd ! .hgtags Changeset: a6c0eb254c54 Author: asaha Date: 2017-10-31 14:55 -0700 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/corba/rev/a6c0eb254c54 Added tag jdk8u152-b32 for changeset c4e0935e4570 ! .hgtags Changeset: abcbb543abb7 Author: asaha Date: 2017-11-14 13:10 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/corba/rev/abcbb543abb7 Added tag jdk8u152-b33 for changeset a6c0eb254c54 ! .hgtags Changeset: 3db2418690f0 Author: asaha Date: 2017-12-12 09:37 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/corba/rev/3db2418690f0 Added tag jdk8u152-b34 for changeset abcbb543abb7 ! .hgtags Changeset: a7169cc75c6d Author: asaha Date: 2017-12-14 12:23 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/corba/rev/a7169cc75c6d Merge ! .hgtags Changeset: a9de7f38257e Author: asaha Date: 2017-12-15 11:41 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/corba/rev/a9de7f38257e Added tag jdk8u152-b35 for changeset 3db2418690f0 ! .hgtags Changeset: d00160510260 Author: asaha Date: 2017-12-15 15:39 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/corba/rev/d00160510260 Merge ! .hgtags Changeset: ac2d6b7e6cb2 Author: asaha Date: 2017-12-15 15:59 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/corba/rev/ac2d6b7e6cb2 Merge ! .hgtags Changeset: acbd335f56f1 Author: asaha Date: 2017-12-21 09:37 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/corba/rev/acbd335f56f1 Merge ! .hgtags Changeset: 9895f9c0845c Author: asaha Date: 2017-12-21 10:35 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/corba/rev/9895f9c0845c Merge ! .hgtags Changeset: 9f7841e005e0 Author: asaha Date: 2018-01-02 16:14 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/corba/rev/9f7841e005e0 Added tag jdk8u171-b01 for changeset 9895f9c0845c ! .hgtags Changeset: 4e733c1a0f81 Author: asaha Date: 2018-01-04 15:44 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/corba/rev/4e733c1a0f81 Added tag jdk8u162-b31 for changeset acbd335f56f1 ! .hgtags Changeset: 28be709707f8 Author: asaha Date: 2018-01-08 09:03 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/corba/rev/28be709707f8 Merge ! .hgtags Changeset: d534205fffcf Author: asaha Date: 2018-01-09 12:36 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/corba/rev/d534205fffcf Added tag jdk8u171-b02 for changeset 28be709707f8 ! .hgtags Changeset: 0baf88a7b388 Author: asaha Date: 2018-01-23 13:08 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/corba/rev/0baf88a7b388 Added tag jdk8u171-b03 for changeset d534205fffcf ! .hgtags Changeset: 0c6a772d60b9 Author: asaha Date: 2018-01-30 11:22 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/corba/rev/0c6a772d60b9 Added tag jdk8u171-b04 for changeset 0baf88a7b388 ! .hgtags Changeset: 3bca003f024c Author: asaha Date: 2018-02-06 10:51 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/corba/rev/3bca003f024c Added tag jdk8u171-b05 for changeset 0c6a772d60b9 ! .hgtags Changeset: 9cb338e57d31 Author: asaha Date: 2018-02-13 12:14 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/corba/rev/9cb338e57d31 Added tag jdk8u171-b06 for changeset 3bca003f024c ! .hgtags Changeset: b90a8fc589af Author: rpatil Date: 2018-02-07 00:10 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/corba/rev/b90a8fc589af 8192757: Improve stub classes implementation Reviewed-by: rriggs, dfuchs, erikj ! make/BuildCorba.gmk ! src/share/classes/com/sun/corba/se/impl/ior/StubIORImpl.java ! src/share/classes/sun/corba/SharedSecrets.java + src/share/classes/sun/misc/JavaOISAccess.java + src/share/classes/sun/misc/ObjectInputFilter.java Changeset: f7f59d87e97d Author: asaha Date: 2018-02-20 12:55 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/corba/rev/f7f59d87e97d Added tag jdk8u171-b07 for changeset b90a8fc589af ! .hgtags Changeset: f674dc8cc85f Author: asaha Date: 2018-02-27 11:27 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/corba/rev/f674dc8cc85f Added tag jdk8u171-b08 for changeset f7f59d87e97d ! .hgtags Changeset: b3563151fe42 Author: rpatil Date: 2018-02-27 19:59 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/corba/rev/b3563151fe42 8198494: 8u171 and 8u172 - Build failure on non-SE Linux Platforms Reviewed-by: dfuchs, rriggs, coffeys, aefimov ! src/share/classes/com/sun/corba/se/impl/ior/StubIORImpl.java ! src/share/classes/sun/corba/SharedSecrets.java Changeset: 6a9efc037460 Author: asaha Date: 2018-03-06 11:43 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/corba/rev/6a9efc037460 Added tag jdk8u171-b09 for changeset b3563151fe42 ! .hgtags Changeset: fd5e2fc0b714 Author: asaha Date: 2018-03-19 11:46 -0700 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/corba/rev/fd5e2fc0b714 Added tag jdk8u171-b10 for changeset 6a9efc037460 ! .hgtags Changeset: f3a223f4a01b Author: andrew Date: 2018-05-02 05:07 +0100 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/corba/rev/f3a223f4a01b Merge jdk8u171-b11 ! .hgtags Changeset: 0ccf22f46d37 Author: andrew Date: 2018-05-02 05:09 +0100 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/corba/rev/0ccf22f46d37 Added tag aarch64-jdk8u171-b12 for changeset f3a223f4a01b ! .hgtags Changeset: fbb7c1e76e59 Author: asaha Date: 2017-10-24 13:15 -0700 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/corba/rev/fbb7c1e76e59 Added tag jdk8u172-b00 for changeset 72dbc8d63308 ! .hgtags Changeset: 56874ff37e89 Author: asaha Date: 2018-01-02 17:01 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/corba/rev/56874ff37e89 Added tag jdk8u172-b01 for changeset fbb7c1e76e59 ! .hgtags Changeset: a5563d019ac4 Author: asaha Date: 2018-01-08 22:35 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/corba/rev/a5563d019ac4 Added tag jdk8u172-b02 for changeset 56874ff37e89 ! .hgtags Changeset: 65a52284d8a3 Author: asaha Date: 2018-01-16 22:52 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/corba/rev/65a52284d8a3 Merge ! .hgtags Changeset: 7834bc524282 Author: asaha Date: 2018-01-18 06:01 +0000 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/corba/rev/7834bc524282 Added tag jdk8u172-b03 for changeset 65a52284d8a3 ! .hgtags Changeset: 31f69295d485 Author: asaha Date: 2018-01-22 15:09 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/corba/rev/31f69295d485 Merge ! .hgtags Changeset: 55439009e173 Author: asaha Date: 2018-01-25 08:10 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/corba/rev/55439009e173 Merge ! .hgtags Changeset: c3942af7d2fa Author: asaha Date: 2018-01-30 11:28 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/corba/rev/c3942af7d2fa Merge ! .hgtags Changeset: 133d97a7cbed Author: asaha Date: 2018-01-30 11:38 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/corba/rev/133d97a7cbed Added tag jdk8u172-b04 for changeset c3942af7d2fa ! .hgtags Changeset: 13c1af9669c2 Author: asaha Date: 2018-02-06 10:59 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/corba/rev/13c1af9669c2 Merge ! .hgtags Changeset: e6a796c9d4e1 Author: asaha Date: 2018-02-06 11:12 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/corba/rev/e6a796c9d4e1 Added tag jdk8u172-b05 for changeset 13c1af9669c2 ! .hgtags Changeset: ad4a16f06c35 Author: asaha Date: 2018-02-13 12:21 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/corba/rev/ad4a16f06c35 Merge ! .hgtags Changeset: 26be7ad633b8 Author: asaha Date: 2018-02-13 12:56 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/corba/rev/26be7ad633b8 Added tag jdk8u172-b06 for changeset ad4a16f06c35 ! .hgtags Changeset: bd2328706d14 Author: asaha Date: 2018-02-20 13:00 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/corba/rev/bd2328706d14 Merge ! .hgtags Changeset: c7b349e0ea46 Author: asaha Date: 2018-02-20 13:10 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/corba/rev/c7b349e0ea46 Added tag jdk8u172-b07 for changeset bd2328706d14 ! .hgtags Changeset: bf262dc4ed05 Author: asaha Date: 2018-02-27 11:34 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/corba/rev/bf262dc4ed05 Merge ! .hgtags Changeset: 6cbbef7afbc6 Author: asaha Date: 2018-03-06 20:30 +0000 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/corba/rev/6cbbef7afbc6 Added tag jdk8u172-b08 for changeset bf262dc4ed05 ! .hgtags Changeset: e9aaa28b626d Author: asaha Date: 2018-03-06 20:32 +0000 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/corba/rev/e9aaa28b626d Merge ! .hgtags Changeset: 123129413d20 Author: asaha Date: 2018-03-06 20:36 +0000 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/corba/rev/123129413d20 Added tag jdk8u172-b09 for changeset e9aaa28b626d ! .hgtags Changeset: f39115b612ab Author: asaha Date: 2018-03-19 11:56 -0700 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/corba/rev/f39115b612ab Merge ! .hgtags Changeset: e6cd050657b4 Author: asaha Date: 2018-03-19 12:12 -0700 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/corba/rev/e6cd050657b4 Added tag jdk8u172-b10 for changeset f39115b612ab ! .hgtags Changeset: 646464235a81 Author: asaha Date: 2018-03-28 08:17 -0700 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/corba/rev/646464235a81 Added tag jdk8u171-b11 for changeset fd5e2fc0b714 ! .hgtags Changeset: 6841ddd69c30 Author: asaha Date: 2018-03-28 08:34 -0700 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/corba/rev/6841ddd69c30 Merge ! .hgtags Changeset: 84245796a0fa Author: andrew Date: 2018-05-09 04:51 +0100 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/corba/rev/84245796a0fa Merge jdk8u172-b11 ! .hgtags Changeset: 3a04a7c080af Author: andrew Date: 2018-05-09 04:52 +0100 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/corba/rev/3a04a7c080af Added tag aarch64-jdk8u172-b11 for changeset 84245796a0fa ! .hgtags Changeset: 53cca1228345 Author: shade Date: 2018-05-14 11:17 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/corba/rev/53cca1228345 Merge ! .hgtags From ashipile at redhat.com Mon May 14 09:41:20 2018 From: ashipile at redhat.com (ashipile at redhat.com) Date: Mon, 14 May 2018 09:41:20 +0000 Subject: hg: shenandoah/jdk8u/hotspot: 85 new changesets Message-ID: <201805140941.w4E9fL68014283@aojmv0008.oracle.com> Changeset: a08749f5c507 Author: aph Date: 2018-04-23 19:32 +0100 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/hotspot/rev/a08749f5c507 8200556: AArch64: assertion failure in slowdebug builds Reviewed-by: adinn ! src/cpu/aarch64/vm/nativeInst_aarch64.cpp Changeset: d590c8412437 Author: andrew Date: 2018-04-30 19:00 +0100 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/hotspot/rev/d590c8412437 Added tag aarch64-jdk8u171-b11 for changeset a08749f5c507 ! .hgtags Changeset: d2e3920d2fd0 Author: asaha Date: 2017-12-19 15:36 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/hotspot/rev/d2e3920d2fd0 Added tag jdk8u162-b12 for changeset 69aec2ca5d90 ! .hgtags Changeset: 1310ecbe61f3 Author: asaha Date: 2017-10-03 23:29 -0700 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/hotspot/rev/1310ecbe61f3 Added tag jdk8u171-b00 for changeset a17bab940547 ! .hgtags Changeset: 3b6d2d60ff75 Author: robm Date: 2017-10-27 20:39 +0100 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/hotspot/rev/3b6d2d60ff75 8180881: Better packaging of deserialization Reviewed-by: chegar, acorn ! src/share/vm/prims/jvm.cpp Changeset: efda392b711e Author: asaha Date: 2017-11-02 11:31 -0700 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/hotspot/rev/efda392b711e Merge ! .hgtags Changeset: 55990d3e4c5e Author: hseigel Date: 2017-11-08 09:17 -0500 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/hotspot/rev/55990d3e4c5e 8189123: More consistent classloading Reviewed-by: acorn, ahgross, rhalade Contributed-by: harold.seigel at oracle.com ! src/share/vm/classfile/verificationType.cpp ! src/share/vm/classfile/verifier.cpp ! src/share/vm/prims/jvm.cpp Changeset: 671244881e16 Author: mdoerr Date: 2017-11-28 01:07 +0300 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/hotspot/rev/671244881e16 8191907: PPC64 part of JDK-8174962: Better interface invocations Reviewed-by: goetz ! src/cpu/ppc/vm/macroAssembler_ppc.cpp ! src/cpu/ppc/vm/macroAssembler_ppc.hpp ! src/cpu/ppc/vm/templateTable_ppc_64.cpp ! src/cpu/ppc/vm/vtableStubs_ppc_64.cpp Changeset: 48900d625d66 Author: thartmann Date: 2017-11-28 12:14 +0100 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/hotspot/rev/48900d625d66 8190877: Better handling of abstract classes Reviewed-by: kvn, vlivanov, rhalade, ahgross, jwilhelm Contributed-by: tobias.hartmann at oracle.com ! src/share/vm/code/dependencies.cpp Changeset: 07275619e52e Author: hseigel Date: 2017-12-05 13:25 -0500 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/hotspot/rev/07275619e52e 8190478: Improved interface method selection Reviewed-by: acorn, ahgross, jwilhelm, rhalade Contributed-by: harold.seigel at oracle.com ! src/share/vm/oops/cpCache.cpp Changeset: d487949b2e97 Author: dbuck Date: 2017-12-18 18:18 -0500 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/hotspot/rev/d487949b2e97 8189851: [TESTBUG] runtime/RedefineTests/RedefineInterfaceCall.java fails Summary: modified jtreg tags and package import to work with JDK 8 Reviewed-by: vlivanov, dholmes ! test/runtime/RedefineTests/RedefineInterfaceCall.java Changeset: d278f122e65d Author: asaha Date: 2017-10-06 08:33 -0700 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/hotspot/rev/d278f122e65d Added tag jdk8u152-b31 for changeset 91894ffc746c ! .hgtags Changeset: 543fbed998c3 Author: asaha Date: 2017-10-31 14:55 -0700 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/hotspot/rev/543fbed998c3 Added tag jdk8u152-b32 for changeset d278f122e65d ! .hgtags Changeset: c066fe30d0a1 Author: thartmann Date: 2017-08-10 12:08 +0530 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/hotspot/rev/c066fe30d0a1 8184271: Time related C1 intrinsics produce inconsistent results when floating around Summary: C1 intrinsics for System.nanoTime(), System.currentTimeMillis() and JVM.counterTime() should be pinned. Reviewed-by: kvn, vlivanov, iveresov ! src/share/vm/c1/c1_Instruction.hpp ! src/share/vm/classfile/vmSymbols.cpp ! src/share/vm/classfile/vmSymbols.hpp + test/compiler/c1/TestPinnedIntrinsics.java Changeset: 12a0cebfae93 Author: asaha Date: 2017-11-14 13:11 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/hotspot/rev/12a0cebfae93 Added tag jdk8u152-b33 for changeset c066fe30d0a1 ! .hgtags Changeset: f6719c3d0278 Author: asaha Date: 2017-12-12 09:37 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/hotspot/rev/f6719c3d0278 Added tag jdk8u152-b34 for changeset 12a0cebfae93 ! .hgtags Changeset: 2c46d6f1b8ac Author: asaha Date: 2017-12-14 13:07 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/hotspot/rev/2c46d6f1b8ac Merge ! .hgtags Changeset: c50d35c759d8 Author: asaha Date: 2017-12-15 11:41 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/hotspot/rev/c50d35c759d8 Added tag jdk8u152-b35 for changeset f6719c3d0278 ! .hgtags Changeset: 7bf41e318bfb Author: asaha Date: 2017-12-15 15:40 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/hotspot/rev/7bf41e318bfb Merge ! .hgtags Changeset: 1341a1a0155e Author: asaha Date: 2017-12-15 15:59 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/hotspot/rev/1341a1a0155e Merge ! .hgtags Changeset: caac74fe3cfa Author: asaha Date: 2017-12-21 09:37 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/hotspot/rev/caac74fe3cfa Merge ! .hgtags Changeset: ebfd57cc21e6 Author: asaha Date: 2017-12-21 10:36 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/hotspot/rev/ebfd57cc21e6 Merge ! .hgtags Changeset: 4981a8884a60 Author: asaha Date: 2018-01-02 16:14 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/hotspot/rev/4981a8884a60 Added tag jdk8u171-b01 for changeset ebfd57cc21e6 ! .hgtags Changeset: 786ef88500f7 Author: asaha Date: 2018-01-04 15:44 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/hotspot/rev/786ef88500f7 Added tag jdk8u162-b31 for changeset caac74fe3cfa ! .hgtags Changeset: 1acd7c1b8024 Author: asaha Date: 2018-01-08 09:04 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/hotspot/rev/1acd7c1b8024 Merge ! .hgtags Changeset: 5587cde50bbc Author: asaha Date: 2018-01-09 12:36 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/hotspot/rev/5587cde50bbc Added tag jdk8u171-b02 for changeset 1acd7c1b8024 ! .hgtags Changeset: 99ef46652330 Author: asaha Date: 2018-01-23 13:09 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/hotspot/rev/99ef46652330 Added tag jdk8u171-b03 for changeset 5587cde50bbc ! .hgtags Changeset: 425504a45630 Author: asaha Date: 2018-01-30 11:22 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/hotspot/rev/425504a45630 Added tag jdk8u171-b04 for changeset 99ef46652330 ! .hgtags Changeset: 08326a76b148 Author: kbarrett Date: 2018-01-22 14:27 -0500 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/hotspot/rev/08326a76b148 8192025: Less referential references Reviewed-by: coleenp, eosterlund, mchung, ahgross, rhalade ! src/share/vm/classfile/javaClasses.cpp ! src/share/vm/classfile/javaClasses.hpp ! src/share/vm/classfile/systemDictionary.cpp ! src/share/vm/classfile/systemDictionary.hpp ! src/share/vm/classfile/vmSymbols.hpp ! src/share/vm/oops/klass.cpp ! src/share/vm/oops/klass.hpp ! src/share/vm/prims/jvm.cpp Changeset: 4e1445535b6d Author: asaha Date: 2018-02-06 10:52 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/hotspot/rev/4e1445535b6d Added tag jdk8u171-b05 for changeset 08326a76b148 ! .hgtags Changeset: fd0e42431b94 Author: asaha Date: 2018-02-13 12:14 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/hotspot/rev/fd0e42431b94 Added tag jdk8u171-b06 for changeset 4e1445535b6d ! .hgtags Changeset: 9ce702ef6376 Author: asaha Date: 2018-02-20 12:55 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/hotspot/rev/9ce702ef6376 Added tag jdk8u171-b07 for changeset fd0e42431b94 ! .hgtags Changeset: 1252eaaa2c8b Author: bgopularam Date: 2018-02-22 21:28 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/hotspot/rev/1252eaaa2c8b 8068778: [TESTBUG] CompressedClassSpaceSizeInJmapHeap.java fails if SA not available Reviewed-by: coleenp, sla ! test/gc/metaspace/CompressedClassSpaceSizeInJmapHeap.java Changeset: 56123fdca84a Author: aph Date: 2018-01-22 15:19 +0000 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/hotspot/rev/56123fdca84a 8194739: Zero port of 8174962: Better interface invocations Reviewed-by: adinn, coleenp ! src/cpu/zero/vm/methodHandles_zero.cpp ! src/share/vm/interpreter/bytecodeInterpreter.cpp Changeset: 4fefe015a728 Author: asaha Date: 2018-02-27 11:27 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/hotspot/rev/4fefe015a728 Added tag jdk8u171-b08 for changeset 56123fdca84a ! .hgtags Changeset: 6d890180aeb4 Author: asaha Date: 2018-03-06 11:43 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/hotspot/rev/6d890180aeb4 Added tag jdk8u171-b09 for changeset 4fefe015a728 ! .hgtags Changeset: 23addae1b843 Author: asaha Date: 2018-03-19 11:46 -0700 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/hotspot/rev/23addae1b843 Added tag jdk8u171-b10 for changeset 6d890180aeb4 ! .hgtags Changeset: 1d106f862182 Author: andrew Date: 2018-05-02 05:07 +0100 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/hotspot/rev/1d106f862182 Merge jdk8u171-b11 ! .hgtags ! src/share/vm/classfile/javaClasses.cpp ! src/share/vm/classfile/systemDictionary.cpp ! src/share/vm/classfile/systemDictionary.hpp ! src/share/vm/classfile/verifier.cpp ! src/share/vm/classfile/vmSymbols.hpp ! src/share/vm/code/dependencies.cpp ! src/share/vm/interpreter/bytecodeInterpreter.cpp ! src/share/vm/oops/cpCache.cpp ! src/share/vm/prims/jvm.cpp Changeset: c6931911a5aa Author: andrew Date: 2018-05-02 05:09 +0100 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/hotspot/rev/c6931911a5aa Added tag aarch64-jdk8u171-b12 for changeset 1d106f862182 ! .hgtags Changeset: 8015f8f73cde Author: asaha Date: 2017-10-24 13:15 -0700 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/hotspot/rev/8015f8f73cde Added tag jdk8u172-b00 for changeset f299cf0b7bae ! .hgtags Changeset: 4edb0f406a2c Author: bdelsart Date: 2014-02-24 12:49 +0100 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/hotspot/rev/4edb0f406a2c 8035496: G1 ARM: missing remset entry noticed by VerifyAfterGC for vm/gc/concurrent/lp50yp10rp70mr30st0 Summary: release_store used when registering a PerRegionTable. Also reviewed-by: vitalyd at gmail.com Reviewed-by: jmasa, tschatzl, brutisso ! src/share/vm/gc_implementation/g1/heapRegionRemSet.cpp Changeset: 62c8545a9b6f Author: ysuenaga Date: 2017-10-24 22:45 +0900 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/hotspot/rev/62c8545a9b6f 8189599: InitialBootClassLoaderMetaspaceSize and CompressedClassSpaceSize should be checked consistent from MaxMetaspaceSize Reviewed-by: dholmes, sspitsyn, poonam ! src/share/vm/memory/metaspace.cpp + test/runtime/Metaspace/MaxMetaspaceSizeTest.java Changeset: 935cacbb8fab Author: poonam Date: 2017-10-31 20:29 +0000 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/hotspot/rev/935cacbb8fab 8190442: Backout changes for JDK-8087291 from 8u-dev as it didn't use main CR id Summary: Backed out changeset 62c8545a9b6f Reviewed-by: asaha ! src/share/vm/memory/metaspace.cpp - test/runtime/Metaspace/MaxMetaspaceSizeTest.java Changeset: ac8450bdd81c Author: ysuenaga Date: 2017-10-24 22:45 +0900 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/hotspot/rev/ac8450bdd81c 8087291: InitialBootClassLoaderMetaspaceSize and CompressedClassSpaceSize should be checked consistent from MaxMetaspaceSize Reviewed-by: dholmes, sspitsyn, poonam ! src/share/vm/memory/metaspace.cpp + test/runtime/Metaspace/MaxMetaspaceSizeTest.java Changeset: 7cf8e195651f Author: robm Date: 2017-11-06 05:44 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/hotspot/rev/7cf8e195651f Merge Changeset: 519770602025 Author: roland Date: 2017-11-08 23:32 -0500 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/hotspot/rev/519770602025 8187822: C2 conditonal move optimization might create broken graph Reviewed-by: kvn ! src/share/vm/opto/loopopts.cpp + test/compiler/loopopts/TestCMovSplitThruPhi.java Changeset: a9b412abe617 Author: robm Date: 2017-11-15 11:09 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/hotspot/rev/a9b412abe617 Merge Changeset: da59531e1fdf Author: zgu Date: 2017-11-08 09:07 -0500 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/hotspot/rev/da59531e1fdf 8139673: NMT stack traces in output should show mtcomponent Summary: Show memory types of malloc site in detail report Reviewed-by: dholmes, shade ! src/share/vm/services/mallocSiteTable.cpp ! src/share/vm/services/mallocSiteTable.hpp ! src/share/vm/services/mallocTracker.cpp ! src/share/vm/services/mallocTracker.hpp ! src/share/vm/services/memReporter.cpp ! src/share/vm/services/memReporter.hpp Changeset: db49d511817a Author: zgu Date: 2017-07-24 15:19 -0400 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/hotspot/rev/db49d511817a 8184991: NMT detail diff should take memory type into account Summary: NMT detail allocation site comparison should compare sites with the same memory type Reviewed-by: shade, coleenp ! src/share/vm/services/memBaseline.cpp ! src/share/vm/services/memBaseline.hpp ! src/share/vm/services/memReporter.cpp ! src/share/vm/services/memReporter.hpp Changeset: e4e58811ed1b Author: zgu Date: 2017-11-28 11:34 -0500 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/hotspot/rev/e4e58811ed1b 8187629: NMT: Memory miscounting in compiler (C2) Summary: Fixed memory counting in compiler (C2) Reviewed-by: adinn, cjplummer, kvn ! src/share/vm/memory/resourceArea.hpp ! src/share/vm/opto/chaitin.cpp ! src/share/vm/opto/matcher.cpp Changeset: 940519c00887 Author: zgu Date: 2017-10-06 22:40 -0400 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/hotspot/rev/940519c00887 8187685: NMT: Tracking compiler memory usage of thread's resource area Summary: Bias compiler thread's resource area to mtCompiler Reviewed-by: kvn, coleenp ! src/share/vm/memory/resourceArea.cpp ! src/share/vm/memory/resourceArea.hpp ! src/share/vm/runtime/thread.cpp Changeset: b0f7174de2c5 Author: zgu Date: 2017-09-20 20:54 -0400 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/hotspot/rev/b0f7174de2c5 8187331: VirtualSpaceList tracks free space on wrong node Summary: Fixed miscounting of virtual space node's free memory Reviewed-by: shade, coleenp, stuefe ! src/share/vm/memory/metaspace.cpp Changeset: 8c3e62bb99f3 Author: mchinnathamb Date: 2017-12-11 02:39 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/hotspot/rev/8c3e62bb99f3 8170395: Metaspace initialization queries the wrong chunk freelist Reviewed-by: stuefe, stefank ! src/share/vm/memory/metaspace.cpp ! src/share/vm/memory/metaspace.hpp ! src/share/vm/prims/jni.cpp ! src/share/vm/utilities/debug.cpp ! src/share/vm/utilities/debug.hpp Changeset: 5801df4acb84 Author: dbuck Date: 2017-12-18 18:53 -0500 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/hotspot/rev/5801df4acb84 8059036: Implement Diagnostic Commands for heap and finalizerinfo Summary: Implement Diagnostic Commands for heap and finalizerinfo Reviewed-by: mchung ! src/share/vm/classfile/vmSymbols.hpp ! src/share/vm/services/diagnosticCommand.cpp ! src/share/vm/services/diagnosticCommand.hpp + test/serviceability/dcmd/gc/FinalizerInfoTest.java + test/serviceability/dcmd/gc/HeapInfoTest.java Changeset: 438da598a947 Author: dbuck Date: 2017-12-19 10:22 -0500 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/hotspot/rev/438da598a947 8055755: Information about loaded dynamic libraries is wrong on MacOSX Summary: The information about loaded dynamic libraries printed in hs_err_pid files or by running the jcmd VM.dynlib is partly incorrect. The address printed in front of the library file name is wrong. Reviewed-by: sla, gziemski, gtriantafill Contributed-by: fredrik.arvidsson at oracle.com ! src/os/bsd/vm/os_bsd.cpp Changeset: d10254debf7c Author: dbuck Date: 2017-12-21 19:11 -0500 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/hotspot/rev/d10254debf7c 8031304: Add dcmd to print all loaded dynamic libraries. Summary: Adding VM.dynlibs as a dcmd to dump all loaded dynamic libraries. Reviewed-by: fparain, mgronlun ! src/share/vm/services/diagnosticCommand.cpp ! src/share/vm/services/diagnosticCommand.hpp ! test/TEST.groups + test/serviceability/dcmd/DcmdUtil.java + test/serviceability/dcmd/DynLibDcmdTest.java Changeset: 9c9afd0bd8e9 Author: asaha Date: 2018-01-02 17:01 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/hotspot/rev/9c9afd0bd8e9 Added tag jdk8u172-b01 for changeset d10254debf7c ! .hgtags Changeset: 777ace6655eb Author: dbuck Date: 2017-12-25 00:08 -0500 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/hotspot/rev/777ace6655eb 8044107: Add Diagnostic Command to list all ClassLoaders Reviewed-by: dholmes + src/share/vm/classfile/classLoaderStats.cpp + src/share/vm/classfile/classLoaderStats.hpp ! src/share/vm/memory/metaspace.cpp ! src/share/vm/memory/metaspace.hpp ! src/share/vm/runtime/vm_operations.hpp ! src/share/vm/services/diagnosticCommand.cpp + test/serviceability/dcmd/ClassLoaderStatsTest.java Changeset: ea0367ce6726 Author: mchinnathamb Date: 2018-01-03 03:17 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/hotspot/rev/ea0367ce6726 8170358: [REDO] 8k class metaspace chunks misallocated from 4k chunk Freelist Reviewed-by: dholmes, kevinw ! src/share/vm/memory/metaspace.cpp ! src/share/vm/prims/jni.cpp Changeset: 653d9e0cd3f4 Author: robm Date: 2018-01-08 10:18 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/hotspot/rev/653d9e0cd3f4 Merge Changeset: c19c5b73704e Author: asaha Date: 2018-01-08 22:35 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/hotspot/rev/c19c5b73704e Added tag jdk8u172-b02 for changeset 653d9e0cd3f4 ! .hgtags Changeset: 771d9e1fbe1a Author: asaha Date: 2018-01-16 22:54 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/hotspot/rev/771d9e1fbe1a Merge ! .hgtags ! src/share/vm/prims/jni.cpp Changeset: dce201107e3e Author: asaha Date: 2018-01-18 06:01 +0000 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/hotspot/rev/dce201107e3e Added tag jdk8u172-b03 for changeset 771d9e1fbe1a ! .hgtags Changeset: e481feb718cb Author: asaha Date: 2018-01-22 15:10 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/hotspot/rev/e481feb718cb Merge ! .hgtags Changeset: 16be38cadc00 Author: asaha Date: 2018-01-25 08:16 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/hotspot/rev/16be38cadc00 Merge ! .hgtags Changeset: efd7a4e211e8 Author: asaha Date: 2018-01-30 11:29 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/hotspot/rev/efd7a4e211e8 Merge ! .hgtags Changeset: 4b32486ff99b Author: asaha Date: 2018-01-30 11:39 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/hotspot/rev/4b32486ff99b Added tag jdk8u172-b04 for changeset efd7a4e211e8 ! .hgtags Changeset: 4235fb1dceeb Author: asaha Date: 2018-02-06 11:01 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/hotspot/rev/4235fb1dceeb Merge ! .hgtags ! src/share/vm/classfile/vmSymbols.hpp Changeset: 7de5129bb8e6 Author: asaha Date: 2018-02-06 11:13 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/hotspot/rev/7de5129bb8e6 Added tag jdk8u172-b05 for changeset 4235fb1dceeb ! .hgtags Changeset: 68b234d5df6f Author: asaha Date: 2018-02-13 12:22 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/hotspot/rev/68b234d5df6f Merge ! .hgtags Changeset: 3d6fdd60d4be Author: asaha Date: 2018-02-13 12:56 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/hotspot/rev/3d6fdd60d4be Added tag jdk8u172-b06 for changeset 68b234d5df6f ! .hgtags Changeset: a311a45523b1 Author: asaha Date: 2018-02-20 13:02 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/hotspot/rev/a311a45523b1 Merge ! .hgtags Changeset: 3ff20f44b8d1 Author: asaha Date: 2018-02-20 13:11 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/hotspot/rev/3ff20f44b8d1 Added tag jdk8u172-b07 for changeset a311a45523b1 ! .hgtags Changeset: 5c1f180db165 Author: asaha Date: 2018-02-27 11:36 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/hotspot/rev/5c1f180db165 Merge ! .hgtags Changeset: 8e75ba18e9f3 Author: asaha Date: 2018-03-06 20:30 +0000 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/hotspot/rev/8e75ba18e9f3 Added tag jdk8u172-b08 for changeset 5c1f180db165 ! .hgtags Changeset: aafd1bb21e26 Author: asaha Date: 2018-03-06 20:32 +0000 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/hotspot/rev/aafd1bb21e26 Merge ! .hgtags Changeset: 7f12527de43b Author: asaha Date: 2018-03-06 20:36 +0000 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/hotspot/rev/7f12527de43b Added tag jdk8u172-b09 for changeset aafd1bb21e26 ! .hgtags Changeset: dcd3ace969fc Author: asaha Date: 2018-03-19 11:59 -0700 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/hotspot/rev/dcd3ace969fc Merge ! .hgtags Changeset: 14a3e78ec5cf Author: asaha Date: 2018-03-19 12:12 -0700 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/hotspot/rev/14a3e78ec5cf Added tag jdk8u172-b10 for changeset dcd3ace969fc ! .hgtags Changeset: a9ea8a48feca Author: asaha Date: 2018-03-28 08:18 -0700 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/hotspot/rev/a9ea8a48feca Added tag jdk8u171-b11 for changeset 23addae1b843 ! .hgtags Changeset: 083a9d656210 Author: asaha Date: 2018-03-28 08:36 -0700 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/hotspot/rev/083a9d656210 Merge ! .hgtags Changeset: ddf2cfa8e00a Author: andrew Date: 2018-05-09 04:51 +0100 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/hotspot/rev/ddf2cfa8e00a Merge jdk8u172-b11 ! .hgtags ! src/os/bsd/vm/os_bsd.cpp ! src/share/vm/classfile/vmSymbols.hpp ! src/share/vm/gc_implementation/g1/heapRegionRemSet.cpp ! src/share/vm/memory/metaspace.cpp ! src/share/vm/memory/metaspace.hpp ! src/share/vm/opto/chaitin.cpp ! src/share/vm/opto/loopopts.cpp ! src/share/vm/opto/matcher.cpp ! src/share/vm/prims/jni.cpp ! src/share/vm/runtime/thread.cpp ! src/share/vm/runtime/vm_operations.hpp ! src/share/vm/services/diagnosticCommand.cpp ! src/share/vm/services/diagnosticCommand.hpp ! test/TEST.groups Changeset: 1ced2ae00e35 Author: andrew Date: 2018-05-09 04:52 +0100 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/hotspot/rev/1ced2ae00e35 Added tag aarch64-jdk8u172-b11 for changeset ddf2cfa8e00a ! .hgtags Changeset: 253b0c304db6 Author: shade Date: 2018-05-11 21:50 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/hotspot/rev/253b0c304db6 UB in os_linux_aarch64.cpp SpinPause Reviewed-by: aph, shade, adinn ! src/os_cpu/linux_aarch64/vm/os_linux_aarch64.cpp Changeset: 3c0f271c8d62 Author: shade Date: 2018-05-14 11:17 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/hotspot/rev/3c0f271c8d62 Merge ! .hgtags ! src/share/vm/classfile/javaClasses.cpp ! src/share/vm/classfile/systemDictionary.cpp ! src/share/vm/code/dependencies.cpp ! src/share/vm/opto/loopopts.cpp ! src/share/vm/opto/matcher.cpp ! src/share/vm/prims/jni.cpp ! src/share/vm/prims/jvm.cpp ! src/share/vm/runtime/thread.cpp ! src/share/vm/runtime/vm_operations.hpp ! src/share/vm/services/diagnosticCommand.cpp ! test/TEST.groups From ashipile at redhat.com Mon May 14 09:41:21 2018 From: ashipile at redhat.com (ashipile at redhat.com) Date: Mon, 14 May 2018 09:41:21 +0000 Subject: hg: shenandoah/jdk8u/nashorn: 54 new changesets Message-ID: <201805140941.w4E9fLMV014293@aojmv0008.oracle.com> Changeset: 15fe65e06aa8 Author: andrew Date: 2018-04-30 19:00 +0100 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/nashorn/rev/15fe65e06aa8 Added tag aarch64-jdk8u171-b11 for changeset eb038e0fd088 ! .hgtags Changeset: 81ce60cabe97 Author: asaha Date: 2017-12-19 15:38 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/nashorn/rev/81ce60cabe97 Added tag jdk8u162-b12 for changeset 3f877d379c48 ! .hgtags Changeset: 4283a4dc8c2a Author: asaha Date: 2017-10-03 23:31 -0700 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/nashorn/rev/4283a4dc8c2a Added tag jdk8u171-b00 for changeset 3702c8d74607 ! .hgtags Changeset: a93571f7ff35 Author: asaha Date: 2017-11-02 11:45 -0700 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/nashorn/rev/a93571f7ff35 Merge ! .hgtags Changeset: 94a17ba26902 Author: asaha Date: 2017-10-06 08:34 -0700 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/nashorn/rev/94a17ba26902 Added tag jdk8u152-b31 for changeset 853acc70b8f5 ! .hgtags Changeset: 1197ac84319b Author: asaha Date: 2017-10-31 14:56 -0700 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/nashorn/rev/1197ac84319b Added tag jdk8u152-b32 for changeset 94a17ba26902 ! .hgtags Changeset: 9da10196e759 Author: asaha Date: 2017-11-14 13:12 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/nashorn/rev/9da10196e759 Added tag jdk8u152-b33 for changeset 1197ac84319b ! .hgtags Changeset: dfcb4d4df8b0 Author: asaha Date: 2017-12-12 09:39 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/nashorn/rev/dfcb4d4df8b0 Added tag jdk8u152-b34 for changeset 9da10196e759 ! .hgtags Changeset: 39a4730d3a36 Author: asaha Date: 2017-12-14 13:46 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/nashorn/rev/39a4730d3a36 Merge ! .hgtags Changeset: e640fd54bbcb Author: asaha Date: 2017-12-15 11:42 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/nashorn/rev/e640fd54bbcb Added tag jdk8u152-b35 for changeset dfcb4d4df8b0 ! .hgtags Changeset: 89ae5243e350 Author: asaha Date: 2017-12-15 15:55 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/nashorn/rev/89ae5243e350 Merge ! .hgtags Changeset: 155c9988196f Author: asaha Date: 2017-12-15 16:02 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/nashorn/rev/155c9988196f Merge ! .hgtags Changeset: 3c567ee8d853 Author: asaha Date: 2017-12-21 09:40 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/nashorn/rev/3c567ee8d853 Merge ! .hgtags Changeset: 8281166a86a5 Author: asaha Date: 2017-12-21 13:51 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/nashorn/rev/8281166a86a5 Merge ! .hgtags Changeset: 9e67b74ac0f0 Author: asaha Date: 2018-01-02 16:16 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/nashorn/rev/9e67b74ac0f0 Added tag jdk8u171-b01 for changeset 8281166a86a5 ! .hgtags Changeset: 59508dc01b26 Author: asaha Date: 2018-01-04 15:46 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/nashorn/rev/59508dc01b26 Added tag jdk8u162-b31 for changeset 3c567ee8d853 ! .hgtags Changeset: 710e8cf9b7a5 Author: asaha Date: 2018-01-08 09:10 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/nashorn/rev/710e8cf9b7a5 Merge ! .hgtags Changeset: 42903e21ee6a Author: asaha Date: 2018-01-09 12:38 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/nashorn/rev/42903e21ee6a Added tag jdk8u171-b02 for changeset 710e8cf9b7a5 ! .hgtags Changeset: 0f09c1423f34 Author: asaha Date: 2018-01-23 13:10 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/nashorn/rev/0f09c1423f34 Added tag jdk8u171-b03 for changeset 42903e21ee6a ! .hgtags Changeset: 801694cc35e0 Author: asaha Date: 2018-01-30 11:24 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/nashorn/rev/801694cc35e0 Added tag jdk8u171-b04 for changeset 0f09c1423f34 ! .hgtags Changeset: bb4112535600 Author: asaha Date: 2018-02-06 10:53 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/nashorn/rev/bb4112535600 Added tag jdk8u171-b05 for changeset 801694cc35e0 ! .hgtags Changeset: 059028cb5652 Author: asaha Date: 2018-02-13 12:16 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/nashorn/rev/059028cb5652 Added tag jdk8u171-b06 for changeset bb4112535600 ! .hgtags Changeset: fd005fcf00fe Author: asaha Date: 2018-02-20 12:57 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/nashorn/rev/fd005fcf00fe Added tag jdk8u171-b07 for changeset 059028cb5652 ! .hgtags Changeset: 9d9a43a064fc Author: asaha Date: 2018-02-27 11:28 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/nashorn/rev/9d9a43a064fc Added tag jdk8u171-b08 for changeset fd005fcf00fe ! .hgtags Changeset: e9b4feb9ed6a Author: asaha Date: 2018-03-06 11:45 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/nashorn/rev/e9b4feb9ed6a Added tag jdk8u171-b09 for changeset 9d9a43a064fc ! .hgtags Changeset: 921be31addf6 Author: asaha Date: 2018-03-19 11:47 -0700 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/nashorn/rev/921be31addf6 Added tag jdk8u171-b10 for changeset e9b4feb9ed6a ! .hgtags Changeset: 2fe1bd3f67aa Author: andrew Date: 2018-05-02 05:07 +0100 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/nashorn/rev/2fe1bd3f67aa Merge jdk8u171-b11 ! .hgtags Changeset: 11c74e723fd1 Author: andrew Date: 2018-05-02 05:09 +0100 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/nashorn/rev/11c74e723fd1 Added tag aarch64-jdk8u171-b12 for changeset 2fe1bd3f67aa ! .hgtags Changeset: 8b311af3f1b2 Author: asaha Date: 2017-10-24 13:17 -0700 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/nashorn/rev/8b311af3f1b2 Added tag jdk8u172-b00 for changeset 3ae3ebe2e2ee ! .hgtags Changeset: e5e19194a8a2 Author: asaha Date: 2018-01-02 17:03 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/nashorn/rev/e5e19194a8a2 Added tag jdk8u172-b01 for changeset 8b311af3f1b2 ! .hgtags Changeset: 5b549167a929 Author: asaha Date: 2018-01-08 22:37 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/nashorn/rev/5b549167a929 Added tag jdk8u172-b02 for changeset e5e19194a8a2 ! .hgtags Changeset: 93b6ac378726 Author: asaha Date: 2018-01-16 23:02 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/nashorn/rev/93b6ac378726 Merge ! .hgtags Changeset: e88efeee4e44 Author: asaha Date: 2018-01-18 06:01 +0000 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/nashorn/rev/e88efeee4e44 Added tag jdk8u172-b03 for changeset 93b6ac378726 ! .hgtags Changeset: b99df5e37a50 Author: asaha Date: 2018-01-22 15:17 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/nashorn/rev/b99df5e37a50 Merge ! .hgtags Changeset: 4e58e4ad1400 Author: asaha Date: 2018-01-25 08:26 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/nashorn/rev/4e58e4ad1400 Merge ! .hgtags Changeset: 9bd2bd2edbd7 Author: asaha Date: 2018-01-30 11:36 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/nashorn/rev/9bd2bd2edbd7 Merge ! .hgtags Changeset: 94850558b3a4 Author: asaha Date: 2018-01-30 11:40 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/nashorn/rev/94850558b3a4 Added tag jdk8u172-b04 for changeset 9bd2bd2edbd7 ! .hgtags Changeset: c6d01f70f166 Author: asaha Date: 2018-02-06 11:12 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/nashorn/rev/c6d01f70f166 Merge ! .hgtags Changeset: ebcef6c6ffbc Author: asaha Date: 2018-02-06 11:14 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/nashorn/rev/ebcef6c6ffbc Added tag jdk8u172-b05 for changeset c6d01f70f166 ! .hgtags Changeset: bb62c7f3b3ed Author: asaha Date: 2018-02-13 12:30 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/nashorn/rev/bb62c7f3b3ed Merge ! .hgtags Changeset: 559ff6f2880c Author: asaha Date: 2018-02-13 12:58 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/nashorn/rev/559ff6f2880c Added tag jdk8u172-b06 for changeset bb62c7f3b3ed ! .hgtags Changeset: b14b138cc741 Author: asaha Date: 2018-02-20 13:07 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/nashorn/rev/b14b138cc741 Merge ! .hgtags Changeset: 0cdcf92d3823 Author: asaha Date: 2018-02-20 13:12 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/nashorn/rev/0cdcf92d3823 Added tag jdk8u172-b07 for changeset b14b138cc741 ! .hgtags Changeset: 32ba142b2880 Author: asaha Date: 2018-02-27 11:45 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/nashorn/rev/32ba142b2880 Merge ! .hgtags Changeset: 2cfe998acc70 Author: asaha Date: 2018-03-06 20:30 +0000 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/nashorn/rev/2cfe998acc70 Added tag jdk8u172-b08 for changeset 32ba142b2880 ! .hgtags Changeset: 1353afc92267 Author: asaha Date: 2018-03-06 20:35 +0000 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/nashorn/rev/1353afc92267 Merge ! .hgtags Changeset: c5f9041e5d54 Author: asaha Date: 2018-03-06 20:36 +0000 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/nashorn/rev/c5f9041e5d54 Added tag jdk8u172-b09 for changeset 1353afc92267 ! .hgtags Changeset: 3087d3a4983a Author: asaha Date: 2018-03-19 12:10 -0700 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/nashorn/rev/3087d3a4983a Merge ! .hgtags Changeset: de39df7cdbef Author: asaha Date: 2018-03-19 12:14 -0700 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/nashorn/rev/de39df7cdbef Added tag jdk8u172-b10 for changeset 3087d3a4983a ! .hgtags Changeset: 04a4e73e879e Author: asaha Date: 2018-03-28 08:19 -0700 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/nashorn/rev/04a4e73e879e Added tag jdk8u171-b11 for changeset 921be31addf6 ! .hgtags Changeset: df6d51bc4491 Author: asaha Date: 2018-03-28 08:47 -0700 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/nashorn/rev/df6d51bc4491 Merge ! .hgtags Changeset: 10935dac00db Author: andrew Date: 2018-05-09 04:51 +0100 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/nashorn/rev/10935dac00db Merge jdk8u172-b11 ! .hgtags Changeset: c667b467b394 Author: andrew Date: 2018-05-09 04:52 +0100 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/nashorn/rev/c667b467b394 Added tag aarch64-jdk8u172-b11 for changeset 10935dac00db ! .hgtags Changeset: 66f1a77ea0a1 Author: shade Date: 2018-05-14 11:17 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/nashorn/rev/66f1a77ea0a1 Merge ! .hgtags From ashipile at redhat.com Mon May 14 09:41:23 2018 From: ashipile at redhat.com (ashipile at redhat.com) Date: Mon, 14 May 2018 09:41:23 +0000 Subject: hg: shenandoah/jdk8u/jaxp: 57 new changesets Message-ID: <201805140941.w4E9fOAu014319@aojmv0008.oracle.com> Changeset: 471381e0e181 Author: andrew Date: 2018-04-30 19:00 +0100 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/jaxp/rev/471381e0e181 Added tag aarch64-jdk8u171-b11 for changeset 0ecfb39b8cfd ! .hgtags Changeset: e8a1a2db69dc Author: asaha Date: 2017-12-19 15:37 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/jaxp/rev/e8a1a2db69dc Added tag jdk8u162-b12 for changeset fa7504e2b241 ! .hgtags Changeset: 606a6926c1cc Author: asaha Date: 2017-10-03 23:30 -0700 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/jaxp/rev/606a6926c1cc Added tag jdk8u171-b00 for changeset 7984f6d87395 ! .hgtags Changeset: b05d08bc4e52 Author: aefimov Date: 2017-10-19 17:03 +0100 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/jaxp/rev/b05d08bc4e52 8186080: Transform XML interfaces 8188880: A JAXB JCK test failure found after 8186080 Reviewed-by: joehw, lancea, dfuchs ! src/com/sun/org/apache/xalan/internal/lib/ExsltDynamic.java ! src/com/sun/org/apache/xalan/internal/lib/ExsltSets.java ! src/com/sun/org/apache/xalan/internal/lib/ExsltStrings.java ! src/com/sun/org/apache/xalan/internal/lib/Extensions.java - src/com/sun/org/apache/xalan/internal/utils/FactoryImpl.java - src/com/sun/org/apache/xalan/internal/utils/FeatureManager.java ! src/com/sun/org/apache/xalan/internal/xsltc/Translet.java ! src/com/sun/org/apache/xalan/internal/xsltc/cmdline/Compile.java ! src/com/sun/org/apache/xalan/internal/xsltc/compiler/FunctionCall.java ! src/com/sun/org/apache/xalan/internal/xsltc/compiler/Parser.java ! src/com/sun/org/apache/xalan/internal/xsltc/compiler/XSLTC.java ! src/com/sun/org/apache/xalan/internal/xsltc/runtime/AbstractTranslet.java ! src/com/sun/org/apache/xalan/internal/xsltc/runtime/output/TransletOutputHandlerFactory.java ! src/com/sun/org/apache/xalan/internal/xsltc/trax/SAX2DOM.java ! src/com/sun/org/apache/xalan/internal/xsltc/trax/TemplatesHandlerImpl.java ! src/com/sun/org/apache/xalan/internal/xsltc/trax/TemplatesImpl.java ! src/com/sun/org/apache/xalan/internal/xsltc/trax/TrAXFilter.java ! src/com/sun/org/apache/xalan/internal/xsltc/trax/TransformerFactoryImpl.java ! src/com/sun/org/apache/xalan/internal/xsltc/trax/TransformerImpl.java ! src/com/sun/org/apache/xalan/internal/xsltc/trax/Util.java ! src/com/sun/org/apache/xerces/internal/dom/DOMConfigurationImpl.java ! src/com/sun/org/apache/xerces/internal/impl/xs/XMLSchemaLoader.java ! src/com/sun/org/apache/xerces/internal/impl/xs/XMLSchemaValidator.java ! src/com/sun/org/apache/xerces/internal/impl/xs/opti/SchemaParsingConfig.java ! src/com/sun/org/apache/xerces/internal/impl/xs/traversers/SchemaContentHandler.java ! src/com/sun/org/apache/xerces/internal/impl/xs/traversers/XSDHandler.java ! src/com/sun/org/apache/xerces/internal/jaxp/validation/DOMValidatorHelper.java ! src/com/sun/org/apache/xerces/internal/jaxp/validation/StAXValidatorHelper.java ! src/com/sun/org/apache/xerces/internal/jaxp/validation/StreamValidatorHelper.java ! src/com/sun/org/apache/xerces/internal/jaxp/validation/ValidatorHandlerImpl.java ! src/com/sun/org/apache/xerces/internal/jaxp/validation/XMLSchemaFactory.java ! src/com/sun/org/apache/xerces/internal/parsers/DTDConfiguration.java ! src/com/sun/org/apache/xerces/internal/parsers/NonValidatingConfiguration.java ! src/com/sun/org/apache/xerces/internal/parsers/XML11Configuration.java ! src/com/sun/org/apache/xerces/internal/util/XMLCatalogResolver.java ! src/com/sun/org/apache/xml/internal/dtm/DTMManager.java ! src/com/sun/org/apache/xml/internal/dtm/ref/DTMManagerDefault.java ! src/com/sun/org/apache/xml/internal/resolver/Catalog.java ! src/com/sun/org/apache/xml/internal/resolver/CatalogManager.java ! src/com/sun/org/apache/xml/internal/resolver/Resolver.java ! src/com/sun/org/apache/xml/internal/resolver/tools/CatalogResolver.java ! src/com/sun/org/apache/xml/internal/resolver/tools/ResolvingParser.java ! src/com/sun/org/apache/xml/internal/resolver/tools/ResolvingXMLReader.java ! src/com/sun/org/apache/xml/internal/serializer/TreeWalker.java - src/com/sun/org/apache/xml/internal/serializer/utils/AttList.java - src/com/sun/org/apache/xml/internal/serializer/utils/DOM2Helper.java ! src/com/sun/org/apache/xml/internal/utils/AttList.java ! src/com/sun/org/apache/xml/internal/utils/DOM2Helper.java - src/com/sun/org/apache/xml/internal/utils/DOMHelper.java - src/com/sun/org/apache/xml/internal/utils/DOMOrder.java ! src/com/sun/org/apache/xml/internal/utils/TreeWalker.java ! src/com/sun/org/apache/xml/internal/utils/XMLReaderManager.java ! src/com/sun/org/apache/xpath/internal/CachedXPathAPI.java ! src/com/sun/org/apache/xpath/internal/XPathAPI.java ! src/com/sun/org/apache/xpath/internal/XPathContext.java ! src/com/sun/org/apache/xpath/internal/jaxp/JAXPExtensionsProvider.java ! src/com/sun/org/apache/xpath/internal/jaxp/XPathExpressionImpl.java ! src/com/sun/org/apache/xpath/internal/jaxp/XPathFactoryImpl.java ! src/com/sun/org/apache/xpath/internal/jaxp/XPathImpl.java ! src/javax/xml/transform/FactoryFinder.java ! src/javax/xml/transform/TransformerFactory.java ! src/javax/xml/validation/SchemaFactoryFinder.java ! src/javax/xml/xpath/XPathFactoryFinder.java + src/jdk/xml/internal/JdkXmlFeatures.java + src/jdk/xml/internal/JdkXmlUtils.java + src/jdk/xml/internal/SecuritySupport.java Changeset: ea0317b70769 Author: asaha Date: 2017-11-02 11:33 -0700 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/jaxp/rev/ea0317b70769 Merge ! .hgtags Changeset: f20c7cdf6728 Author: asaha Date: 2017-10-06 08:33 -0700 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/jaxp/rev/f20c7cdf6728 Added tag jdk8u152-b31 for changeset f4505a7897c7 ! .hgtags Changeset: 31c2dd5d72a3 Author: asaha Date: 2017-10-31 14:56 -0700 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/jaxp/rev/31c2dd5d72a3 Added tag jdk8u152-b32 for changeset f20c7cdf6728 ! .hgtags Changeset: 7c42388a2152 Author: asaha Date: 2017-11-14 13:11 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/jaxp/rev/7c42388a2152 Added tag jdk8u152-b33 for changeset 31c2dd5d72a3 ! .hgtags Changeset: 5708ff1232d5 Author: asaha Date: 2017-12-12 09:38 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/jaxp/rev/5708ff1232d5 Added tag jdk8u152-b34 for changeset 7c42388a2152 ! .hgtags Changeset: 454a0c80fe42 Author: asaha Date: 2017-12-14 13:10 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/jaxp/rev/454a0c80fe42 Merge ! .hgtags Changeset: 7f686984fa4b Author: asaha Date: 2017-12-15 11:42 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/jaxp/rev/7f686984fa4b Added tag jdk8u152-b35 for changeset 5708ff1232d5 ! .hgtags Changeset: ff7bd8a2a390 Author: asaha Date: 2017-12-15 15:48 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/jaxp/rev/ff7bd8a2a390 Merge ! .hgtags Changeset: 9406f14d836b Author: asaha Date: 2017-12-15 16:00 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/jaxp/rev/9406f14d836b Merge ! .hgtags Changeset: ecdf7d13fd8b Author: asaha Date: 2017-12-21 09:38 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/jaxp/rev/ecdf7d13fd8b Merge ! .hgtags Changeset: 3a4b6f741a1b Author: asaha Date: 2017-12-21 11:15 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/jaxp/rev/3a4b6f741a1b Merge ! .hgtags Changeset: e48882603c21 Author: asaha Date: 2018-01-02 16:15 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/jaxp/rev/e48882603c21 Added tag jdk8u171-b01 for changeset 3a4b6f741a1b ! .hgtags Changeset: 71194348ef55 Author: asaha Date: 2018-01-04 15:45 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/jaxp/rev/71194348ef55 Added tag jdk8u162-b31 for changeset ecdf7d13fd8b ! .hgtags Changeset: 0eb59cc7716f Author: asaha Date: 2018-01-08 09:06 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/jaxp/rev/0eb59cc7716f Merge ! .hgtags Changeset: 1e523ce5792f Author: asaha Date: 2018-01-09 12:37 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/jaxp/rev/1e523ce5792f Added tag jdk8u171-b02 for changeset 0eb59cc7716f ! .hgtags Changeset: a19f8b3a9242 Author: asaha Date: 2018-01-23 13:09 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/jaxp/rev/a19f8b3a9242 Added tag jdk8u171-b03 for changeset 1e523ce5792f ! .hgtags Changeset: dd671638bd0f Author: asaha Date: 2018-01-30 11:23 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/jaxp/rev/dd671638bd0f Added tag jdk8u171-b04 for changeset a19f8b3a9242 ! .hgtags Changeset: 5279c6da822e Author: aefimov Date: 2018-01-29 12:56 +0000 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/jaxp/rev/5279c6da822e 8189993: Improve document portability Reviewed-by: joehw ! src/com/sun/org/apache/xerces/internal/dom/NamedNodeMapImpl.java Changeset: daab1512cd15 Author: asaha Date: 2018-02-06 10:52 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/jaxp/rev/daab1512cd15 Added tag jdk8u171-b05 for changeset 5279c6da822e ! .hgtags Changeset: d5b13a2a6fbf Author: asaha Date: 2018-02-13 12:15 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/jaxp/rev/d5b13a2a6fbf Added tag jdk8u171-b06 for changeset daab1512cd15 ! .hgtags Changeset: 8cc732073801 Author: asaha Date: 2018-02-20 12:56 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/jaxp/rev/8cc732073801 Added tag jdk8u171-b07 for changeset d5b13a2a6fbf ! .hgtags Changeset: df47a908b184 Author: asaha Date: 2018-02-27 11:27 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/jaxp/rev/df47a908b184 Added tag jdk8u171-b08 for changeset 8cc732073801 ! .hgtags Changeset: 19dd9e94ba4f Author: asaha Date: 2018-03-06 11:44 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/jaxp/rev/19dd9e94ba4f Added tag jdk8u171-b09 for changeset df47a908b184 ! .hgtags Changeset: 951193aeb2c4 Author: asaha Date: 2018-03-19 11:47 -0700 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/jaxp/rev/951193aeb2c4 Added tag jdk8u171-b10 for changeset 19dd9e94ba4f ! .hgtags Changeset: 6e9148ef1b3a Author: ljiang Date: 2018-03-27 18:07 -0700 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/jaxp/rev/6e9148ef1b3a 8200314: JDK 8u171 l10n resource file update - msg drop 40 Reviewed-by: coffeys ! src/com/sun/org/apache/xalan/internal/xsltc/compiler/util/ErrorMessages_sv.java ! src/com/sun/org/apache/xerces/internal/impl/msg/XIncludeMessages_sv.properties ! src/com/sun/org/apache/xerces/internal/impl/msg/XMLMessages_sv.properties ! src/com/sun/org/apache/xerces/internal/impl/msg/XMLSerializerMessages_sv.properties ! src/com/sun/org/apache/xerces/internal/impl/msg/XPointerMessages_sv.properties ! src/com/sun/org/apache/xpath/internal/res/XPATHErrorResources_sv.java Changeset: 7b7d1a1056bf Author: andrew Date: 2018-05-02 05:07 +0100 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/jaxp/rev/7b7d1a1056bf Merge jdk8u171-b11 ! .hgtags Changeset: 4f1e6605ea5b Author: andrew Date: 2018-05-02 05:09 +0100 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/jaxp/rev/4f1e6605ea5b Added tag aarch64-jdk8u171-b12 for changeset 7b7d1a1056bf ! .hgtags Changeset: a8bd8d03df39 Author: asaha Date: 2017-10-24 13:16 -0700 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/jaxp/rev/a8bd8d03df39 Added tag jdk8u172-b00 for changeset dcef061c3628 ! .hgtags Changeset: 78e071b5c067 Author: asaha Date: 2018-01-02 17:02 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/jaxp/rev/78e071b5c067 Added tag jdk8u172-b01 for changeset a8bd8d03df39 ! .hgtags Changeset: 5d207173975c Author: asaha Date: 2018-01-08 22:36 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/jaxp/rev/5d207173975c Added tag jdk8u172-b02 for changeset 78e071b5c067 ! .hgtags Changeset: f6f4bebcbf4b Author: asaha Date: 2018-01-16 22:57 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/jaxp/rev/f6f4bebcbf4b Merge ! .hgtags - src/com/sun/org/apache/xalan/internal/utils/FactoryImpl.java - src/com/sun/org/apache/xalan/internal/utils/FeatureManager.java - src/com/sun/org/apache/xml/internal/serializer/utils/AttList.java - src/com/sun/org/apache/xml/internal/serializer/utils/DOM2Helper.java - src/com/sun/org/apache/xml/internal/utils/DOMHelper.java - src/com/sun/org/apache/xml/internal/utils/DOMOrder.java Changeset: 8781408eccfb Author: asaha Date: 2018-01-18 06:01 +0000 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/jaxp/rev/8781408eccfb Added tag jdk8u172-b03 for changeset f6f4bebcbf4b ! .hgtags Changeset: 63f2ebb7367a Author: asaha Date: 2018-01-22 15:13 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/jaxp/rev/63f2ebb7367a Merge ! .hgtags Changeset: c8f5d1c3cb6e Author: asaha Date: 2018-01-25 08:20 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/jaxp/rev/c8f5d1c3cb6e Merge ! .hgtags Changeset: d7f51a2cb3fa Author: asaha Date: 2018-01-30 11:32 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/jaxp/rev/d7f51a2cb3fa Merge ! .hgtags Changeset: 834d32115c1a Author: asaha Date: 2018-01-30 11:39 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/jaxp/rev/834d32115c1a Added tag jdk8u172-b04 for changeset d7f51a2cb3fa ! .hgtags Changeset: 264518389b7f Author: asaha Date: 2018-02-06 11:04 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/jaxp/rev/264518389b7f Merge ! .hgtags Changeset: bf8b361d21e8 Author: asaha Date: 2018-02-06 11:13 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/jaxp/rev/bf8b361d21e8 Added tag jdk8u172-b05 for changeset 264518389b7f ! .hgtags Changeset: cb4e6aecc7ae Author: asaha Date: 2018-02-13 12:25 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/jaxp/rev/cb4e6aecc7ae Merge ! .hgtags Changeset: c4f36aa429d5 Author: asaha Date: 2018-02-13 12:57 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/jaxp/rev/c4f36aa429d5 Added tag jdk8u172-b06 for changeset cb4e6aecc7ae ! .hgtags Changeset: c8cb876703b1 Author: asaha Date: 2018-02-20 13:06 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/jaxp/rev/c8cb876703b1 Merge ! .hgtags Changeset: d642a841b4e2 Author: asaha Date: 2018-02-20 13:11 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/jaxp/rev/d642a841b4e2 Added tag jdk8u172-b07 for changeset c8cb876703b1 ! .hgtags Changeset: b79b95aa4759 Author: asaha Date: 2018-02-27 11:38 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/jaxp/rev/b79b95aa4759 Merge ! .hgtags Changeset: 9abf255d17ed Author: asaha Date: 2018-03-06 20:30 +0000 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/jaxp/rev/9abf255d17ed Added tag jdk8u172-b08 for changeset b79b95aa4759 ! .hgtags Changeset: 81808062121e Author: asaha Date: 2018-03-06 20:33 +0000 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/jaxp/rev/81808062121e Merge ! .hgtags Changeset: 8e5129aef8e7 Author: asaha Date: 2018-03-06 20:36 +0000 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/jaxp/rev/8e5129aef8e7 Added tag jdk8u172-b09 for changeset 81808062121e ! .hgtags Changeset: ed6b3d50e812 Author: asaha Date: 2018-03-19 12:03 -0700 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/jaxp/rev/ed6b3d50e812 Merge ! .hgtags Changeset: 9ddffc6e2f98 Author: asaha Date: 2018-03-19 12:13 -0700 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/jaxp/rev/9ddffc6e2f98 Added tag jdk8u172-b10 for changeset ed6b3d50e812 ! .hgtags Changeset: 228ec0c489c0 Author: asaha Date: 2018-03-28 08:18 -0700 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/jaxp/rev/228ec0c489c0 Added tag jdk8u171-b11 for changeset 6e9148ef1b3a ! .hgtags Changeset: 257c09605def Author: asaha Date: 2018-03-28 08:38 -0700 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/jaxp/rev/257c09605def Merge ! .hgtags Changeset: 576baf8ba35f Author: andrew Date: 2018-05-09 04:51 +0100 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/jaxp/rev/576baf8ba35f Merge jdk8u172-b11 ! .hgtags Changeset: ab8087f496fe Author: andrew Date: 2018-05-09 04:52 +0100 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/jaxp/rev/ab8087f496fe Added tag aarch64-jdk8u172-b11 for changeset 576baf8ba35f ! .hgtags Changeset: d9feb209c2c2 Author: shade Date: 2018-05-14 11:17 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/jaxp/rev/d9feb209c2c2 Merge ! .hgtags From ashipile at redhat.com Mon May 14 09:41:27 2018 From: ashipile at redhat.com (ashipile at redhat.com) Date: Mon, 14 May 2018 09:41:27 +0000 Subject: hg: shenandoah/jdk8u/jdk: 156 new changesets Message-ID: <201805140941.w4E9faeZ014379@aojmv0008.oracle.com> Changeset: e52a344a24bb Author: andrew Date: 2018-04-30 19:00 +0100 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/jdk/rev/e52a344a24bb Added tag aarch64-jdk8u171-b11 for changeset 9239d945aa4f ! .hgtags Changeset: d201d8b87f48 Author: asaha Date: 2017-12-19 15:37 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/jdk/rev/d201d8b87f48 Added tag jdk8u162-b12 for changeset ddae5cb11d6c ! .hgtags Changeset: 982ef1e1c606 Author: serb Date: 2017-10-03 14:25 -0700 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/jdk/rev/982ef1e1c606 8185325: Improve GTK initialization Reviewed-by: azvegint, rhalade, mschoene ! src/solaris/native/sun/awt/gtk2_interface.c Changeset: b2707a1608dd Author: asaha Date: 2017-10-03 23:30 -0700 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/jdk/rev/b2707a1608dd Added tag jdk8u171-b00 for changeset b6195815c4bb ! .hgtags Changeset: 8fd2595e322b Author: asaha Date: 2017-10-03 23:33 -0700 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/jdk/rev/8fd2595e322b Merge Changeset: d31dc2ee328d Author: shshahma Date: 2017-10-04 05:39 -0700 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/jdk/rev/d31dc2ee328d 8180433: Cleaner CLR invocation handling Summary: object allocated with operator new[] should be deallocated with operator delete[] Reviewed-by: kevinw ! src/share/sample/vm/jvm-clr/invoker.cpp Changeset: 2a5e831288bc Author: uvangapally Date: 2017-09-25 19:44 +0530 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/jdk/rev/2a5e831288bc 8186998: Improve JMX supportive features Summary: Improve JMX supportive features Reviewed-by: mchung, dfuchs, rriggs, hb, skoivu, rhalade ! src/share/classes/sun/management/jmxremote/SingleEntryRegistry.java ! src/share/classes/sun/rmi/registry/RegistryImpl.java ! test/javax/management/remote/nonLocalAccess/NonLocalJMXRemoteTest.java Changeset: 5fdea2c8db37 Author: rpatil Date: 2017-10-11 15:47 +0530 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/jdk/rev/5fdea2c8db37 8169080: Improve documentation examples for crypto applications Reviewed-by: wetmore Contributed-by: prasadarao.koppula at oracle.com ! src/share/classes/java/security/MessageDigest.java ! src/share/classes/java/security/Signature.java ! src/share/classes/java/security/SignedObject.java ! src/share/classes/javax/crypto/Cipher.java ! src/share/classes/javax/crypto/CipherSpi.java ! src/share/classes/javax/crypto/Mac.java ! src/share/classes/javax/crypto/SealedObject.java Changeset: aaf4f4cec96d Author: rpatil Date: 2017-10-17 10:45 +0530 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/jdk/rev/aaf4f4cec96d 8185909: Disable JARs signed with DSA keys less than 1024 bits Reviewed-by: mullan, coffeys Contributed-by: prasadarao.koppula at oracle.com ! src/share/lib/security/java.security-aix ! src/share/lib/security/java.security-linux ! src/share/lib/security/java.security-macosx ! src/share/lib/security/java.security-solaris ! src/share/lib/security/java.security-windows Changeset: 80adfcb3dd94 Author: aefimov Date: 2017-10-19 17:04 +0100 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/jdk/rev/80adfcb3dd94 8186080: Transform XML interfaces 8188880: A JAXB JCK test failure found after 8186080 Reviewed-by: joehw, lancea, dfuchs ! src/share/lib/security/java.security-aix ! src/share/lib/security/java.security-linux ! src/share/lib/security/java.security-macosx ! src/share/lib/security/java.security-solaris ! src/share/lib/security/java.security-windows ! test/java/lang/SecurityManager/CheckPackageAccess.java Changeset: 1735573068ec Author: coffeys Date: 2017-10-23 02:28 -0700 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/jdk/rev/1735573068ec 8072452: Support DHE sizes up to 8192-bits and DSA sizes up to 3072-bits 8154344: sun/security/pkcs11/KeyAgreement/SupportedDHKeys.java fails on solaris Reviewed-by: xuelei ! src/share/classes/com/sun/crypto/provider/DHKeyPairGenerator.java ! src/share/classes/com/sun/crypto/provider/DHParameterGenerator.java ! src/share/classes/sun/security/pkcs11/P11KeyPairGenerator.java ! src/share/classes/sun/security/provider/DSAKeyPairGenerator.java ! src/share/classes/sun/security/provider/DSAParameterGenerator.java ! src/share/classes/sun/security/provider/ParameterCache.java ! src/share/classes/sun/security/ssl/DHCrypt.java ! src/share/classes/sun/security/ssl/ServerHandshaker.java + test/com/sun/crypto/provider/KeyAgreement/SupportedDHKeys.java + test/com/sun/crypto/provider/KeyAgreement/SupportedDHParamGens.java + test/com/sun/crypto/provider/KeyAgreement/UnsupportedDHKeys.java + test/sun/security/pkcs11/KeyAgreement/SupportedDHKeys.java + test/sun/security/pkcs11/KeyAgreement/UnsupportedDHKeys.java ! test/sun/security/pkcs11/KeyPairGenerator/TestDH2048.java + test/sun/security/provider/DSA/SupportedDSAParamGen.java ! test/sun/security/provider/DSA/TestKeyPairGenerator.java Changeset: c6d2df0bb083 Author: coffeys Date: 2017-10-24 03:44 -0700 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/jdk/rev/c6d2df0bb083 8178458: Better use of certificates in LDAP Reviewed-by: weijun, coffeys Contributed-by: prasadarao.koppula at oracle.com ! src/share/classes/sun/security/provider/certpath/ldap/LDAPCertStore.java ! test/lib/testlibrary/jdk/testlibrary/OutputAnalyzer.java Changeset: 9454b07320df Author: robm Date: 2017-10-27 20:38 +0100 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/jdk/rev/9454b07320df 8180881: Better packaging of deserialization Reviewed-by: chegar, acorn ! make/mapfiles/libjava/mapfile-vers ! src/share/classes/java/io/ObjectInputStream.java ! src/share/classes/sun/misc/Launcher.java ! src/share/classes/sun/misc/VM.java ! src/share/classes/sun/rmi/server/MarshalInputStream.java ! src/share/native/sun/misc/VM.c Changeset: 76c8aab483ff Author: igerasim Date: 2017-10-16 09:45 -0700 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/jdk/rev/76c8aab483ff 8163237: Restrict the use of EXPORT cipher suites Reviewed-by: mullan, igerasim, rhalade, jnimeh ! src/share/lib/security/java.security-aix ! src/share/lib/security/java.security-linux ! src/share/lib/security/java.security-macosx ! src/share/lib/security/java.security-solaris ! src/share/lib/security/java.security-windows + test/javax/net/ssl/templates/SSLSocketTemplate.java ! test/sun/security/ssl/com/sun/net/ssl/internal/ssl/ClientHandshaker/RSAExport.java Changeset: 837faf66d724 Author: asaha Date: 2017-11-02 11:35 -0700 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/jdk/rev/837faf66d724 Merge ! .hgtags ! src/share/lib/security/java.security-aix ! src/share/lib/security/java.security-linux ! src/share/lib/security/java.security-macosx ! src/share/lib/security/java.security-solaris ! src/share/lib/security/java.security-windows ! test/java/lang/SecurityManager/CheckPackageAccess.java - test/java/util/logging/AnonLoggerWeakRefLeak.java - test/java/util/logging/AnonLoggerWeakRefLeak.sh - test/java/util/logging/LoggerWeakRefLeak.java - test/java/util/logging/LoggerWeakRefLeak.sh - test/sun/tools/common/CommonTests.sh Changeset: 7a83c4eb8979 Author: billyh Date: 2017-11-06 16:22 -0500 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/jdk/rev/7a83c4eb8979 8186699: Clean up extra Derby files Reviewed-by: asemenyuk ! make/Images.gmk Changeset: eabb041d9bf9 Author: coffeys Date: 2017-11-07 17:30 +0000 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/jdk/rev/eabb041d9bf9 8190449: sun/security/pkcs11/KeyPairGenerator/TestDH2048.java fails on Solaris x64 5.10 Reviewed-by: igerasim ! test/sun/security/pkcs11/KeyPairGenerator/TestDH2048.java Changeset: 3f6d71722f75 Author: igerasim Date: 2017-11-04 17:23 -0700 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/jdk/rev/3f6d71722f75 8185292: Stricter key generation Reviewed-by: mullan ! src/share/classes/com/sun/crypto/provider/DHKeyAgreement.java ! src/share/classes/sun/security/pkcs11/P11KeyAgreement.java ! test/com/sun/crypto/provider/KeyAgreement/DHGenSecretKey.java ! test/com/sun/crypto/provider/KeyAgreement/DHKeyAgreement2.java ! test/com/sun/crypto/provider/KeyAgreement/SameDHKeyStressTest.java ! test/sun/security/pkcs11/KeyAgreement/TestDH.java Changeset: 56b2ca46c63e Author: serb Date: 2017-11-07 09:22 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/jdk/rev/56b2ca46c63e 8190289: More refactoring for client deserialization cases Reviewed-by: prr, azvegint, rhalade, skoivu ! src/share/classes/java/awt/geom/Path2D.java ! src/share/classes/javax/swing/text/html/CSS.java Changeset: 7d7600d7a62d Author: igerasim Date: 2017-11-13 23:21 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/jdk/rev/7d7600d7a62d 8186600: Improve property negotiations Reviewed-by: valeriep, ahgross, mullan ! src/share/classes/sun/net/www/protocol/http/spnego/NegotiateCallbackHandler.java ! src/share/classes/sun/security/jgss/GSSUtil.java ! src/share/classes/sun/security/jgss/LoginConfigImpl.java Changeset: 555b6e29660e Author: aefimov Date: 2017-11-14 13:53 +0000 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/jdk/rev/555b6e29660e 8186606: Improve LDAP lookup robustness 8190789: sun/security/provider/certpath/LDAPCertStore/TestURICertStoreParameters.java fails after JDK-8186606 Reviewed-by: weijun ! src/share/classes/sun/security/provider/certpath/ldap/LDAPCertStore.java Changeset: bc20f12e1746 Author: igerasim Date: 2017-11-14 18:27 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/jdk/rev/bc20f12e1746 8158116: com/sun/crypto/provider/KeyAgreement/SupportedDHParamGens.java failed with timeout Reviewed-by: xuelei ! test/com/sun/crypto/provider/KeyAgreement/SupportedDHParamGens.java Changeset: 70c15f2f02c0 Author: serb Date: 2017-11-15 07:07 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/jdk/rev/70c15f2f02c0 8189989: Improve container portability Reviewed-by: prr, azvegint, rhalade, skoivu ! src/share/classes/java/awt/Container.java Changeset: dcbea2002a0b Author: aefimov Date: 2017-11-15 11:00 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/jdk/rev/dcbea2002a0b 8191340: 8ux linux builds failing - com.sun.org.apache.xalan.internal.xsltc.trax.TransformerFactoryImpl (unknown type) Reviewed-by: coffeys ! make/profile-rtjar-includes.txt Changeset: 79fabbe71dfb Author: coffeys Date: 2017-11-17 10:10 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/jdk/rev/79fabbe71dfb 8190497: DHParameterSpec.getL() returns zero after JDK-8072452 Reviewed-by: xuelei ! src/share/classes/com/sun/crypto/provider/DHParameterGenerator.java Changeset: 24dff62a698a Author: robm Date: 2017-11-21 20:46 +0000 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/jdk/rev/24dff62a698a 8191137: keytool fails to format resource strings for keys for some languages after JDK-8171319 Reviewed-by: weijun, mullan ! src/share/classes/sun/security/tools/keytool/Resources.java Changeset: 27e149339249 Author: rpatil Date: 2017-11-24 11:28 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/jdk/rev/27e149339249 8190266: closed/java/awt/ComponentOrientation/WindowTest.java throws java.util.MissingResourceException. Reviewed-by: naoto, serb ! src/share/classes/java/awt/Toolkit.java ! src/share/classes/java/awt/Window.java Changeset: a64f0753dea1 Author: igerasim Date: 2017-11-28 14:10 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/jdk/rev/a64f0753dea1 8189284: More refactoring for deserialization cases Reviewed-by: rriggs, igerasim, rhalade, skoivu ! src/share/classes/java/util/concurrent/ArrayBlockingQueue.java Changeset: 102b658fe164 Author: igerasim Date: 2017-11-29 14:53 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/jdk/rev/102b658fe164 8191142: More refactoring for naming deserialization cases Reviewed-by: chegar, rriggs ! src/share/classes/javax/naming/directory/BasicAttributes.java Changeset: c64f2e1e4a04 Author: igerasim Date: 2017-11-29 21:01 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/jdk/rev/c64f2e1e4a04 8150530: Improve javax.crypto.BadPaddingException messages Reviewed-by: xuelei ! src/share/classes/com/sun/crypto/provider/CipherCore.java ! src/share/classes/sun/security/pkcs11/P11RSACipher.java ! src/share/classes/sun/security/rsa/RSAPadding.java ! src/share/classes/sun/security/ssl/CipherBox.java Changeset: 5f6281f3adc6 Author: prr Date: 2017-12-07 09:11 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/jdk/rev/5f6281f3adc6 8183032: Upgrade to LittleCMS 2.9 Reviewed-by: serb, psadhukhan, mschoene, rhalade ! src/share/native/sun/java2d/cmm/lcms/LCMS.c ! src/share/native/sun/java2d/cmm/lcms/cmsalpha.c ! src/share/native/sun/java2d/cmm/lcms/cmscam02.c ! src/share/native/sun/java2d/cmm/lcms/cmscgats.c ! src/share/native/sun/java2d/cmm/lcms/cmscnvrt.c ! src/share/native/sun/java2d/cmm/lcms/cmserr.c ! src/share/native/sun/java2d/cmm/lcms/cmsgamma.c ! src/share/native/sun/java2d/cmm/lcms/cmsgmt.c ! src/share/native/sun/java2d/cmm/lcms/cmshalf.c ! src/share/native/sun/java2d/cmm/lcms/cmsintrp.c ! src/share/native/sun/java2d/cmm/lcms/cmsio0.c ! src/share/native/sun/java2d/cmm/lcms/cmsio1.c ! src/share/native/sun/java2d/cmm/lcms/cmslut.c ! src/share/native/sun/java2d/cmm/lcms/cmsmd5.c ! src/share/native/sun/java2d/cmm/lcms/cmsmtrx.c ! src/share/native/sun/java2d/cmm/lcms/cmsnamed.c ! src/share/native/sun/java2d/cmm/lcms/cmsopt.c ! src/share/native/sun/java2d/cmm/lcms/cmspack.c ! src/share/native/sun/java2d/cmm/lcms/cmspcs.c ! src/share/native/sun/java2d/cmm/lcms/cmsplugin.c ! src/share/native/sun/java2d/cmm/lcms/cmsps2.c ! src/share/native/sun/java2d/cmm/lcms/cmssamp.c ! src/share/native/sun/java2d/cmm/lcms/cmssm.c ! src/share/native/sun/java2d/cmm/lcms/cmstypes.c ! src/share/native/sun/java2d/cmm/lcms/cmsvirt.c ! src/share/native/sun/java2d/cmm/lcms/cmswtpnt.c ! src/share/native/sun/java2d/cmm/lcms/cmsxform.c ! src/share/native/sun/java2d/cmm/lcms/lcms2.h ! src/share/native/sun/java2d/cmm/lcms/lcms2_internal.h ! src/share/native/sun/java2d/cmm/lcms/lcms2_plugin.h Changeset: 14ec161c682b Author: serb Date: 2017-12-10 19:01 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/jdk/rev/14ec161c682b 8192030: Better MTSchema support Reviewed-by: skoivu, rhalade, prr, aghaisas ! src/windows/classes/sun/awt/windows/ThemeReader.java ! src/windows/native/sun/windows/ThemeReader.cpp Changeset: a07becece36e Author: igerasim Date: 2017-12-12 23:34 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/jdk/rev/a07becece36e 8192789: Avoid using AtomicReference in sun.security.provider.PolicyFile Reviewed-by: mullan, ahgross ! src/share/classes/sun/security/provider/PolicyFile.java Changeset: cdc2b9bb3997 Author: igerasim Date: 2017-12-13 11:59 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/jdk/rev/cdc2b9bb3997 8187496: Possible memory leak in java.apple.security.KeychainStore.addItemToKeychain Reviewed-by: weijun, mullan, ahgross ! src/macosx/native/apple/security/KeystoreImpl.m Changeset: 438a4b73d0aa Author: pkoppula Date: 2017-12-15 11:45 +0000 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/jdk/rev/438a4b73d0aa 8148421: Transport Layer Security (TLS) Session Hash and Extended Master Secret Extension Reviewed-by: wetmore, xuelei, rhalade, coffeys, bgopularam Contributed-by: prasadarao.koppula at oracle.com ! src/share/classes/com/sun/crypto/provider/SunJCE.java ! src/share/classes/com/sun/crypto/provider/TlsMasterSecretGenerator.java ! src/share/classes/com/sun/crypto/provider/TlsPrfGenerator.java ! src/share/classes/sun/security/internal/spec/TlsMasterSecretParameterSpec.java ! src/share/classes/sun/security/ssl/ClientHandshaker.java + src/share/classes/sun/security/ssl/ExtendedMasterSecretExtension.java ! src/share/classes/sun/security/ssl/ExtensionType.java ! src/share/classes/sun/security/ssl/HandshakeMessage.java ! src/share/classes/sun/security/ssl/Handshaker.java ! src/share/classes/sun/security/ssl/HelloExtensions.java ! src/share/classes/sun/security/ssl/SSLSessionImpl.java ! src/share/classes/sun/security/ssl/ServerHandshaker.java ! test/sun/security/ssl/com/sun/net/ssl/internal/ssl/DHKeyExchange/DHEKeySizing.java Changeset: 48b75e9729ba Author: pkoppula Date: 2017-12-18 20:47 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/jdk/rev/48b75e9729ba 8193683: Increase the number of clones in the CloneableDigest Reviewed-by: wetmore, xuelei, coffeys Contributed-by: prasadarao.koppula at oracle.com ! src/share/classes/sun/security/ssl/HandshakeHash.java Changeset: ce62cccc3b7f Author: rpatil Date: 2017-08-23 12:09 +0300 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/jdk/rev/ce62cccc3b7f 8185346: Relax RMI Registry Serial Filter to allow arrays of any type Summary: Registry filter should allow arrays of any type Reviewed-by: rriggs, coffeys ! src/share/classes/sun/misc/ObjectInputFilter.java ! src/share/classes/sun/rmi/registry/RegistryImpl.java ! src/share/lib/security/java.security-aix ! src/share/lib/security/java.security-linux ! src/share/lib/security/java.security-macosx ! src/share/lib/security/java.security-solaris ! src/share/lib/security/java.security-windows ! test/java/rmi/registry/serialFilter/RegistryFilterTest.java Changeset: 9dce8b2a03e0 Author: robm Date: 2017-09-27 14:00 +0100 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/jdk/rev/9dce8b2a03e0 8184328: JDK 8u131 socketRead0 hang at SSL read Reviewed-by: xuelei, chegar, coffeys ! src/share/classes/sun/security/ssl/SSLSocketImpl.java + test/sun/security/ssl/SSLSocketImpl/SSLSocketCloseHang.java Changeset: e2ed8ee63a9d Author: asaha Date: 2017-10-06 08:34 -0700 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/jdk/rev/e2ed8ee63a9d Added tag jdk8u152-b31 for changeset 9dce8b2a03e0 ! .hgtags Changeset: 88c3b237108c Author: psadhukhan Date: 2017-06-30 11:03 +0530 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/jdk/rev/88c3b237108c 8182402: Tooltip for Desktop button is in English when non-English locale is set Reviewed-by: azvegint ! src/share/classes/javax/swing/plaf/metal/MetalFileChooserUI.java ! src/share/classes/sun/swing/plaf/synth/SynthFileChooserUIImpl.java Changeset: 6c3a800a5f25 Author: sspitsyn Date: 2014-11-11 21:46 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/jdk/rev/6c3a800a5f25 6988950: JDWP exit error JVMTI_ERROR_WRONG_PHASE(112) Summary: Synchronize the jdwp VirtualMachine command functions with the VM_DEATH event Reviewed-by: dcubed, dsamersoff, dholmes ! src/share/back/debugLoop.c Changeset: 5f0349b6341c Author: sspitsyn Date: 2017-03-02 16:03 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/jdk/rev/5f0349b6341c 8134103: JVMTI_ERROR_WRONG_PHASE(112): on checking for an interface Summary: Add guards to the jdwp agent shutdown Reviewed-by: dholmes, dcubed, dsamersoff ! src/share/back/debugLoop.c ! src/share/back/eventHelper.c Changeset: 9326963acdd8 Author: asaha Date: 2017-10-31 14:56 -0700 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/jdk/rev/9326963acdd8 Added tag jdk8u152-b32 for changeset 5f0349b6341c ! .hgtags Changeset: 4c18aa8f0bc0 Author: rpatil Date: 2017-11-14 12:28 +0530 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/jdk/rev/4c18aa8f0bc0 8190258: (tz) Support tzdata2017c 8190259: test tck.java.time.zone.TCKZoneRules is broken by tzdata2017c Reviewed-by: naoto, martin ! make/data/tzdata/VERSION ! make/data/tzdata/africa ! make/data/tzdata/antarctica ! make/data/tzdata/asia ! make/data/tzdata/australasia ! make/data/tzdata/backward ! make/data/tzdata/europe ! make/data/tzdata/leapseconds ! make/data/tzdata/northamerica ! make/data/tzdata/southamerica ! make/data/tzdata/zone.tab ! src/share/classes/java/time/format/ZoneName.java ! src/share/classes/sun/util/resources/TimeZoneNames.java ! src/share/classes/sun/util/resources/de/TimeZoneNames_de.java ! src/share/classes/sun/util/resources/es/TimeZoneNames_es.java ! src/share/classes/sun/util/resources/fr/TimeZoneNames_fr.java ! src/share/classes/sun/util/resources/it/TimeZoneNames_it.java ! src/share/classes/sun/util/resources/ja/TimeZoneNames_ja.java ! src/share/classes/sun/util/resources/ko/TimeZoneNames_ko.java ! src/share/classes/sun/util/resources/pt/TimeZoneNames_pt_BR.java ! src/share/classes/sun/util/resources/sv/TimeZoneNames_sv.java ! src/share/classes/sun/util/resources/zh/TimeZoneNames_zh_CN.java ! src/share/classes/sun/util/resources/zh/TimeZoneNames_zh_TW.java ! test/java/time/tck/java/time/zone/TCKZoneRules.java ! test/java/time/test/java/time/format/ZoneName.java ! test/sun/util/calendar/zi/tzdata/VERSION ! test/sun/util/calendar/zi/tzdata/africa ! test/sun/util/calendar/zi/tzdata/antarctica ! test/sun/util/calendar/zi/tzdata/asia ! test/sun/util/calendar/zi/tzdata/australasia ! test/sun/util/calendar/zi/tzdata/backward ! test/sun/util/calendar/zi/tzdata/europe ! test/sun/util/calendar/zi/tzdata/leapseconds ! test/sun/util/calendar/zi/tzdata/northamerica ! test/sun/util/calendar/zi/tzdata/southamerica ! test/sun/util/calendar/zi/tzdata/zone.tab Changeset: 6200eba8d914 Author: asaha Date: 2017-11-14 13:12 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/jdk/rev/6200eba8d914 Added tag jdk8u152-b33 for changeset 4c18aa8f0bc0 ! .hgtags Changeset: 0bec6e881967 Author: aefimov Date: 2017-12-02 14:28 +0000 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/jdk/rev/0bec6e881967 8186441: Change of behavior in the getMessage () method of the SOAPMessageContextImpl class Reviewed-by: lancea ! test/javax/xml/ws/8159058/SaajEmptyNamespaceTest.java Changeset: dcd2081a3118 Author: aivanov Date: 2017-12-06 13:04 +0000 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/jdk/rev/dcd2081a3118 8179665: [Windows] java.awt.IllegalComponentStateException: component must be showing on the screen to determine its location Reviewed-by: prr, serb, ssadetsky ! src/windows/classes/sun/awt/windows/WInputMethod.java ! src/windows/native/sun/windows/awt_Component.cpp + test/javax/swing/JFrame/AlwaysOnTop/AlwaysOnTopImeTest.java Changeset: 9828d410e76e Author: asaha Date: 2017-12-12 09:38 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/jdk/rev/9828d410e76e Added tag jdk8u152-b34 for changeset dcd2081a3118 ! .hgtags Changeset: dbfae30a1a73 Author: asaha Date: 2017-12-14 13:39 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/jdk/rev/dbfae30a1a73 Merge ! .hgtags ! src/share/lib/security/java.security-aix ! src/share/lib/security/java.security-linux ! src/share/lib/security/java.security-macosx ! src/share/lib/security/java.security-solaris ! src/share/lib/security/java.security-windows ! src/windows/native/sun/windows/awt_Component.cpp Changeset: 41cbcaea10cb Author: asaha Date: 2017-12-15 11:42 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/jdk/rev/41cbcaea10cb Added tag jdk8u152-b35 for changeset 9828d410e76e ! .hgtags Changeset: 6a3c14b6dac4 Author: asaha Date: 2017-12-15 15:50 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/jdk/rev/6a3c14b6dac4 Merge ! .hgtags Changeset: 6fd47b8d1cff Author: asaha Date: 2017-12-15 16:00 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/jdk/rev/6fd47b8d1cff Merge ! .hgtags Changeset: 78f0a4e82259 Author: asaha Date: 2017-12-21 09:39 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/jdk/rev/78f0a4e82259 Merge ! .hgtags Changeset: f1792a59f1fa Author: asaha Date: 2017-12-21 13:42 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/jdk/rev/f1792a59f1fa Merge ! .hgtags ! src/share/lib/security/java.security-aix ! src/share/lib/security/java.security-linux ! src/share/lib/security/java.security-macosx ! src/share/lib/security/java.security-solaris ! src/share/lib/security/java.security-windows Changeset: 3867e72c4ad2 Author: asaha Date: 2018-01-02 16:15 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/jdk/rev/3867e72c4ad2 Added tag jdk8u171-b01 for changeset f1792a59f1fa ! .hgtags Changeset: 8e3da85af947 Author: igerasim Date: 2018-01-02 21:04 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/jdk/rev/8e3da85af947 8193414: Improvements in MethodType lookups Reviewed-by: ahgross, jrose ! src/share/classes/java/lang/invoke/MethodType.java Changeset: 88ad386e9b22 Author: serb Date: 2018-01-03 19:24 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/jdk/rev/88ad386e9b22 8191696: Better mouse positioning Reviewed-by: skoivu, rhalade, prr, aghaisas ! src/solaris/classes/sun/awt/X11/XMouseInfoPeer.java ! src/windows/native/sun/windows/MouseInfo.cpp Changeset: 2e4fd537cf2a Author: igerasim Date: 2018-01-05 20:11 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/jdk/rev/2e4fd537cf2a 8189977: Improve permission portability Reviewed-by: rriggs ! src/share/classes/java/io/FilePermission.java ! src/share/classes/java/util/Hashtable.java ! src/share/classes/java/util/Vector.java Changeset: b53efad7a349 Author: coffeys Date: 2017-11-27 16:53 +0000 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/jdk/rev/b53efad7a349 8189789: tomcat gzip-compressed response bodies appear to be broken in update 151 Reviewed-by: sherman, phh ! src/share/native/java/util/zip/Deflater.c ! src/share/native/java/util/zip/zlib/deflate.c ! src/share/native/java/util/zip/zlib/patches/ChangeLog_java ! test/java/util/zip/InflateIn_DeflateOut.java Changeset: 04e486c7c90a Author: coffeys Date: 2017-11-27 16:53 +0000 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/jdk/rev/04e486c7c90a 8189789: tomcat gzip-compressed response bodies appear to be broken in update 151 Reviewed-by: sherman, phh ! src/share/native/java/util/zip/Deflater.c ! src/share/native/java/util/zip/zlib/deflate.c ! src/share/native/java/util/zip/zlib/patches/ChangeLog_java ! test/java/util/zip/InflateIn_DeflateOut.java Changeset: 8e40acfcc41a Author: snikandrova Date: 2016-07-18 14:39 +0300 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/jdk/rev/8e40acfcc41a 8054213: Class name repeated in output of Type.toString() Reviewed-by: darcy ! src/share/classes/sun/reflect/generics/reflectiveObjects/ParameterizedTypeImpl.java + test/java/lang/reflect/Generics/TestGenericReturnTypeToString.java Changeset: c00bdbbd9a77 Author: asaha Date: 2018-01-04 15:45 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/jdk/rev/c00bdbbd9a77 Added tag jdk8u162-b31 for changeset 8e40acfcc41a ! .hgtags Changeset: d0ebeee68e8e Author: asaha Date: 2018-01-08 09:07 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/jdk/rev/d0ebeee68e8e Merge ! .hgtags Changeset: 707ea8cc6462 Author: mullan Date: 2017-12-08 09:37 -0500 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/jdk/rev/707ea8cc6462 8191358: Restore TSA certificate expiration check Reviewed-by: coffeys, rhalade ! src/share/classes/sun/security/provider/certpath/PKIXCertPathValidator.java Changeset: cac020298633 Author: coffeys Date: 2018-01-09 09:31 +0000 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/jdk/rev/cac020298633 Merge Changeset: e7e27f446209 Author: asaha Date: 2018-01-09 12:37 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/jdk/rev/e7e27f446209 Added tag jdk8u171-b02 for changeset cac020298633 ! .hgtags Changeset: 4f6940b029e8 Author: coffeys Date: 2018-01-15 13:17 +0000 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/jdk/rev/4f6940b029e8 8189969: Manifest better manifest entries Reviewed-by: weijun, igerasim ! src/share/classes/sun/security/util/ManifestDigester.java ! test/javax/security/auth/Subject/doAs/NestedActions.java ! test/lib/testlibrary/jdk/testlibrary/JarUtils.java ! test/lib/testlibrary/jdk/testlibrary/OutputAnalyzer.java ! test/lib/testlibrary/jdk/testlibrary/Utils.java Changeset: 5528d43f2c8b Author: apetcher Date: 2018-01-16 13:27 +0530 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/jdk/rev/5528d43f2c8b 8182362: Update CipherOutputStream Usage Summary: Clarify spec of CipherOutputStream in Javadoc comments Reviewed-by: ascarpino ! src/share/classes/javax/crypto/CipherOutputStream.java Changeset: e35b979792eb Author: robm Date: 2018-01-12 22:16 +0000 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/jdk/rev/e35b979792eb 8186032: Disable XML Signatures signed with EC keys less than 224 bits Reviewed-by: mullan ! src/share/lib/security/java.security-aix ! src/share/lib/security/java.security-linux ! src/share/lib/security/java.security-macosx ! src/share/lib/security/java.security-solaris ! src/share/lib/security/java.security-windows Changeset: c260afc0c5a1 Author: rpatil Date: 2017-12-20 06:12 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/jdk/rev/c260afc0c5a1 8153955: increase java.util.logging.FileHandler MAX_LOCKS limit Summary: This patch adds a new JDK implementation specific system property "jdk.internal.FileHandlerLogging.maxLocks" to control java.util.logging.FileHandler's MAX_LOCKS limit. Reviewed-by: coffeys, dfuchs ! src/share/classes/java/util/logging/FileHandler.java + test/java/util/logging/FileHandlerMaxLocksTest.java Changeset: ac700f67341a Author: asaha Date: 2018-01-23 13:10 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/jdk/rev/ac700f67341a Added tag jdk8u171-b03 for changeset c260afc0c5a1 ! .hgtags Changeset: eb099b867461 Author: asaha Date: 2018-01-30 11:23 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/jdk/rev/eb099b867461 Added tag jdk8u171-b04 for changeset ac700f67341a ! .hgtags Changeset: 0dc33559c6e7 Author: igerasim Date: 2018-01-23 08:17 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/jdk/rev/0dc33559c6e7 8175075: Add 3DES to the default disabled algorithm security property Reviewed-by: xuelei, mullan, rhalade ! src/share/lib/security/java.security-aix ! src/share/lib/security/java.security-linux ! src/share/lib/security/java.security-macosx ! src/share/lib/security/java.security-solaris ! src/share/lib/security/java.security-windows ! test/sun/security/ssl/sun/net/www/protocol/https/NewImpl/ComHostnameVerifier.java ! test/sun/security/ssl/sun/net/www/protocol/https/NewImpl/JavaxHostnameVerifier.java Changeset: 863ef3413aa4 Author: igerasim Date: 2018-01-30 11:43 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/jdk/rev/863ef3413aa4 8193409: Improve AES supporting classes Reviewed-by: valeriep ! src/share/classes/com/sun/crypto/provider/DESedeWrapCipher.java ! src/share/classes/com/sun/crypto/provider/FeedbackCipher.java ! src/share/classes/com/sun/crypto/provider/GaloisCounterMode.java Changeset: e9f80469c8f1 Author: asaha Date: 2018-02-06 10:52 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/jdk/rev/e9f80469c8f1 Added tag jdk8u171-b05 for changeset 863ef3413aa4 ! .hgtags Changeset: 9a92e68141a0 Author: rpatil Date: 2018-02-05 00:15 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/jdk/rev/9a92e68141a0 8195837: (tz) Upgrade time-zone data to tzdata2018c Reviewed-by: coffeys, naoto ! make/data/tzdata/VERSION ! make/data/tzdata/africa ! make/data/tzdata/asia ! make/data/tzdata/australasia ! make/data/tzdata/europe ! make/data/tzdata/leapseconds ! make/data/tzdata/northamerica ! make/data/tzdata/southamerica ! make/data/tzdata/zone.tab ! src/share/classes/java/time/format/ZoneName.java ! src/share/classes/sun/util/resources/TimeZoneNames.java ! src/share/classes/sun/util/resources/de/TimeZoneNames_de.java ! src/share/classes/sun/util/resources/es/TimeZoneNames_es.java ! src/share/classes/sun/util/resources/fr/TimeZoneNames_fr.java ! src/share/classes/sun/util/resources/it/TimeZoneNames_it.java ! src/share/classes/sun/util/resources/ja/TimeZoneNames_ja.java ! src/share/classes/sun/util/resources/ko/TimeZoneNames_ko.java ! src/share/classes/sun/util/resources/pt/TimeZoneNames_pt_BR.java ! src/share/classes/sun/util/resources/sv/TimeZoneNames_sv.java ! src/share/classes/sun/util/resources/zh/TimeZoneNames_zh_CN.java ! src/share/classes/sun/util/resources/zh/TimeZoneNames_zh_TW.java ! test/java/time/test/java/time/format/ZoneName.java ! test/sun/util/calendar/zi/tzdata/VERSION ! test/sun/util/calendar/zi/tzdata/africa ! test/sun/util/calendar/zi/tzdata/asia ! test/sun/util/calendar/zi/tzdata/australasia ! test/sun/util/calendar/zi/tzdata/europe ! test/sun/util/calendar/zi/tzdata/leapseconds ! test/sun/util/calendar/zi/tzdata/northamerica ! test/sun/util/calendar/zi/tzdata/southamerica ! test/sun/util/calendar/zi/tzdata/zone.tab Changeset: 6cbe2e5989a8 Author: igerasim Date: 2018-02-06 09:04 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/jdk/rev/6cbe2e5989a8 8189997: Enhance keystore mechanisms 8194259: keytool error: java.io.IOException: Invalid secret key format Reviewed-by: mullan, valeriep, rriggs, ahgross ! src/share/classes/com/sun/crypto/provider/JceKeyStore.java ! src/share/classes/com/sun/crypto/provider/KeyProtector.java ! src/share/classes/com/sun/crypto/provider/SealedObjectForKeyProtector.java - src/share/classes/com/sun/crypto/provider/ai.java ! src/share/classes/javax/crypto/SealedObject.java + src/share/classes/sun/misc/JavaxCryptoSealedObjectAccess.java ! src/share/classes/sun/misc/SharedSecrets.java ! src/share/lib/security/java.security-aix ! src/share/lib/security/java.security-linux ! src/share/lib/security/java.security-macosx ! src/share/lib/security/java.security-solaris ! src/share/lib/security/java.security-windows Changeset: d7176326208f Author: asaha Date: 2018-02-13 12:15 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/jdk/rev/d7176326208f Added tag jdk8u171-b06 for changeset 6cbe2e5989a8 ! .hgtags Changeset: 333e367780d8 Author: igerasim Date: 2018-02-05 04:31 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/jdk/rev/333e367780d8 8189981: Improve queuing portability Reviewed-by: skoivu, rhalade, chegar, igerasim ! src/share/classes/java/util/concurrent/PriorityBlockingQueue.java Changeset: d1ff85e2e682 Author: rpatil Date: 2018-02-07 00:09 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/jdk/rev/d1ff85e2e682 8192757: Improve stub classes implementation Reviewed-by: rriggs, dfuchs, erikj ! src/share/classes/java/io/ObjectInputStream.java Changeset: bf9634b1089e Author: coffeys Date: 2018-02-13 09:25 +0000 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/jdk/rev/bf9634b1089e 8197030: Perf regression on all platforms with 8u171-b03 - early lambda use Reviewed-by: weijun ! src/share/classes/sun/security/util/ManifestDigester.java Changeset: d70c21e5b413 Author: robm Date: 2018-02-15 19:03 +0000 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/jdk/rev/d70c21e5b413 8193833: Better RMI connection support Reviewed-by: smarks ! src/share/classes/sun/rmi/transport/tcp/TCPTransport.java ! test/sun/rmi/transport/proxy/EagerHttpFallback.java + test/sun/rmi/transport/tcp/DisableRMIOverHttp/DisableRMIOverHTTPTest.java + test/sun/rmi/transport/tcp/DisableRMIOverHttp/TestIface.java + test/sun/rmi/transport/tcp/DisableRMIOverHttp/TestImpl.java ! test/sun/rmi/transport/tcp/blockAccept/BlockAcceptTest.java Changeset: 17905e00cda4 Author: mchinnathamb Date: 2018-02-16 01:37 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/jdk/rev/17905e00cda4 8189985: Improve tabular data portability Reviewed-by: dfuchs, robm ! src/share/classes/javax/management/openmbean/TabularDataSupport.java Changeset: 9cf14f22734a Author: robm Date: 2018-02-20 14:00 +0000 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/jdk/rev/9cf14f22734a 8191909: Nightly failures in nashorn suite Reviewed-by: chegar ! src/share/classes/sun/misc/Launcher.java Changeset: 0bafb5654e0c Author: asaha Date: 2018-02-20 12:56 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/jdk/rev/0bafb5654e0c Added tag jdk8u171-b07 for changeset 9cf14f22734a ! .hgtags Changeset: 9a59252d179a Author: andrew Date: 2018-02-23 05:33 +0000 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/jdk/rev/9a59252d179a 8196952: Bad primeCertainty value setting in DSAParameterGenerator Summary: OpenJDK 8 applied 8072452 after 8181048, reverting parts of the latter Reviewed-by: coffeys ! src/share/classes/sun/security/provider/DSAParameterGenerator.java Changeset: bb844a3ef617 Author: asaha Date: 2018-02-27 11:27 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/jdk/rev/bb844a3ef617 Added tag jdk8u171-b08 for changeset 9a59252d179a ! .hgtags Changeset: db1dd27dd73c Author: rpatil Date: 2018-02-27 19:59 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/jdk/rev/db1dd27dd73c 8198494: 8u171 and 8u172 - Build failure on non-SE Linux Platforms Reviewed-by: dfuchs, rriggs, coffeys, aefimov ! src/share/classes/java/io/ObjectInputStream.java Changeset: d521bc960c95 Author: shshahma Date: 2018-03-02 01:03 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/jdk/rev/d521bc960c95 8198662: Incompatible internal API change in JDK8u161: signature of method exportObject() Reviewed-by: dfuchs, robm, jwilhelm, rriggs ! src/share/classes/com/sun/jmx/remote/internal/RMIExporter.java ! src/share/classes/com/sun/jmx/remote/util/EnvHelp.java ! src/share/classes/java/io/ObjectInputStream.java ! src/share/classes/javax/management/remote/rmi/RMIConnectorServer.java ! src/share/classes/javax/management/remote/rmi/RMIJRMPServerImpl.java ! src/share/classes/sun/management/jmxremote/ConnectorBootstrap.java + src/share/classes/sun/misc/JavaObjectInputStreamAccess.java + src/share/classes/sun/misc/ObjectStreamClassValidator.java ! src/share/classes/sun/misc/SharedSecrets.java ! src/share/classes/sun/rmi/server/MarshalInputStream.java ! src/share/classes/sun/rmi/server/UnicastServerRef.java ! src/share/lib/management/management.properties ! test/javax/management/remote/mandatory/connectorServer/RMIExporterTest.java Changeset: 1631a4543bfc Author: robm Date: 2018-03-04 16:33 +0000 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/jdk/rev/1631a4543bfc 8198963: Fix new rmi property name Reviewed-by: smarks ! src/share/classes/sun/rmi/transport/tcp/TCPTransport.java ! test/sun/rmi/transport/proxy/EagerHttpFallback.java ! test/sun/rmi/transport/tcp/DisableRMIOverHttp/DisableRMIOverHTTPTest.java ! test/sun/rmi/transport/tcp/blockAccept/BlockAcceptTest.java Changeset: 4617f1da7872 Author: shshahma Date: 2018-03-05 10:23 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/jdk/rev/4617f1da7872 8199001: [TESTBUG] RMIConnectionFilterTest.java test fails in compilation Reviewed-by: dfuchs, robm - test/javax/management/remote/mandatory/connection/DefaultAgentFilterTest.java - test/javax/management/remote/mandatory/connection/NewRMIClientFilterTest.java - test/javax/management/remote/mandatory/connection/mgmt1.properties - test/javax/management/remote/mandatory/connection/mgmt2.properties Changeset: 2212d3291215 Author: asaha Date: 2018-03-06 11:44 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/jdk/rev/2212d3291215 Added tag jdk8u171-b09 for changeset 4617f1da7872 ! .hgtags Changeset: 79de1f06f03a Author: asaha Date: 2018-03-19 11:47 -0700 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/jdk/rev/79de1f06f03a Added tag jdk8u171-b10 for changeset 2212d3291215 ! .hgtags Changeset: 5ccb2d5ec23d Author: ljiang Date: 2018-03-27 18:03 -0700 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/jdk/rev/5ccb2d5ec23d 8200314: JDK 8u171 l10n resource file update - msg drop 40 Reviewed-by: coffeys ! src/share/classes/com/sun/rowset/RowSetResourceBundle_sv.properties ! src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic_sv.properties ! src/share/classes/sun/security/tools/keytool/Resources_de.java ! src/share/classes/sun/security/tools/policytool/Resources_sv.java ! src/share/classes/sun/security/util/Resources_sv.java Changeset: 4591d278ff8e Author: andrew Date: 2018-05-02 05:07 +0100 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/jdk/rev/4591d278ff8e Merge jdk8u171-b11 ! .hgtags ! make/data/tzdata/VERSION ! make/data/tzdata/africa ! make/data/tzdata/asia ! make/data/tzdata/australasia ! make/data/tzdata/europe ! make/data/tzdata/leapseconds ! make/data/tzdata/northamerica ! make/data/tzdata/southamerica ! make/data/tzdata/zone.tab ! make/mapfiles/libjava/mapfile-vers ! src/share/classes/com/sun/crypto/provider/CipherCore.java ! src/share/classes/com/sun/crypto/provider/FeedbackCipher.java ! src/share/classes/com/sun/crypto/provider/GaloisCounterMode.java ! src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic_sv.properties ! src/share/classes/java/awt/Container.java ! src/share/classes/java/io/FilePermission.java ! src/share/classes/java/io/ObjectInputStream.java ! src/share/classes/java/lang/invoke/MethodType.java ! src/share/classes/java/security/MessageDigest.java ! src/share/classes/java/security/Signature.java ! src/share/classes/java/security/SignedObject.java ! src/share/classes/javax/crypto/CipherSpi.java ! src/share/classes/javax/management/remote/rmi/RMIConnectorServer.java ! src/share/classes/sun/misc/SharedSecrets.java ! src/share/classes/sun/misc/VM.java ! src/share/classes/sun/reflect/generics/reflectiveObjects/ParameterizedTypeImpl.java ! src/share/classes/sun/rmi/server/MarshalInputStream.java ! src/share/classes/sun/rmi/server/UnicastServerRef.java ! src/share/classes/sun/util/resources/TimeZoneNames.java ! src/share/classes/sun/util/resources/de/TimeZoneNames_de.java ! src/share/classes/sun/util/resources/es/TimeZoneNames_es.java ! src/share/classes/sun/util/resources/fr/TimeZoneNames_fr.java ! src/share/classes/sun/util/resources/it/TimeZoneNames_it.java ! src/share/classes/sun/util/resources/ja/TimeZoneNames_ja.java ! src/share/classes/sun/util/resources/ko/TimeZoneNames_ko.java ! src/share/classes/sun/util/resources/pt/TimeZoneNames_pt_BR.java ! src/share/classes/sun/util/resources/sv/TimeZoneNames_sv.java ! src/share/classes/sun/util/resources/zh/TimeZoneNames_zh_CN.java ! src/share/classes/sun/util/resources/zh/TimeZoneNames_zh_TW.java ! src/share/lib/security/java.security-aix ! src/share/lib/security/java.security-linux ! src/share/lib/security/java.security-macosx ! src/share/lib/security/java.security-solaris ! src/share/lib/security/java.security-windows ! src/share/native/sun/java2d/cmm/lcms/LCMS.c ! src/share/native/sun/java2d/cmm/lcms/cmsio0.c ! src/share/native/sun/java2d/cmm/lcms/cmslut.c ! src/windows/native/sun/windows/ThemeReader.cpp ! src/windows/native/sun/windows/awt_Component.cpp ! test/lib/testlibrary/jdk/testlibrary/OutputAnalyzer.java ! test/sun/util/calendar/zi/tzdata/VERSION ! test/sun/util/calendar/zi/tzdata/africa ! test/sun/util/calendar/zi/tzdata/asia ! test/sun/util/calendar/zi/tzdata/australasia ! test/sun/util/calendar/zi/tzdata/europe ! test/sun/util/calendar/zi/tzdata/leapseconds ! test/sun/util/calendar/zi/tzdata/northamerica ! test/sun/util/calendar/zi/tzdata/southamerica ! test/sun/util/calendar/zi/tzdata/zone.tab Changeset: ad305ca5ab99 Author: andrew Date: 2018-05-02 05:09 +0100 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/jdk/rev/ad305ca5ab99 Added tag aarch64-jdk8u171-b12 for changeset 4591d278ff8e ! .hgtags Changeset: d5a00b1e8f78 Author: asaha Date: 2017-10-24 13:16 -0700 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/jdk/rev/d5a00b1e8f78 Added tag jdk8u172-b00 for changeset 64df143be721 ! .hgtags Changeset: 1627e2e3b993 Author: alitvinov Date: 2017-11-02 15:53 +0000 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/jdk/rev/1627e2e3b993 8166772: Touch keyboard is not shown for text components on a screen touch Reviewed-by: serb, azvegint ! src/share/classes/com/sun/java/swing/plaf/motif/MotifDesktopIconUI.java ! src/share/classes/com/sun/java/swing/plaf/motif/MotifInternalFrameTitlePane.java ! src/share/classes/java/awt/Component.java ! src/share/classes/java/awt/Container.java ! src/share/classes/java/awt/event/MouseEvent.java ! src/share/classes/javax/swing/Autoscroller.java ! src/share/classes/javax/swing/JList.java ! src/share/classes/javax/swing/JTable.java ! src/share/classes/javax/swing/JTree.java ! src/share/classes/javax/swing/MenuSelectionManager.java ! src/share/classes/javax/swing/SwingUtilities.java ! src/share/classes/javax/swing/plaf/basic/BasicComboPopup.java ! src/share/classes/javax/swing/table/JTableHeader.java ! src/share/classes/sun/awt/AWTAccessor.java ! src/share/classes/sun/awt/SunToolkit.java ! src/share/classes/sun/swing/FilePane.java ! src/windows/classes/sun/awt/windows/WToolkit.java ! src/windows/native/sun/windows/awt.h ! src/windows/native/sun/windows/awt_Component.cpp ! src/windows/native/sun/windows/awt_Component.h ! src/windows/native/sun/windows/awt_MouseEvent.cpp ! src/windows/native/sun/windows/awt_MouseEvent.h ! src/windows/native/sun/windows/awt_Toolkit.cpp ! src/windows/native/sun/windows/awt_Toolkit.h Changeset: 56d8100d6176 Author: robm Date: 2017-11-06 05:44 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/jdk/rev/56d8100d6176 Merge Changeset: def45d5b3010 Author: prr Date: 2017-11-06 15:12 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/jdk/rev/def45d5b3010 8190280: [macos] Font2DTest demo started failing for Arabic range from JDK 8 u162 b01 on Mac Reviewed-by: serb, pnarayanan ! src/share/classes/sun/font/CompositeStrike.java ! src/share/native/sun/font/FontInstanceAdapter.cpp + test/java/awt/font/TextLayout/NegativeGlyphIDException.java Changeset: 4ba184f0b4f6 Author: dsamersoff Date: 2017-11-09 04:17 -0500 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/jdk/rev/4ba184f0b4f6 8162530: src/jdk.management/share/native/libmanagement_ext/GcInfoBuilder.c doesn't handle JNI exceptions properly Summary: Exceptions are checked after calling NewStringUTF Reviewed-by: dholmes, sla Contributed-by: amit.sapre at oracle.com ! src/share/native/sun/management/GcInfoBuilder.c Changeset: 98b436f017c0 Author: shshahma Date: 2017-11-09 06:31 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/jdk/rev/98b436f017c0 8177721: Improve diagnostics in sun.management.Agent#startAgent() Reviewed-by: dfuchs, dholmes ! src/share/classes/sun/management/Agent.java Changeset: 5da7ee68eb02 Author: weijun Date: 2017-11-13 02:37 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/jdk/rev/5da7ee68eb02 8190690: Impact on krb5 test cases in the 8u-CPU nightly Reviewed-by: coffeys ! test/sun/security/krb5/auto/AcceptPermissions.java ! test/sun/security/krb5/auto/AcceptorSubKey.java ! test/sun/security/krb5/auto/AddressesAndNameType.java ! test/sun/security/krb5/auto/BadKdc1.java ! test/sun/security/krb5/auto/BadKdc2.java ! test/sun/security/krb5/auto/BadKdc3.java ! test/sun/security/krb5/auto/BadKdc4.java ! test/sun/security/krb5/auto/Basic.java ! test/sun/security/krb5/auto/BasicKrb5Test.java ! test/sun/security/krb5/auto/BasicProc.java ! test/sun/security/krb5/auto/BogusKDC.java ! test/sun/security/krb5/auto/CleanState.java ! test/sun/security/krb5/auto/CrossRealm.java ! test/sun/security/krb5/auto/DiffNameSameKey.java ! test/sun/security/krb5/auto/DupEtypes.java ! test/sun/security/krb5/auto/DynamicKeytab.java ! test/sun/security/krb5/auto/EmptyPassword.java ! test/sun/security/krb5/auto/FileKeyTab.java ! test/sun/security/krb5/auto/ForwardableCheck.java ! test/sun/security/krb5/auto/GSS.java ! test/sun/security/krb5/auto/GSSUnbound.java ! test/sun/security/krb5/auto/HttpNegotiateServer.java ! test/sun/security/krb5/auto/IgnoreChannelBinding.java ! test/sun/security/krb5/auto/KDC.java ! test/sun/security/krb5/auto/KPEquals.java ! test/sun/security/krb5/auto/KerberosHashEqualsTest.java ! test/sun/security/krb5/auto/KeyPermissions.java ! test/sun/security/krb5/auto/KeyTabCompat.java ! test/sun/security/krb5/auto/KrbTicket.java ! test/sun/security/krb5/auto/KvnoNA.java ! test/sun/security/krb5/auto/LifeTimeInSeconds.java ! test/sun/security/krb5/auto/LoginModuleOptions.java ! test/sun/security/krb5/auto/LoginNoPass.java ! test/sun/security/krb5/auto/MSOID2.java ! test/sun/security/krb5/auto/MaxRetries.java ! test/sun/security/krb5/auto/MoreKvno.java ! test/sun/security/krb5/auto/NewSalt.java ! test/sun/security/krb5/auto/NoAddresses.java ! test/sun/security/krb5/auto/NoInitNoKeytab.java ! test/sun/security/krb5/auto/NonMutualSpnego.java ! test/sun/security/krb5/auto/NoneReplayCacheTest.java ! test/sun/security/krb5/auto/OkAsDelegate.java ! test/sun/security/krb5/auto/OkAsDelegateXRealm.java ! test/sun/security/krb5/auto/OnlyDesLogin.java ! test/sun/security/krb5/auto/PrincipalNameEquals.java ! test/sun/security/krb5/auto/RRC.java ! test/sun/security/krb5/auto/RefreshKrb5Config.java ! test/sun/security/krb5/auto/ReplayCacheTest.java ! test/sun/security/krb5/auto/ReplayCacheTestProc.java ! test/sun/security/krb5/auto/S4U2proxy.java ! test/sun/security/krb5/auto/S4U2proxyGSS.java ! test/sun/security/krb5/auto/S4U2self.java ! test/sun/security/krb5/auto/S4U2selfAsServer.java ! test/sun/security/krb5/auto/S4U2selfAsServerGSS.java ! test/sun/security/krb5/auto/S4U2selfGSS.java ! test/sun/security/krb5/auto/SPNEGO.java ! test/sun/security/krb5/auto/SSL.java ! test/sun/security/krb5/auto/SaslBasic.java ! test/sun/security/krb5/auto/SaslGSS.java ! test/sun/security/krb5/auto/SaslUnbound.java ! test/sun/security/krb5/auto/SpnegoLifeTime.java ! test/sun/security/krb5/auto/SpnegoReqFlags.java ! test/sun/security/krb5/auto/TcpTimeout.java ! test/sun/security/krb5/auto/Test5653.java ! test/sun/security/krb5/auto/TicketSName.java ! test/sun/security/krb5/auto/TwoOrThree.java ! test/sun/security/krb5/auto/TwoPrinces.java ! test/sun/security/krb5/auto/TwoTab.java ! test/sun/security/krb5/auto/UdpTcp.java ! test/sun/security/krb5/auto/UnboundSSL.java ! test/sun/security/krb5/auto/UnboundSSLMultipleKeys.java ! test/sun/security/krb5/auto/UnboundSSLPrincipalProperty.java ! test/sun/security/krb5/auto/UnboundService.java ! test/sun/security/krb5/auto/UseCacheAndStoreKey.java ! test/sun/security/krb5/auto/W83.java Changeset: d5380412a565 Author: rpatil Date: 2017-11-14 12:28 +0530 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/jdk/rev/d5380412a565 8190258: (tz) Support tzdata2017c 8190259: test tck.java.time.zone.TCKZoneRules is broken by tzdata2017c Reviewed-by: naoto, martin ! make/data/tzdata/VERSION ! make/data/tzdata/africa ! make/data/tzdata/antarctica ! make/data/tzdata/asia ! make/data/tzdata/australasia ! make/data/tzdata/backward ! make/data/tzdata/europe ! make/data/tzdata/leapseconds ! make/data/tzdata/northamerica ! make/data/tzdata/southamerica ! make/data/tzdata/zone.tab ! src/share/classes/java/time/format/ZoneName.java ! src/share/classes/sun/util/resources/TimeZoneNames.java ! src/share/classes/sun/util/resources/de/TimeZoneNames_de.java ! src/share/classes/sun/util/resources/es/TimeZoneNames_es.java ! src/share/classes/sun/util/resources/fr/TimeZoneNames_fr.java ! src/share/classes/sun/util/resources/it/TimeZoneNames_it.java ! src/share/classes/sun/util/resources/ja/TimeZoneNames_ja.java ! src/share/classes/sun/util/resources/ko/TimeZoneNames_ko.java ! src/share/classes/sun/util/resources/pt/TimeZoneNames_pt_BR.java ! src/share/classes/sun/util/resources/sv/TimeZoneNames_sv.java ! src/share/classes/sun/util/resources/zh/TimeZoneNames_zh_CN.java ! src/share/classes/sun/util/resources/zh/TimeZoneNames_zh_TW.java ! test/java/time/tck/java/time/zone/TCKZoneRules.java ! test/java/time/test/java/time/format/ZoneName.java ! test/sun/util/calendar/zi/tzdata/VERSION ! test/sun/util/calendar/zi/tzdata/africa ! test/sun/util/calendar/zi/tzdata/antarctica ! test/sun/util/calendar/zi/tzdata/asia ! test/sun/util/calendar/zi/tzdata/australasia ! test/sun/util/calendar/zi/tzdata/backward ! test/sun/util/calendar/zi/tzdata/europe ! test/sun/util/calendar/zi/tzdata/leapseconds ! test/sun/util/calendar/zi/tzdata/northamerica ! test/sun/util/calendar/zi/tzdata/southamerica ! test/sun/util/calendar/zi/tzdata/zone.tab Changeset: 4373cee9c1ff Author: igerasim Date: 2017-11-13 23:27 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/jdk/rev/4373cee9c1ff 8187658: Bigger buffer for GetAdaptersAddresses Reviewed-by: rriggs, vtewari ! src/windows/native/java/net/NetworkInterface_winXP.c Changeset: dbd9027b9c3e Author: igerasim Date: 2017-11-13 23:28 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/jdk/rev/dbd9027b9c3e 8188855: Fix VS10 build after "8187658: Bigger buffer for GetAdaptersAddresses" Reviewed-by: vtewari, simonis ! src/windows/native/java/net/NetworkInterface_winXP.c Changeset: 07011844584f Author: robm Date: 2017-11-15 11:09 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/jdk/rev/07011844584f Merge Changeset: ddfdc4c242f2 Author: coffeys Date: 2017-11-27 16:53 +0000 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/jdk/rev/ddfdc4c242f2 8189789: tomcat gzip-compressed response bodies appear to be broken in update 151 Reviewed-by: sherman, phh ! src/share/native/java/util/zip/Deflater.c ! src/share/native/java/util/zip/zlib/deflate.c ! src/share/native/java/util/zip/zlib/patches/ChangeLog_java ! test/java/util/zip/InflateIn_DeflateOut.java Changeset: 6168463b3108 Author: robm Date: 2017-11-29 16:28 +0000 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/jdk/rev/6168463b3108 8169424: src/share/sample/scripting/scriptpad/src/scripts/memory.sh missing #! Reviewed-by: coffeys ! src/share/sample/scripting/scriptpad/src/scripts/memory.sh Changeset: c7d0980af81a Author: robm Date: 2017-11-29 16:29 +0000 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/jdk/rev/c7d0980af81a 8189646: sun/security/ssl/SSLSocketImpl/SSLSocketCloseHang.java failed with "java.net.SocketTimeoutException: Read timed out" Reviewed-by: coffeys ! test/sun/security/ssl/SSLSocketImpl/SSLSocketCloseHang.java Changeset: c0e157ac32e2 Author: prr Date: 2016-07-25 10:36 -0700 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/jdk/rev/c0e157ac32e2 8147542: ClassCastException when repainting after display resolution change Reviewed-by: prr, flar Contributed-by: alexey.ushakov at jetbrains.com ! src/solaris/classes/sun/java2d/xr/XRPMBlitLoops.java Changeset: b4b06b5bc14f Author: akolarkunnu Date: 2017-11-29 21:37 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/jdk/rev/b4b06b5bc14f 8154017: Shutdown hooks are racing against shutdown sequence, if System.exit()-calling thread is interrupted Reviewed-by: coffeys ! src/share/classes/java/lang/ApplicationShutdownHooks.java + test/java/lang/Runtime/shutdown/ShutdownInterruptedMain.java Changeset: 49cfd9baec9c Author: ssreedharan Date: 2017-11-09 14:19 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/jdk/rev/49cfd9baec9c 8183504: 8u131 Win 10, issue with wrong position of Sogou IME popup Reviewed-by: psadhukhan ! src/windows/native/sun/windows/awt_Component.cpp Changeset: 04c6d4f4921e Author: azvegint Date: 2015-08-04 12:34 +0300 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/jdk/rev/04c6d4f4921e 8130400: Test java/awt/image/DrawImage/IncorrectClipXorModeSurface2Surface.java fails with ClassCastException Reviewed-by: prr, serb ! src/solaris/classes/sun/java2d/xr/XRDrawImage.java ! test/java/awt/image/DrawImage/IncorrectClipXorModeSurface2Surface.java Changeset: 56832a0ff7f8 Author: aefimov Date: 2017-12-02 14:28 +0000 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/jdk/rev/56832a0ff7f8 8186441: Change of behavior in the getMessage () method of the SOAPMessageContextImpl class Reviewed-by: lancea ! test/javax/xml/ws/8159058/SaajEmptyNamespaceTest.java Changeset: 50cb34f2217b Author: ssreedharan Date: 2017-11-24 13:18 +0530 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/jdk/rev/50cb34f2217b 8176072: READING attributes are not available on TSF Reviewed-by: ssadetsky ! src/windows/classes/sun/awt/windows/WInputMethod.java ! src/windows/native/sun/windows/awt_InputTextInfor.cpp + test/javax/swing/JTextField/JapaneseReadingAttributes/JapaneseReadingAttributes.java Changeset: d7e9bf2b16f4 Author: alitvinov Date: 2017-12-04 17:38 +0000 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/jdk/rev/d7e9bf2b16f4 8181659: Create an alternative fix for JDK-8167102, whose fix was backed out Reviewed-by: prr, serb ! src/share/classes/sun/print/RasterPrinterJob.java ! test/java/awt/print/PageFormat/WrongPaperPrintingTest.java Changeset: 6bcb0cba6df6 Author: aivanov Date: 2017-12-06 13:04 +0000 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/jdk/rev/6bcb0cba6df6 8179665: [Windows] java.awt.IllegalComponentStateException: component must be showing on the screen to determine its location Reviewed-by: prr, serb, ssadetsky ! src/windows/classes/sun/awt/windows/WInputMethod.java ! src/windows/native/sun/windows/awt_Component.cpp + test/javax/swing/JFrame/AlwaysOnTop/AlwaysOnTopImeTest.java Changeset: dbd038c1595a Author: nishjain Date: 2016-10-04 19:28 +0900 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/jdk/rev/dbd038c1595a 8165466: DecimalFormat percentage format can contain unexpected % Reviewed-by: okutsu, peytoia ! src/share/classes/java/text/DecimalFormat.java + test/java/text/Format/DecimalFormat/Bug8165466.java Changeset: 04fcd605b1fe Author: igerasim Date: 2017-12-13 12:31 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/jdk/rev/04fcd605b1fe 8193156: Need to backout fixes for JDK-8058547, JDK-8055753, JDK-8085903 Reviewed-by: mullan ! src/share/classes/java/security/ProtectionDomain.java Changeset: 5a0b642bcbd6 Author: dbuck Date: 2017-12-18 18:54 -0500 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/jdk/rev/5a0b642bcbd6 8059036: Implement Diagnostic Commands for heap and finalizerinfo Summary: Implement Diagnostic Commands for heap and finalizerinfo Reviewed-by: mchung ! src/share/classes/java/lang/ref/Finalizer.java + src/share/classes/java/lang/ref/FinalizerHistogram.java ! src/share/classes/java/lang/ref/Reference.java ! src/share/classes/java/lang/ref/ReferenceQueue.java + test/java/lang/ref/FinalizerHistogramTest.java Changeset: f3f7bbfe8928 Author: okutsu Date: 2016-07-05 13:53 +0900 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/jdk/rev/f3f7bbfe8928 8136356: Add time zone mappings on Windows Reviewed-by: peytoia ! src/windows/lib/tzmappings Changeset: 25f7b0cd25cf Author: rpatil Date: 2017-12-20 06:12 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/jdk/rev/25f7b0cd25cf 8153955: increase java.util.logging.FileHandler MAX_LOCKS limit Summary: This patch adds a new JDK implementation specific system property "jdk.internal.FileHandlerLogging.maxLocks" to control java.util.logging.FileHandler's MAX_LOCKS limit. Reviewed-by: coffeys, dfuchs ! src/share/classes/java/util/logging/FileHandler.java + test/java/util/logging/FileHandlerMaxLocksTest.java Changeset: 73a9fef98b93 Author: asaha Date: 2018-01-02 17:02 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/jdk/rev/73a9fef98b93 Added tag jdk8u172-b01 for changeset 25f7b0cd25cf ! .hgtags Changeset: def07b5ce3be Author: mbaesken Date: 2017-12-19 15:17 +0100 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/jdk/rev/def07b5ce3be 8193807: Avoid UnsatisfiedLinkError on AIX by providing empty basic implementations of getSystemCpuLoad and getProcessCpuLoad Reviewed-by: erikj, simonis ! make/lib/ServiceabilityLibraries.gmk + src/aix/native/sun/management/AixOperatingSystem.c Changeset: d3ca089e6a0d Author: snikandrova Date: 2016-07-18 14:39 +0300 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/jdk/rev/d3ca089e6a0d 8054213: Class name repeated in output of Type.toString() Reviewed-by: darcy ! src/share/classes/sun/reflect/generics/reflectiveObjects/ParameterizedTypeImpl.java + test/java/lang/reflect/Generics/TestGenericReturnTypeToString.java Changeset: 39225a867e2b Author: coffeys Date: 2018-01-02 08:53 +0000 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/jdk/rev/39225a867e2b Merge Changeset: 70c58495bbad Author: igerasim Date: 2018-01-02 18:05 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/jdk/rev/70c58495bbad 8187985: Broken certificate number in debug output Reviewed-by: weijun ! src/share/classes/sun/security/tools/keytool/Main.java Changeset: a0932d9f577d Author: igerasim Date: 2018-01-03 00:46 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/jdk/rev/a0932d9f577d 8192987: keytool should remember real storetype if it is not provided Reviewed-by: mullan ! src/share/classes/sun/security/tools/KeyStoreUtil.java ! src/share/classes/sun/security/tools/keytool/Main.java + test/sun/security/tools/keytool/RealType.java Changeset: db8272cb8c99 Author: robm Date: 2018-01-08 10:18 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/jdk/rev/db8272cb8c99 Merge Changeset: 51b6cc7fbd98 Author: asaha Date: 2018-01-08 22:36 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/jdk/rev/51b6cc7fbd98 Added tag jdk8u172-b02 for changeset db8272cb8c99 ! .hgtags Changeset: bd24ee3a9a04 Author: asaha Date: 2018-01-16 22:58 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/jdk/rev/bd24ee3a9a04 Merge ! .hgtags ! src/share/classes/javax/swing/JList.java - src/share/classes/sun/misc/JavaObjectInputStreamAccess.java - src/share/classes/sun/misc/ObjectStreamClassValidator.java ! src/share/classes/sun/print/RasterPrinterJob.java - src/share/classes/sun/security/ssl/SupportedEllipticCurvesExtension.java - src/share/classes/sun/security/ssl/SupportedEllipticPointFormatsExtension.java ! src/share/classes/sun/security/tools/keytool/Main.java ! src/windows/native/sun/windows/awt_Component.cpp Changeset: d0e3f3cf28b6 Author: asaha Date: 2018-01-18 06:01 +0000 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/jdk/rev/d0e3f3cf28b6 Added tag jdk8u172-b03 for changeset bd24ee3a9a04 ! .hgtags Changeset: 5c3bb77e43ee Author: asaha Date: 2018-01-22 15:14 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/jdk/rev/5c3bb77e43ee Merge ! .hgtags ! src/share/classes/java/awt/Container.java ! src/windows/classes/sun/awt/windows/WInputMethod.java ! src/windows/native/sun/windows/awt_Component.cpp Changeset: 4893c31ec103 Author: asaha Date: 2018-01-25 08:21 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/jdk/rev/4893c31ec103 Merge ! .hgtags Changeset: 49af0402dfe2 Author: azvegint Date: 2018-01-23 12:28 +0530 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/jdk/rev/49af0402dfe2 8187803: JDK part of JavaFX-Swing dialogs appearing behind main stage Reviewed-by: ssadetsky, prr ! src/macosx/classes/sun/lwawt/LWLightweightFramePeer.java ! src/macosx/classes/sun/lwawt/macosx/CPlatformWindow.java + src/share/classes/sun/awt/OverrideNativeWindowHandle.java ! src/share/classes/sun/swing/JLightweightFrame.java ! src/solaris/classes/sun/awt/X11/XLightweightFramePeer.java ! src/solaris/classes/sun/awt/X11/XWindowPeer.java ! src/windows/classes/sun/awt/windows/WLightweightFramePeer.java ! src/windows/native/sun/windows/awt_Dialog.cpp ! src/windows/native/sun/windows/awt_Frame.cpp ! src/windows/native/sun/windows/awt_Window.cpp ! src/windows/native/sun/windows/awt_Window.h Changeset: cf952b84daa1 Author: asaha Date: 2018-01-30 11:33 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/jdk/rev/cf952b84daa1 Merge ! .hgtags Changeset: b398bb5c0c90 Author: asaha Date: 2018-01-30 11:39 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/jdk/rev/b398bb5c0c90 Added tag jdk8u172-b04 for changeset cf952b84daa1 ! .hgtags Changeset: 412b77573557 Author: alitvinov Date: 2018-01-26 17:44 +0000 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/jdk/rev/412b77573557 8177758: Regression in java.awt.FileDialog Reviewed-by: sveerabhadra, serb ! src/windows/native/sun/windows/awt_FileDialog.cpp + test/java/awt/FileDialog/FileDialogMemoryLeak/FileDialogLeakTest.java Changeset: 076daed81c0a Author: asaha Date: 2018-02-06 11:06 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/jdk/rev/076daed81c0a Merge ! .hgtags Changeset: 1fc8d9f8ca5b Author: asaha Date: 2018-02-06 11:13 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/jdk/rev/1fc8d9f8ca5b Added tag jdk8u172-b05 for changeset 076daed81c0a ! .hgtags Changeset: 94491d0dc595 Author: asaha Date: 2018-02-13 12:27 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/jdk/rev/94491d0dc595 Merge ! .hgtags - src/share/classes/com/sun/crypto/provider/ai.java Changeset: d84393f0a392 Author: asaha Date: 2018-02-13 12:57 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/jdk/rev/d84393f0a392 Added tag jdk8u172-b06 for changeset 94491d0dc595 ! .hgtags Changeset: 7e9eeb74e84b Author: asaha Date: 2018-02-20 13:07 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/jdk/rev/7e9eeb74e84b Merge ! .hgtags Changeset: 3db75ee84f69 Author: asaha Date: 2018-02-20 13:11 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/jdk/rev/3db75ee84f69 Added tag jdk8u172-b07 for changeset 7e9eeb74e84b ! .hgtags Changeset: 3974ec9cd040 Author: asaha Date: 2018-02-27 11:41 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/jdk/rev/3974ec9cd040 Merge ! .hgtags Changeset: 41df444245e3 Author: asaha Date: 2018-03-06 20:30 +0000 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/jdk/rev/41df444245e3 Added tag jdk8u172-b08 for changeset 3974ec9cd040 ! .hgtags Changeset: f52ece1d8708 Author: asaha Date: 2018-03-06 20:35 +0000 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/jdk/rev/f52ece1d8708 Merge ! .hgtags - test/javax/management/remote/mandatory/connection/DefaultAgentFilterTest.java - test/javax/management/remote/mandatory/connection/NewRMIClientFilterTest.java - test/javax/management/remote/mandatory/connection/mgmt1.properties - test/javax/management/remote/mandatory/connection/mgmt2.properties Changeset: 5049f9184d0e Author: asaha Date: 2018-03-06 20:36 +0000 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/jdk/rev/5049f9184d0e Added tag jdk8u172-b09 for changeset f52ece1d8708 ! .hgtags Changeset: 9e9009034e5c Author: asaha Date: 2018-03-19 12:06 -0700 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/jdk/rev/9e9009034e5c Merge ! .hgtags Changeset: 27d24b7fddc6 Author: asaha Date: 2018-03-19 12:13 -0700 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/jdk/rev/27d24b7fddc6 Added tag jdk8u172-b10 for changeset 9e9009034e5c ! .hgtags Changeset: 07e8e63a872c Author: asaha Date: 2018-03-28 08:18 -0700 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/jdk/rev/07e8e63a872c Added tag jdk8u171-b11 for changeset 5ccb2d5ec23d ! .hgtags Changeset: 2a041b1f858d Author: asaha Date: 2018-03-28 08:43 -0700 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/jdk/rev/2a041b1f858d Merge ! .hgtags Changeset: 4c674322d449 Author: andrew Date: 2018-05-09 04:51 +0100 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/jdk/rev/4c674322d449 Merge jdk8u172-b11 ! .hgtags ! make/lib/ServiceabilityLibraries.gmk ! src/macosx/classes/sun/lwawt/macosx/CPlatformWindow.java ! src/share/classes/com/sun/java/swing/plaf/motif/MotifInternalFrameTitlePane.java ! src/share/classes/java/awt/Component.java ! src/share/classes/java/awt/Container.java ! src/share/classes/java/awt/event/MouseEvent.java ! src/share/classes/java/lang/ref/Finalizer.java ! src/share/classes/java/security/ProtectionDomain.java ! src/share/classes/java/text/DecimalFormat.java ! src/share/classes/javax/swing/JList.java ! src/share/classes/javax/swing/JTable.java ! src/share/classes/javax/swing/JTree.java ! src/share/classes/javax/swing/SwingUtilities.java ! src/share/classes/javax/swing/plaf/basic/BasicComboPopup.java ! src/share/classes/javax/swing/table/JTableHeader.java ! src/share/classes/sun/awt/AWTAccessor.java ! src/share/classes/sun/management/Agent.java ! src/share/classes/sun/print/RasterPrinterJob.java ! src/share/classes/sun/security/tools/keytool/Main.java ! src/solaris/classes/sun/java2d/xr/XRDrawImage.java ! src/solaris/classes/sun/java2d/xr/XRPMBlitLoops.java ! src/windows/classes/sun/awt/windows/WLightweightFramePeer.java ! src/windows/native/java/net/NetworkInterface_winXP.c ! src/windows/native/sun/windows/awt_Component.cpp ! src/windows/native/sun/windows/awt_InputTextInfor.cpp ! src/windows/native/sun/windows/awt_Toolkit.cpp ! src/windows/native/sun/windows/awt_Window.cpp ! test/sun/security/krb5/auto/SSL.java Changeset: e8e6553e7ca9 Author: andrew Date: 2018-05-09 04:52 +0100 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/jdk/rev/e8e6553e7ca9 Added tag aarch64-jdk8u172-b11 for changeset 4c674322d449 ! .hgtags Changeset: e9cec57ebc22 Author: shade Date: 2018-05-14 11:17 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/jdk/rev/e9cec57ebc22 Merge ! .hgtags From rkennke at redhat.com Mon May 14 10:14:14 2018 From: rkennke at redhat.com (Roman Kennke) Date: Mon, 14 May 2018 12:14:14 +0200 Subject: RFR: Improve abstraction for runtime allocations In-Reply-To: <6f503fa3-4969-07aa-0a51-5ae2d9bb8574@redhat.com> References: <61989864-5192-36df-fda7-f5d149526849@redhat.com> <6f503fa3-4969-07aa-0a51-5ae2d9bb8574@redhat.com> Message-ID: <4cfeaeb4-4bef-d16a-1661-174744d33a02@redhat.com> Am 14.05.2018 um 11:12 schrieb Aleksey Shipilev: > On 05/13/2018 06:45 PM, Roman Kennke wrote: >> This rebases the patch on top of the PLAB change. It basically reverts >> some changes in plab that I needed to do there: >> >> Diff: >> http://cr.openjdk.java.net/~rkennke/allocations-rt/webrev.01.diff/ >> Full: >> http://cr.openjdk.java.net/~rkennke/allocations-rt/webrev.01/ > > The patch looks good. > > But the whole lot of reshuffling in shared code unnerves me. In my mind, it feels safer to do the > mem_allocate rework in upstream, make sure upstream does not break with it, and then pick it up from > there. Otherwise, we are risking investing into some code shape that would be flat-out rejected > upstream, and we would have to redo it again. OK, let me just do it upstream and then trickle down. Roman From roman at kennke.org Mon May 14 10:15:13 2018 From: roman at kennke.org (roman at kennke.org) Date: Mon, 14 May 2018 10:15:13 +0000 Subject: hg: shenandoah/jdk: Use PLAB for evacuations instead of TLAB Message-ID: <201805141015.w4EAFD3J026914@aojmv0008.oracle.com> Changeset: 39cb55807641 Author: rkennke Date: 2018-05-14 12:15 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/39cb55807641 Use PLAB for evacuations instead of TLAB ! src/hotspot/share/gc/shared/collectedHeap.cpp ! src/hotspot/share/gc/shared/collectedHeap.hpp ! src/hotspot/share/gc/shared/plab.cpp ! src/hotspot/share/gc/shared/plab.hpp ! src/hotspot/share/gc/shared/threadLocalAllocBuffer.cpp ! src/hotspot/share/gc/shared/threadLocalAllocBuffer.hpp ! src/hotspot/share/gc/shenandoah/shenandoahBarrierSet.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/shenandoahMarkCompact.cpp ! src/hotspot/share/gc/shenandoah/shenandoahThreadLocalData.hpp ! src/hotspot/share/gc/shenandoah/shenandoahWorkGroup.cpp ! src/hotspot/share/runtime/thread.hpp From shade at redhat.com Mon May 14 11:17:02 2018 From: shade at redhat.com (Aleksey Shipilev) Date: Mon, 14 May 2018 13:17:02 +0200 Subject: RFC: Cease JDK 9 support for Shenandoah Message-ID: <155a120f-22fc-728c-b7bd-964a43f084fd@redhat.com> JDK 9 is EOL, upstream does not accept patches for it. Download stats seems to indicate the small amount of users that used 9 moved on to 10. So, print the warning below in sh/jdk9, and give up supporting it. We would ask ops@ to seal the sh/jdk9 repo too to avoid accidental pushes there. This would leave us with sh/jdk8 (current LTS), sh/jdk10 (current STS), and sh/jdk (current-dev) as supported/developed JDKs. diff -r 82415e2b3b0f src/share/vm/runtime/arguments.cpp --- a/src/share/vm/runtime/arguments.cpp Thu May 03 13:27:01 2018 +0200 +++ b/src/share/vm/runtime/arguments.cpp Mon May 14 12:49:06 2018 +0200 @@ -2057,6 +2057,11 @@ } void Arguments::set_shenandoah_gc_flags() { + log_warning(gc)("*******************************************************************"); + log_warning(gc)("* Shenandoah GC support for this JDK release had ceased. *"); + log_warning(gc)("* JDK 9 is a short-term release, and it is superseded by 10. *"); + log_warning(gc)("* Use this build at your own risk. *"); + log_warning(gc)("*******************************************************************"); #if !(defined AARCH64 || defined AMD64 || defined IA32) vm_exit_during_initialization("Shenandoah GC is not supported on this platform."); Testing: see that warning message is printed Thanks, -Aleksey From shade at redhat.com Mon May 14 11:29:05 2018 From: shade at redhat.com (Aleksey Shipilev) Date: Mon, 14 May 2018 13:29:05 +0200 Subject: RFC: Cease JDK 9 support for Shenandoah In-Reply-To: <155a120f-22fc-728c-b7bd-964a43f084fd@redhat.com> References: <155a120f-22fc-728c-b7bd-964a43f084fd@redhat.com> Message-ID: <26f806b1-1980-884d-b5f0-695f9e7bec76@redhat.com> On 05/14/2018 01:17 PM, Aleksey Shipilev wrote: > JDK 9 is EOL, upstream does not accept patches for it. Download stats seems to indicate the small > amount of users that used 9 moved on to 10. Also comes with a Completely Scientific and Totally Representative Poll (tm): https://twitter.com/shipilev/status/995987634978787329 -Aleksey From dalibor.topic at oracle.com Mon May 14 12:03:51 2018 From: dalibor.topic at oracle.com (dalibor topic) Date: Mon, 14 May 2018 14:03:51 +0200 Subject: RFC: Cease JDK 9 support for Shenandoah In-Reply-To: <26f806b1-1980-884d-b5f0-695f9e7bec76@redhat.com> References: <155a120f-22fc-728c-b7bd-964a43f084fd@redhat.com> <26f806b1-1980-884d-b5f0-695f9e7bec76@redhat.com> Message-ID: <20d39cc4-295b-66e3-1b4c-4bcda7720621@oracle.com> On 14.05.2018 13:29, Aleksey Shipilev wrote: > On 05/14/2018 01:17 PM, Aleksey Shipilev wrote: >> JDK 9 is EOL, upstream does not accept patches for it. Download stats seems to indicate the small >> amount of users that used 9 moved on to 10. In the representative polling of who would like to take on JDK 9 updates maintenance on the jdk-updates-dev mailing list there were exactly 0 (in words: zero) takers. So http://hg.openjdk.java.net/jdk-updates/jdk9u/ is now "READ ONLY". cheers, dalibor topic -- Dalibor Topic | Principal Product Manager Phone: +494089091214 | Mobile: +491737185961 ORACLE Deutschland B.V. & Co. KG | K?hneh?fe 5 | 22761 Hamburg ORACLE Deutschland B.V. & Co. KG Hauptverwaltung: Riesstr. 25, D-80992 M?nchen Registergericht: Amtsgericht M?nchen, HRA 95603 Komplement?rin: ORACLE Deutschland Verwaltung B.V. Hertogswetering 163/167, 3543 AS Utrecht, Niederlande Handelsregister der Handelskammer Midden-Niederlande, Nr. 30143697 Gesch?ftsf?hrer: Alexander van der Ven, Jan Schultheiss, Val Maher Oracle is committed to developing practices and products that help protect the environment From shade at redhat.com Mon May 14 18:33:08 2018 From: shade at redhat.com (Aleksey Shipilev) Date: Mon, 14 May 2018 20:33:08 +0200 Subject: RFR: [10] Bulk backports to sh/jdk10 Message-ID: <7f560b0a-d3a5-e5f0-0790-8efbe1962526@redhat.com> http://cr.openjdk.java.net/~shade/shenandoah/backports/jdk10-20180514/webrev.01/ This backports recent work to sh/jdk10: [backport] Several small aarch64 fixes [backport] Critical native tests should only be ran on x86_64 platforms [backport] Remove debug messages in BitMap::copy_from() [backport] Fix Minimal VM build [backport] Fixing Windows and ARM32 build [backport] Fix ShFreeSet boundary case [backport] Cleanup: removed unused code [backport] Rename ShenandoahConcurrentThread to ShenandoahControlThread [backport] Break heuristics out from ShCollectorPolicy into their own source files Testing: hotspot_gc_shenandoah {fastdebug|release} Thanks, -Aleksey From shade at redhat.com Mon May 14 18:34:09 2018 From: shade at redhat.com (Aleksey Shipilev) Date: Mon, 14 May 2018 20:34:09 +0200 Subject: RFR: [9] Bulk backports to sh/jdk9 Message-ID: <48a0e5fc-0629-ee9e-d936-8209e3ab2946@redhat.com> http://cr.openjdk.java.net/~shade/shenandoah/backports/jdk9-20180514/webrev.01/ This backports recent work to sh/jdk9: [backport] Several small aarch64 fixes [backport] Critical native tests should only be ran on x86_64 platforms [backport] Fix Minimal VM build [backport] Fixing Windows and ARM32 build [backport] Fix ShFreeSet boundary case [backport] Cleanup: removed unused code [backport] Rename ShenandoahConcurrentThread to ShenandoahControlThread [backport] Break heuristics out from ShCollectorPolicy into their own source files Testing: hotspot_gc_shenandoah {fastdebug|release} Thanks, -Aleksey From shade at redhat.com Mon May 14 18:37:03 2018 From: shade at redhat.com (Aleksey Shipilev) Date: Mon, 14 May 2018 20:37:03 +0200 Subject: RFR: [8] Bulk backports to sh/jdk8 Message-ID: <48c77249-a827-36fc-65d3-f6866ee61286@redhat.com> http://cr.openjdk.java.net/~shade/shenandoah/backports/jdk8u-20180514/webrev.01/ This backports recent work to sh/jdk8: [backport] Critical native tests should only be ran on x86_64 platforms [backport] Fix Minimal VM build [backport] Fixing Windows and ARM32 build [backport] Fix ShFreeSet boundary case [backport] Cleanup: removed unused code [backport] Rename ShenandoahConcurrentThread to ShenandoahControlThread [backport] Break heuristics out from ShCollectorPolicy into their own source files Testing: hotspot_gc_shenandoah {fastdebug|release} Thanks, -Aleksey From rkennke at redhat.com Mon May 14 18:55:52 2018 From: rkennke at redhat.com (Roman Kennke) Date: Mon, 14 May 2018 20:55:52 +0200 Subject: RFR: [10] Bulk backports to sh/jdk10 In-Reply-To: <7f560b0a-d3a5-e5f0-0790-8efbe1962526@redhat.com> References: <7f560b0a-d3a5-e5f0-0790-8efbe1962526@redhat.com> Message-ID: <98e17602-68c4-4ce7-d37b-ddcc1bbf87d0@redhat.com> Looks good! Thanks! Roman > http://cr.openjdk.java.net/~shade/shenandoah/backports/jdk10-20180514/webrev.01/ > > This backports recent work to sh/jdk10: > > [backport] Several small aarch64 fixes > [backport] Critical native tests should only be ran on x86_64 platforms > [backport] Remove debug messages in BitMap::copy_from() > [backport] Fix Minimal VM build > [backport] Fixing Windows and ARM32 build > [backport] Fix ShFreeSet boundary case > [backport] Cleanup: removed unused code > [backport] Rename ShenandoahConcurrentThread to ShenandoahControlThread > [backport] Break heuristics out from ShCollectorPolicy into their own source files > > Testing: hotspot_gc_shenandoah {fastdebug|release} > > Thanks, > -Aleksey > From rkennke at redhat.com Mon May 14 19:02:07 2018 From: rkennke at redhat.com (Roman Kennke) Date: Mon, 14 May 2018 21:02:07 +0200 Subject: RFR: [9] Bulk backports to sh/jdk9 In-Reply-To: <48a0e5fc-0629-ee9e-d936-8209e3ab2946@redhat.com> References: <48a0e5fc-0629-ee9e-d936-8209e3ab2946@redhat.com> Message-ID: <5918c667-08e7-2499-6eda-8b4b5d3a5854@redhat.com> Ok. Thank you!! Roman > http://cr.openjdk.java.net/~shade/shenandoah/backports/jdk9-20180514/webrev.01/ > > This backports recent work to sh/jdk9: > > [backport] Several small aarch64 fixes > [backport] Critical native tests should only be ran on x86_64 platforms > [backport] Fix Minimal VM build > [backport] Fixing Windows and ARM32 build > [backport] Fix ShFreeSet boundary case > [backport] Cleanup: removed unused code > [backport] Rename ShenandoahConcurrentThread to ShenandoahControlThread > [backport] Break heuristics out from ShCollectorPolicy into their own source files > > Testing: hotspot_gc_shenandoah {fastdebug|release} > > Thanks, > -Aleksey > From rkennke at redhat.com Mon May 14 19:05:24 2018 From: rkennke at redhat.com (Roman Kennke) Date: Mon, 14 May 2018 21:05:24 +0200 Subject: RFR: [8] Bulk backports to sh/jdk8 In-Reply-To: <48c77249-a827-36fc-65d3-f6866ee61286@redhat.com> References: <48c77249-a827-36fc-65d3-f6866ee61286@redhat.com> Message-ID: > http://cr.openjdk.java.net/~shade/shenandoah/backports/jdk8u-20180514/webrev.01/ > > This backports recent work to sh/jdk8: > > [backport] Critical native tests should only be ran on x86_64 platforms > [backport] Fix Minimal VM build > [backport] Fixing Windows and ARM32 build > [backport] Fix ShFreeSet boundary case > [backport] Cleanup: removed unused code > [backport] Rename ShenandoahConcurrentThread to ShenandoahControlThread > [backport] Break heuristics out from ShCollectorPolicy into their own source files > > Testing: hotspot_gc_shenandoah {fastdebug|release} > make/excludeSrc.make: + + Src_Files_EXCLUDE += \ + shenandoahBarrierSet_x86.cpp Don't we want that for _aarch64 files too? Otherwise looks good! Thanks, Roman From shade at redhat.com Mon May 14 19:10:35 2018 From: shade at redhat.com (Aleksey Shipilev) Date: Mon, 14 May 2018 21:10:35 +0200 Subject: RFR: [8] Bulk backports to sh/jdk8 In-Reply-To: References: <48c77249-a827-36fc-65d3-f6866ee61286@redhat.com> Message-ID: <9df205ab-2280-c78a-3d71-506859963d13@redhat.com> On 05/14/2018 09:05 PM, Roman Kennke wrote: > >> http://cr.openjdk.java.net/~shade/shenandoah/backports/jdk8u-20180514/webrev.01/ >> >> This backports recent work to sh/jdk8: >> >> [backport] Critical native tests should only be ran on x86_64 platforms >> [backport] Fix Minimal VM build >> [backport] Fixing Windows and ARM32 build >> [backport] Fix ShFreeSet boundary case >> [backport] Cleanup: removed unused code >> [backport] Rename ShenandoahConcurrentThread to ShenandoahControlThread >> [backport] Break heuristics out from ShCollectorPolicy into their own source files >> >> Testing: hotspot_gc_shenandoah {fastdebug|release} >> > > make/excludeSrc.make: > + > + Src_Files_EXCLUDE += \ > + shenandoahBarrierSet_x86.cpp > > Don't we want that for _aarch64 files too? Yes. Even though it only affects "minimal", which is 32-bit x86. But added anyway. -Aleksey From rkennke at redhat.com Mon May 14 19:15:36 2018 From: rkennke at redhat.com (Roman Kennke) Date: Mon, 14 May 2018 21:15:36 +0200 Subject: RFR: [8] Bulk backports to sh/jdk8 In-Reply-To: <9df205ab-2280-c78a-3d71-506859963d13@redhat.com> References: <48c77249-a827-36fc-65d3-f6866ee61286@redhat.com> <9df205ab-2280-c78a-3d71-506859963d13@redhat.com> Message-ID: <68d0db69-fefa-6a66-4049-1ca8a29e0b6f@redhat.com> Am 14.05.2018 um 21:10 schrieb Aleksey Shipilev: > On 05/14/2018 09:05 PM, Roman Kennke wrote: >> >>> http://cr.openjdk.java.net/~shade/shenandoah/backports/jdk8u-20180514/webrev.01/ >>> >>> This backports recent work to sh/jdk8: >>> >>> [backport] Critical native tests should only be ran on x86_64 platforms >>> [backport] Fix Minimal VM build >>> [backport] Fixing Windows and ARM32 build >>> [backport] Fix ShFreeSet boundary case >>> [backport] Cleanup: removed unused code >>> [backport] Rename ShenandoahConcurrentThread to ShenandoahControlThread >>> [backport] Break heuristics out from ShCollectorPolicy into their own source files >>> >>> Testing: hotspot_gc_shenandoah {fastdebug|release} >>> >> >> make/excludeSrc.make: >> + >> + Src_Files_EXCLUDE += \ >> + shenandoahBarrierSet_x86.cpp >> >> Don't we want that for _aarch64 files too? > > Yes. Even though it only affects "minimal", which is 32-bit x86. But added anyway. > Ah. Aha. Ok then! Thank you!! Roman From zgu at redhat.com Mon May 14 20:10:05 2018 From: zgu at redhat.com (Zhengyu Gu) Date: Mon, 14 May 2018 16:10:05 -0400 Subject: RFR: [10] Bulk backports to sh/jdk10 In-Reply-To: <98e17602-68c4-4ce7-d37b-ddcc1bbf87d0@redhat.com> References: <7f560b0a-d3a5-e5f0-0790-8efbe1962526@redhat.com> <98e17602-68c4-4ce7-d37b-ddcc1bbf87d0@redhat.com> Message-ID: <9ddafc69-9355-c6e0-e657-6e271e92624d@redhat.com> Looks good to me. -Zhengyu On 05/14/2018 02:55 PM, Roman Kennke wrote: > Looks good! > Thanks! > > Roman > > >> http://cr.openjdk.java.net/~shade/shenandoah/backports/jdk10-20180514/webrev.01/ >> >> This backports recent work to sh/jdk10: >> >> [backport] Several small aarch64 fixes >> [backport] Critical native tests should only be ran on x86_64 platforms >> [backport] Remove debug messages in BitMap::copy_from() >> [backport] Fix Minimal VM build >> [backport] Fixing Windows and ARM32 build >> [backport] Fix ShFreeSet boundary case >> [backport] Cleanup: removed unused code >> [backport] Rename ShenandoahConcurrentThread to ShenandoahControlThread >> [backport] Break heuristics out from ShCollectorPolicy into their own source files >> >> Testing: hotspot_gc_shenandoah {fastdebug|release} >> >> Thanks, >> -Aleksey >> > > From zgu at redhat.com Mon May 14 20:21:29 2018 From: zgu at redhat.com (Zhengyu Gu) Date: Mon, 14 May 2018 16:21:29 -0400 Subject: RFR: [10] Bulk backports to sh/jdk10 In-Reply-To: <9ddafc69-9355-c6e0-e657-6e271e92624d@redhat.com> References: <7f560b0a-d3a5-e5f0-0790-8efbe1962526@redhat.com> <98e17602-68c4-4ce7-d37b-ddcc1bbf87d0@redhat.com> <9ddafc69-9355-c6e0-e657-6e271e92624d@redhat.com> Message-ID: <1d2986fa-b040-92bd-9cd1-247b626abe28@redhat.com> Wait. We also changed counts from int to size_t in ShenandoahBarrierSet::write_ref_array_pre() why dropped changes? Thanks, -Zhengyu On 05/14/2018 04:10 PM, Zhengyu Gu wrote: > Looks good to me. > > -Zhengyu > > On 05/14/2018 02:55 PM, Roman Kennke wrote: >> Looks good! >> Thanks! >> >> Roman >> >> >>> http://cr.openjdk.java.net/~shade/shenandoah/backports/jdk10-20180514/webrev.01/ >>> >>> >>> This backports recent work to sh/jdk10: >>> >>> ? [backport] Several small aarch64 fixes >>> ? [backport] Critical native tests should only be ran on x86_64 >>> platforms >>> ? [backport] Remove debug messages in BitMap::copy_from() >>> ? [backport] Fix Minimal VM build >>> ? [backport] Fixing Windows and ARM32 build >>> ? [backport] Fix ShFreeSet boundary case >>> ? [backport] Cleanup: removed unused code >>> ? [backport] Rename ShenandoahConcurrentThread to >>> ShenandoahControlThread >>> ? [backport] Break heuristics out from ShCollectorPolicy into their >>> own source files >>> >>> Testing: hotspot_gc_shenandoah {fastdebug|release} >>> >>> Thanks, >>> -Aleksey >>> >> >> From shade at redhat.com Mon May 14 20:47:20 2018 From: shade at redhat.com (Aleksey Shipilev) Date: Mon, 14 May 2018 22:47:20 +0200 Subject: RFR: [10] Bulk backports to sh/jdk10 In-Reply-To: <1d2986fa-b040-92bd-9cd1-247b626abe28@redhat.com> References: <7f560b0a-d3a5-e5f0-0790-8efbe1962526@redhat.com> <98e17602-68c4-4ce7-d37b-ddcc1bbf87d0@redhat.com> <9ddafc69-9355-c6e0-e657-6e271e92624d@redhat.com> <1d2986fa-b040-92bd-9cd1-247b626abe28@redhat.com> Message-ID: <1b832411-f3ca-e6a6-8548-df82581a03ad@redhat.com> On 05/14/2018 10:21 PM, Zhengyu Gu wrote: > Wait. > > We also changed counts from int to size_t in > ShenandoahBarrierSet::write_ref_array_pre() > why dropped changes? This does not work in sh/jdk10, because the super-class BarrierSet defines them as ints: class BarrierSet: public CHeapObj { // Below length is the # array elements being written virtual void write_ref_array_pre(oop* dst, int length, bool dest_uninitialized = false) {} virtual void write_ref_array_pre(narrowOop* dst, int length, bool dest_uninitialized = false) {} -Aleksey From zgu at redhat.com Mon May 14 20:57:23 2018 From: zgu at redhat.com (Zhengyu Gu) Date: Mon, 14 May 2018 16:57:23 -0400 Subject: RFR: [10] Bulk backports to sh/jdk10 In-Reply-To: <1b832411-f3ca-e6a6-8548-df82581a03ad@redhat.com> References: <7f560b0a-d3a5-e5f0-0790-8efbe1962526@redhat.com> <98e17602-68c4-4ce7-d37b-ddcc1bbf87d0@redhat.com> <9ddafc69-9355-c6e0-e657-6e271e92624d@redhat.com> <1d2986fa-b040-92bd-9cd1-247b626abe28@redhat.com> <1b832411-f3ca-e6a6-8548-df82581a03ad@redhat.com> Message-ID: <2a06e92b-1f3e-d534-eb38-707eae3c9239@redhat.com> On 05/14/2018 04:47 PM, Aleksey Shipilev wrote: > On 05/14/2018 10:21 PM, Zhengyu Gu wrote: >> Wait. >> >> We also changed counts from int to size_t in >> ShenandoahBarrierSet::write_ref_array_pre() >> why dropped changes? > > This does not work in sh/jdk10, because the super-class BarrierSet defines them as ints: > > class BarrierSet: public CHeapObj { > > // Below length is the # array elements being written > virtual void write_ref_array_pre(oop* dst, int length, > bool dest_uninitialized = false) {} > virtual void write_ref_array_pre(narrowOop* dst, int length, > bool dest_uninitialized = false) {} Ah, Thanks! Thanks, -Zhengyu > > > -Aleksey > From zgu at redhat.com Mon May 14 20:58:53 2018 From: zgu at redhat.com (Zhengyu Gu) Date: Mon, 14 May 2018 16:58:53 -0400 Subject: RFR: [9] Bulk backports to sh/jdk9 In-Reply-To: <5918c667-08e7-2499-6eda-8b4b5d3a5854@redhat.com> References: <48a0e5fc-0629-ee9e-d936-8209e3ab2946@redhat.com> <5918c667-08e7-2499-6eda-8b4b5d3a5854@redhat.com> Message-ID: Good too. -Zhengyu On 05/14/2018 03:02 PM, Roman Kennke wrote: > Ok. Thank you!! > > Roman > > >> http://cr.openjdk.java.net/~shade/shenandoah/backports/jdk9-20180514/webrev.01/ >> >> This backports recent work to sh/jdk9: >> >> [backport] Several small aarch64 fixes >> [backport] Critical native tests should only be ran on x86_64 platforms >> [backport] Fix Minimal VM build >> [backport] Fixing Windows and ARM32 build >> [backport] Fix ShFreeSet boundary case >> [backport] Cleanup: removed unused code >> [backport] Rename ShenandoahConcurrentThread to ShenandoahControlThread >> [backport] Break heuristics out from ShCollectorPolicy into their own source files >> >> Testing: hotspot_gc_shenandoah {fastdebug|release} >> >> Thanks, >> -Aleksey >> > > From zgu at redhat.com Mon May 14 21:02:43 2018 From: zgu at redhat.com (Zhengyu Gu) Date: Mon, 14 May 2018 17:02:43 -0400 Subject: RFR: [8] Bulk backports to sh/jdk8 In-Reply-To: <68d0db69-fefa-6a66-4049-1ca8a29e0b6f@redhat.com> References: <48c77249-a827-36fc-65d3-f6866ee61286@redhat.com> <9df205ab-2280-c78a-3d71-506859963d13@redhat.com> <68d0db69-fefa-6a66-4049-1ca8a29e0b6f@redhat.com> Message-ID: <04d86f33-d8b1-3d43-48b3-4866e917e78a@redhat.com> Looks Good. Thanks, -Zhengyu On 05/14/2018 03:15 PM, Roman Kennke wrote: > Am 14.05.2018 um 21:10 schrieb Aleksey Shipilev: >> On 05/14/2018 09:05 PM, Roman Kennke wrote: >>> >>>> http://cr.openjdk.java.net/~shade/shenandoah/backports/jdk8u-20180514/webrev.01/ >>>> >>>> This backports recent work to sh/jdk8: >>>> >>>> [backport] Critical native tests should only be ran on x86_64 platforms >>>> [backport] Fix Minimal VM build >>>> [backport] Fixing Windows and ARM32 build >>>> [backport] Fix ShFreeSet boundary case >>>> [backport] Cleanup: removed unused code >>>> [backport] Rename ShenandoahConcurrentThread to ShenandoahControlThread >>>> [backport] Break heuristics out from ShCollectorPolicy into their own source files >>>> >>>> Testing: hotspot_gc_shenandoah {fastdebug|release} >>>> >>> >>> make/excludeSrc.make: >>> + >>> + Src_Files_EXCLUDE += \ >>> + shenandoahBarrierSet_x86.cpp >>> >>> Don't we want that for _aarch64 files too? >> >> Yes. Even though it only affects "minimal", which is 32-bit x86. But added anyway. >> > > Ah. Aha. Ok then! Thank you!! > Roman > > From shade at redhat.com Tue May 15 07:43:33 2018 From: shade at redhat.com (Aleksey Shipilev) Date: Tue, 15 May 2018 09:43:33 +0200 Subject: RFR: Incorrect label for static heuristics Message-ID: <0b936491-6ab8-0e21-50a4-03c785e33ff7@redhat.com> diff -r 60991f168696 -r afe2d5da989f src/hotspot/share/gc/shenandoah/heuristics/shenandoahStaticHeuristics.cpp --- a/src/hotspot/share/gc/shenandoah/heuristics/shenandoahStaticHeuristics.cpp Tue May 08 19:50:33 2018 +0200 +++ b/src/hotspot/share/gc/shenandoah/heuristics/shenandoahStaticHeuristics.cpp Tue May 15 09:43:04 2018 +0200 @@ -86,7 +86,7 @@ } const char* ShenandoahStaticHeuristics::name() { - return "dynamic"; + return "static"; } bool ShenandoahStaticHeuristics::is_diagnostic() { Thanks, -Aleksey From rkennke at redhat.com Tue May 15 08:04:15 2018 From: rkennke at redhat.com (Roman Kennke) Date: Tue, 15 May 2018 10:04:15 +0200 Subject: RFR: Incorrect label for static heuristics In-Reply-To: <0b936491-6ab8-0e21-50a4-03c785e33ff7@redhat.com> References: <0b936491-6ab8-0e21-50a4-03c785e33ff7@redhat.com> Message-ID: Sure. > diff -r 60991f168696 -r afe2d5da989f > src/hotspot/share/gc/shenandoah/heuristics/shenandoahStaticHeuristics.cpp > --- a/src/hotspot/share/gc/shenandoah/heuristics/shenandoahStaticHeuristics.cpp Tue May 08 19:50:33 > 2018 +0200 > +++ b/src/hotspot/share/gc/shenandoah/heuristics/shenandoahStaticHeuristics.cpp Tue May 15 09:43:04 > 2018 +0200 > @@ -86,7 +86,7 @@ > } > > const char* ShenandoahStaticHeuristics::name() { > - return "dynamic"; > + return "static"; > } > > bool ShenandoahStaticHeuristics::is_diagnostic() { > > Thanks, > -Aleksey > From ashipile at redhat.com Tue May 15 08:05:30 2018 From: ashipile at redhat.com (ashipile at redhat.com) Date: Tue, 15 May 2018 08:05:30 +0000 Subject: hg: shenandoah/jdk: Incorrect label for static heuristics Message-ID: <201805150805.w4F85USY023331@aojmv0008.oracle.com> Changeset: 3fe5b40799d7 Author: shade Date: 2018-05-15 09:43 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/3fe5b40799d7 Incorrect label for static heuristics ! src/hotspot/share/gc/shenandoah/heuristics/shenandoahStaticHeuristics.cpp From ashipile at redhat.com Tue May 15 08:09:42 2018 From: ashipile at redhat.com (ashipile at redhat.com) Date: Tue, 15 May 2018 08:09:42 +0000 Subject: hg: shenandoah/jdk8u/hotspot: 7 new changesets Message-ID: <201805150809.w4F89gZa024743@aojmv0008.oracle.com> Changeset: 214b76a215b6 Author: zgu Date: 2018-05-04 12:38 -0400 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/hotspot/rev/214b76a215b6 [backport] Critical native tests should only be ran on x86_64 platforms ! test/gc/shenandoah/CriticalNativeArgs.sh ! test/gc/shenandoah/CriticalNativeStress.sh Changeset: 3611fc247d92 Author: shade Date: 2018-05-07 12:00 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/hotspot/rev/3611fc247d92 [backport] Fix Minimal VM build ! make/excludeSrc.make ! src/cpu/aarch64/vm/c1_LIRAssembler_aarch64.cpp ! src/cpu/aarch64/vm/c1_LIRGenerator_aarch64.cpp ! src/cpu/x86/vm/c1_LIRAssembler_x86.cpp ! src/cpu/x86/vm/c1_LIRGenerator_x86.cpp ! src/cpu/x86/vm/macroAssembler_x86.cpp ! src/cpu/x86/vm/macroAssembler_x86.hpp ! src/share/vm/c1/c1_LIR.cpp ! src/share/vm/c1/c1_LIR.hpp ! src/share/vm/c1/c1_LIRAssembler.hpp ! src/share/vm/c1/c1_LIRGenerator.cpp ! src/share/vm/c1/c1_LIRGenerator.hpp ! src/share/vm/gc_implementation/shenandoah/shenandoah_globals.hpp ! src/share/vm/oops/oopsHierarchy.hpp ! src/share/vm/prims/unsafe.cpp ! src/share/vm/runtime/arguments.cpp ! src/share/vm/runtime/globals.hpp ! src/share/vm/runtime/thread.cpp ! src/share/vm/runtime/thread.inline.hpp Changeset: 8f1dd760b9b3 Author: zgu Date: 2018-05-08 09:02 -0400 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/hotspot/rev/8f1dd760b9b3 [backport] Fixing Windows and ARM32 build ! src/share/vm/gc_implementation/shenandoah/shenandoahBarrierSet.cpp ! src/share/vm/gc_implementation/shenandoah/shenandoahBarrierSet.hpp ! src/share/vm/gc_implementation/shenandoah/shenandoahHeap.inline.hpp ! src/share/vm/gc_implementation/shenandoah/shenandoahMarkCompact.cpp ! src/share/vm/gc_implementation/shenandoah/shenandoahVerifier.cpp Changeset: 4f0ac2195163 Author: rkennke Date: 2018-05-11 15:56 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/hotspot/rev/4f0ac2195163 [backport] Fix ShFreeSet boundary case ! src/share/vm/gc_implementation/shenandoah/shenandoahFreeSet.cpp Changeset: ad179b682d55 Author: zgu Date: 2018-05-11 16:44 -0400 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/hotspot/rev/ad179b682d55 [backport] Cleanup: removed unused code ! src/share/vm/gc_implementation/shenandoah/shenandoahRootProcessor.cpp ! src/share/vm/gc_implementation/shenandoah/shenandoahRootProcessor.hpp Changeset: 643ed10b1e4e Author: shade Date: 2018-05-15 10:09 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/hotspot/rev/643ed10b1e4e [backport] Rename ShenandoahConcurrentThread to ShenandoahControlThread - src/share/vm/gc_implementation/shenandoah/shenandoahConcurrentThread.cpp - src/share/vm/gc_implementation/shenandoah/shenandoahConcurrentThread.hpp + src/share/vm/gc_implementation/shenandoah/shenandoahControlThread.cpp + src/share/vm/gc_implementation/shenandoah/shenandoahControlThread.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/runtime/thread.cpp Changeset: 773ac3fb48ab Author: rkennke Date: 2018-05-08 19:50 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/hotspot/rev/773ac3fb48ab [backport] Break heuristics out from ShCollectorPolicy into their own source files + 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/shenandoahAggressiveHeuristics.hpp + src/share/vm/gc_implementation/shenandoah/heuristics/shenandoahCompactHeuristics.cpp + src/share/vm/gc_implementation/shenandoah/heuristics/shenandoahCompactHeuristics.hpp + 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/heuristics/shenandoahStaticHeuristics.hpp ! src/share/vm/gc_implementation/shenandoah/shenandoahCollectorPolicy.cpp ! src/share/vm/gc_implementation/shenandoah/shenandoahCollectorPolicy.hpp + src/share/vm/gc_implementation/shenandoah/shenandoahHeuristics.cpp + src/share/vm/gc_implementation/shenandoah/shenandoahHeuristics.hpp From ashipile at redhat.com Tue May 15 08:11:45 2018 From: ashipile at redhat.com (ashipile at redhat.com) Date: Tue, 15 May 2018 08:11:45 +0000 Subject: hg: shenandoah/jdk9/hotspot: 8 new changesets Message-ID: <201805150811.w4F8Bjwr025759@aojmv0008.oracle.com> Changeset: 1bbe725be81a Author: rkennke Date: 2018-05-04 09:45 -0400 URL: http://hg.openjdk.java.net/shenandoah/jdk9/hotspot/rev/1bbe725be81a [backport] Several small aarch64 fixes ! src/cpu/aarch64/vm/c1_Runtime1_aarch64.cpp Changeset: eeac97261977 Author: zgu Date: 2018-05-04 12:38 -0400 URL: http://hg.openjdk.java.net/shenandoah/jdk9/hotspot/rev/eeac97261977 [backport] Critical native tests should only be ran on x86_64 platforms ! test/gc/shenandoah/CriticalNativeArgs.java ! test/gc/shenandoah/CriticalNativeStress.java Changeset: 6fa6ea509f52 Author: shade Date: 2018-05-07 12:00 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk9/hotspot/rev/6fa6ea509f52 [backport] Fix Minimal VM build ! make/lib/JvmFeatures.gmk ! src/cpu/aarch64/vm/c1_LIRAssembler_aarch64.cpp ! src/cpu/aarch64/vm/c1_LIRGenerator_aarch64.cpp ! src/cpu/x86/vm/c1_LIRAssembler_x86.cpp ! src/cpu/x86/vm/c1_LIRGenerator_x86.cpp ! src/cpu/x86/vm/macroAssembler_x86.cpp ! src/cpu/x86/vm/macroAssembler_x86.hpp ! src/share/vm/c1/c1_LIR.cpp ! src/share/vm/c1/c1_LIR.hpp ! src/share/vm/c1/c1_LIRAssembler.hpp ! src/share/vm/c1/c1_LIRGenerator.cpp ! src/share/vm/c1/c1_LIRGenerator.hpp ! src/share/vm/gc/shenandoah/shenandoah_globals.hpp ! src/share/vm/memory/universe.cpp ! src/share/vm/oops/oopsHierarchy.hpp ! src/share/vm/prims/unsafe.cpp ! src/share/vm/runtime/arguments.cpp ! src/share/vm/runtime/globals.hpp ! src/share/vm/runtime/thread.inline.hpp Changeset: 86ea74664299 Author: zgu Date: 2018-05-08 09:02 -0400 URL: http://hg.openjdk.java.net/shenandoah/jdk9/hotspot/rev/86ea74664299 [backport] Fixing Windows and ARM32 build ! src/share/vm/gc/shenandoah/shenandoahBarrierSet.cpp ! src/share/vm/gc/shenandoah/shenandoahBarrierSet.hpp ! src/share/vm/gc/shenandoah/shenandoahHeap.inline.hpp ! src/share/vm/gc/shenandoah/shenandoahMarkCompact.cpp ! src/share/vm/gc/shenandoah/shenandoahVerifier.cpp Changeset: 179f9dfed570 Author: rkennke Date: 2018-05-11 15:56 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk9/hotspot/rev/179f9dfed570 [backport] Fix ShFreeSet boundary case ! src/share/vm/gc/shenandoah/shenandoahFreeSet.cpp Changeset: 6620cf85c682 Author: zgu Date: 2018-05-11 16:44 -0400 URL: http://hg.openjdk.java.net/shenandoah/jdk9/hotspot/rev/6620cf85c682 [backport] Cleanup: removed unused code ! src/share/vm/gc/shenandoah/shenandoahRootProcessor.cpp ! src/share/vm/gc/shenandoah/shenandoahRootProcessor.hpp Changeset: aaa0a3b548b4 Author: shade Date: 2018-05-15 10:11 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk9/hotspot/rev/aaa0a3b548b4 [backport] Rename ShenandoahConcurrentThread to ShenandoahControlThread - src/share/vm/gc/shenandoah/shenandoahConcurrentThread.cpp - src/share/vm/gc/shenandoah/shenandoahConcurrentThread.hpp + src/share/vm/gc/shenandoah/shenandoahControlThread.cpp + src/share/vm/gc/shenandoah/shenandoahControlThread.hpp ! src/share/vm/gc/shenandoah/shenandoahHeap.cpp ! src/share/vm/gc/shenandoah/shenandoahHeap.hpp ! src/share/vm/gc/shenandoah/shenandoahHeap.inline.hpp ! src/share/vm/runtime/safepoint.cpp ! src/share/vm/runtime/thread.cpp Changeset: 0f4dc1c2a410 Author: rkennke Date: 2018-05-08 19:50 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk9/hotspot/rev/0f4dc1c2a410 [backport] Break heuristics out from ShCollectorPolicy into their own source files + src/share/vm/gc/shenandoah/heuristics/shenandoahAdaptiveHeuristics.cpp + src/share/vm/gc/shenandoah/heuristics/shenandoahAdaptiveHeuristics.hpp + src/share/vm/gc/shenandoah/heuristics/shenandoahAggressiveHeuristics.cpp + src/share/vm/gc/shenandoah/heuristics/shenandoahAggressiveHeuristics.hpp + src/share/vm/gc/shenandoah/heuristics/shenandoahCompactHeuristics.cpp + src/share/vm/gc/shenandoah/heuristics/shenandoahCompactHeuristics.hpp + src/share/vm/gc/shenandoah/heuristics/shenandoahPassiveHeuristics.cpp + src/share/vm/gc/shenandoah/heuristics/shenandoahPassiveHeuristics.hpp + src/share/vm/gc/shenandoah/heuristics/shenandoahStaticHeuristics.cpp + src/share/vm/gc/shenandoah/heuristics/shenandoahStaticHeuristics.hpp ! src/share/vm/gc/shenandoah/shenandoahCollectorPolicy.cpp + src/share/vm/gc/shenandoah/shenandoahHeuristics.cpp + src/share/vm/gc/shenandoah/shenandoahHeuristics.hpp From ashipile at redhat.com Tue May 15 08:13:32 2018 From: ashipile at redhat.com (ashipile at redhat.com) Date: Tue, 15 May 2018 08:13:32 +0000 Subject: hg: shenandoah/jdk10: 9 new changesets Message-ID: <201805150813.w4F8DYYd026505@aojmv0008.oracle.com> Changeset: f27ea06da38f Author: rkennke Date: 2018-05-04 09:45 -0400 URL: http://hg.openjdk.java.net/shenandoah/jdk10/rev/f27ea06da38f [backport] Several small aarch64 fixes ! src/hotspot/cpu/aarch64/c1_Runtime1_aarch64.cpp ! src/hotspot/cpu/aarch64/stubGenerator_aarch64.cpp Changeset: 2d719d35758d Author: zgu Date: 2018-05-04 12:38 -0400 URL: http://hg.openjdk.java.net/shenandoah/jdk10/rev/2d719d35758d [backport] Critical native tests should only be ran on x86_64 platforms ! test/hotspot/jtreg/gc/shenandoah/CriticalNativeArgs.java ! test/hotspot/jtreg/gc/shenandoah/CriticalNativeStress.java Changeset: e5464bfd3b9f Author: rkennke Date: 2018-05-07 10:25 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk10/rev/e5464bfd3b9f [backport] Remove debug messages in BitMap::copy_from() ! src/hotspot/share/utilities/bitMap.cpp Changeset: 4051573468ea Author: shade Date: 2018-05-07 12:00 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk10/rev/4051573468ea [backport] Fix Minimal VM build ! make/hotspot/lib/JvmFeatures.gmk ! src/hotspot/cpu/aarch64/c1_LIRAssembler_aarch64.cpp ! src/hotspot/cpu/aarch64/c1_LIRGenerator_aarch64.cpp ! src/hotspot/cpu/x86/c1_LIRAssembler_x86.cpp ! src/hotspot/cpu/x86/c1_LIRGenerator_x86.cpp ! src/hotspot/cpu/x86/macroAssembler_x86.cpp ! src/hotspot/cpu/x86/macroAssembler_x86.hpp ! src/hotspot/share/c1/c1_LIR.cpp ! src/hotspot/share/c1/c1_LIR.hpp ! src/hotspot/share/c1/c1_LIRAssembler.hpp ! 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/shenandoah_globals.hpp ! src/hotspot/share/oops/oopsHierarchy.hpp ! src/hotspot/share/runtime/globals.hpp ! src/hotspot/share/runtime/os.cpp ! src/hotspot/share/runtime/sharedRuntime.cpp ! src/hotspot/share/runtime/thread.inline.hpp Changeset: 35adb6dc18b8 Author: zgu Date: 2018-05-08 09:02 -0400 URL: http://hg.openjdk.java.net/shenandoah/jdk10/rev/35adb6dc18b8 [backport] Fixing Windows and ARM32 build ! 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/shenandoahHeap.cpp ! src/hotspot/share/gc/shenandoah/shenandoahHeap.inline.hpp ! src/hotspot/share/gc/shenandoah/shenandoahMarkCompact.cpp ! src/hotspot/share/gc/shenandoah/shenandoahVerifier.cpp Changeset: b9903d05fa5a Author: rkennke Date: 2018-05-11 15:56 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk10/rev/b9903d05fa5a [backport] Fix ShFreeSet boundary case ! src/hotspot/share/gc/shenandoah/shenandoahFreeSet.cpp Changeset: 078233f596be Author: zgu Date: 2018-05-11 16:44 -0400 URL: http://hg.openjdk.java.net/shenandoah/jdk10/rev/078233f596be [backport] Cleanup: removed unused code ! src/hotspot/share/gc/shenandoah/shenandoahRootProcessor.cpp ! src/hotspot/share/gc/shenandoah/shenandoahRootProcessor.hpp ! src/hotspot/share/gc/shenandoah/shenandoahTraversalGC.cpp Changeset: ff220c850c00 Author: shade Date: 2018-05-15 10:13 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk10/rev/ff220c850c00 [backport] Rename ShenandoahConcurrentThread to ShenandoahControlThread - src/hotspot/share/gc/shenandoah/shenandoahConcurrentThread.cpp - src/hotspot/share/gc/shenandoah/shenandoahConcurrentThread.hpp + src/hotspot/share/gc/shenandoah/shenandoahControlThread.cpp + src/hotspot/share/gc/shenandoah/shenandoahControlThread.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/runtime/thread.cpp Changeset: 0682cf1f4bb7 Author: rkennke Date: 2018-05-08 19:50 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk10/rev/0682cf1f4bb7 [backport] Break heuristics out from ShCollectorPolicy into their own source files + 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/shenandoahAggressiveHeuristics.hpp + src/hotspot/share/gc/shenandoah/heuristics/shenandoahCompactHeuristics.cpp + src/hotspot/share/gc/shenandoah/heuristics/shenandoahCompactHeuristics.hpp + 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/shenandoahPassiveHeuristics.hpp + src/hotspot/share/gc/shenandoah/heuristics/shenandoahStaticHeuristics.cpp + src/hotspot/share/gc/shenandoah/heuristics/shenandoahStaticHeuristics.hpp + src/hotspot/share/gc/shenandoah/heuristics/shenandoahTraversalHeuristics.cpp + src/hotspot/share/gc/shenandoah/heuristics/shenandoahTraversalHeuristics.hpp ! src/hotspot/share/gc/shenandoah/shenandoahCollectorPolicy.cpp ! src/hotspot/share/gc/shenandoah/shenandoahHeapRegion.hpp + src/hotspot/share/gc/shenandoah/shenandoahHeuristics.cpp + src/hotspot/share/gc/shenandoah/shenandoahHeuristics.hpp From shade at redhat.com Tue May 15 11:57:03 2018 From: shade at redhat.com (Aleksey Shipilev) Date: Tue, 15 May 2018 13:57:03 +0200 Subject: RFR: [8] Fix AArch64 build failure: misplaced #endif Message-ID: diff -r 773ac3fb48ab src/cpu/aarch64/vm/c1_LIRAssembler_aarch64.cpp --- a/src/cpu/aarch64/vm/c1_LIRAssembler_aarch64.cpp Tue May 08 19:50:33 2018 +0200 +++ b/src/cpu/aarch64/vm/c1_LIRAssembler_aarch64.cpp Tue May 15 13:56:19 2018 +0200 @@ -969,7 +969,6 @@ stack2reg(src, temp, src->type()); reg2stack(temp, dest, dest->type(), false); } -#endif void LIR_Assembler::mem2reg(LIR_Opr src, LIR_Opr dest, BasicType type, LIR_PatchCode patch_code, CodeEmitInfo* info, bool wide, bool /* unaligned */) { LIR_Address* addr = src->as_address_ptr(); @@ -1180,7 +1179,7 @@ __ block_comment("} Shenandoah write barrier"); } - +#endif void LIR_Assembler::emit_opConvert(LIR_OpConvert* op) { LIR_Opr src = op->in_opr(); Testing: x86 minimal1 build, aarch64 build Thanks, -Aleksey From rkennke at redhat.com Tue May 15 12:11:15 2018 From: rkennke at redhat.com (Roman Kennke) Date: Tue, 15 May 2018 14:11:15 +0200 Subject: RFR: [8] Fix AArch64 build failure: misplaced #endif In-Reply-To: References: Message-ID: <58C32CA9-D4C2-4FC2-9B49-6B662EBB90AD@redhat.com> OK. Thanks! Am 15. Mai 2018 13:57:03 MESZ schrieb Aleksey Shipilev : >diff -r 773ac3fb48ab src/cpu/aarch64/vm/c1_LIRAssembler_aarch64.cpp >--- a/src/cpu/aarch64/vm/c1_LIRAssembler_aarch64.cpp Tue May 08 >19:50:33 2018 +0200 >+++ b/src/cpu/aarch64/vm/c1_LIRAssembler_aarch64.cpp Tue May 15 >13:56:19 2018 +0200 >@@ -969,7 +969,6 @@ > stack2reg(src, temp, src->type()); > reg2stack(temp, dest, dest->type(), false); > } >-#endif > >void LIR_Assembler::mem2reg(LIR_Opr src, LIR_Opr dest, BasicType type, >LIR_PatchCode patch_code, >CodeEmitInfo* info, bool wide, bool /* unaligned */) { > LIR_Address* addr = src->as_address_ptr(); >@@ -1180,7 +1179,7 @@ > __ block_comment("} Shenandoah write barrier"); > > } >- >+#endif > > void LIR_Assembler::emit_opConvert(LIR_OpConvert* op) { > LIR_Opr src = op->in_opr(); > > >Testing: x86 minimal1 build, aarch64 build > >Thanks, >-Aleksey -- Diese Nachricht wurde von meinem Android-Ger?t mit K-9 Mail gesendet. From ashipile at redhat.com Tue May 15 12:12:57 2018 From: ashipile at redhat.com (ashipile at redhat.com) Date: Tue, 15 May 2018 12:12:57 +0000 Subject: hg: shenandoah/jdk8u/hotspot: Fix AArch64 build failure: misplaced #endif Message-ID: <201805151212.w4FCCv5j000647@aojmv0008.oracle.com> Changeset: e3405fdb7fab Author: shade Date: 2018-05-15 13:56 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/hotspot/rev/e3405fdb7fab Fix AArch64 build failure: misplaced #endif ! src/cpu/aarch64/vm/c1_LIRAssembler_aarch64.cpp From shade at redhat.com Tue May 15 16:46:52 2018 From: shade at redhat.com (Aleksey Shipilev) Date: Tue, 15 May 2018 18:46:52 +0200 Subject: RFR: Rename "cancel_concgc" to "cancel_gc" Message-ID: <4b2d22d0-8bb3-41da-80d2-540a6c11e9c5@redhat.com> http://cr.openjdk.java.net/~shade/shenandoah/rename-cancel/webrev.01/ It always irks me to see "Cancel concurrent GC" from Degenerated -> Full GC upgrade. Testing: hotspot_gc_shenandoah, eyeballing -Xlog:gc Thanks, -Aleksey From rkennke at redhat.com Tue May 15 16:58:22 2018 From: rkennke at redhat.com (Roman Kennke) Date: Tue, 15 May 2018 18:58:22 +0200 Subject: RFR: Rename "cancel_concgc" to "cancel_gc" In-Reply-To: <4b2d22d0-8bb3-41da-80d2-540a6c11e9c5@redhat.com> References: <4b2d22d0-8bb3-41da-80d2-540a6c11e9c5@redhat.com> Message-ID: <489e7a94-986a-b842-fe93-332cf74cd814@redhat.com> Am 15.05.2018 um 18:46 schrieb Aleksey Shipilev: > http://cr.openjdk.java.net/~shade/shenandoah/rename-cancel/webrev.01/ > > It always irks me to see "Cancel concurrent GC" from Degenerated -> Full GC upgrade. > > Testing: hotspot_gc_shenandoah, eyeballing -Xlog:gc > > Thanks, > -Aleksey > This makes sense. Go! Roman From rkennke at redhat.com Tue May 15 21:03:44 2018 From: rkennke at redhat.com (Roman Kennke) Date: Tue, 15 May 2018 23:03:44 +0200 Subject: RFR: Fix PLAB alignment reserve Message-ID: <431cc525-e8f7-0797-655d-72455d560cc5@redhat.com> The setup of AlignmentReserve in PLAB is not quite right for Shenandoah: when oop-header-size > MinObjAlignment then it is set to header size of int array or Shenandoah's forced min-aligment, otherwise 0. However, if header-size == MinObjAligment, then it's set to 0. This doesn't fit because we need an extra word. I changed the logic to compute this to take Shenandoah's extra word into account, and this way we also don't need to force a min_align_reserve for Shenandoah. Passes previously (sometimes) failing LargeObjectAligment test as well as all hotspot_gc_shenandoah tests in fastdebug. http://cr.openjdk.java.net/~rkennke/fixplabalign/webrev.01/ Ok? From shade at redhat.com Tue May 15 21:13:33 2018 From: shade at redhat.com (Aleksey Shipilev) Date: Tue, 15 May 2018 23:13:33 +0200 Subject: RFR: Fix PLAB alignment reserve In-Reply-To: <431cc525-e8f7-0797-655d-72455d560cc5@redhat.com> References: <431cc525-e8f7-0797-655d-72455d560cc5@redhat.com> Message-ID: <97e99660-c3a3-9676-ffca-9d387e1b819b@redhat.com> On 05/15/2018 11:03 PM, Roman Kennke wrote: > The setup of AlignmentReserve in PLAB is not quite right for Shenandoah: > when oop-header-size > MinObjAlignment then it is set to header size of > int array or Shenandoah's forced min-aligment, otherwise 0. However, if > header-size == MinObjAligment, then it's set to 0. This doesn't fit > because we need an extra word. I changed the logic to compute this to > take Shenandoah's extra word into account, and this way we also don't > need to force a min_align_reserve for Shenandoah. > > Passes previously (sometimes) failing LargeObjectAligment test as well > as all hotspot_gc_shenandoah tests in fastdebug. > > http://cr.openjdk.java.net/~rkennke/fixplabalign/webrev.01/ OK, but do a few formatting changes before pushing: *) Break out ternary statement, maybe: int rsv_regular = oopDesc::header_size() + (int) Universe::heap()->oop_extra_words(); int rsv_array = align_object_size(arrayOopDesc::header_size(T_INT) + Universe::heap()->oop_extra_words()); AlignmentReserve = rsv_regular > MinObjAlignment ? rsv_array : 0; *) New line in assert: assert(_hard_end - _top >= oopDesc::header_size() + Universe::heap()->oop_extra_words(), "better have enough space left to fill with dummy"); Otherwise good! Thanks for fixing this. -Aleksey From roman at kennke.org Tue May 15 22:17:13 2018 From: roman at kennke.org (roman at kennke.org) Date: Tue, 15 May 2018 22:17:13 +0000 Subject: hg: shenandoah/jdk: Fix PLAB alignment reserve Message-ID: <201805152217.w4FMHDVY019090@aojmv0008.oracle.com> Changeset: 58708ff8795b Author: rkennke Date: 2018-05-16 00:16 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/58708ff8795b Fix PLAB alignment reserve ! src/hotspot/share/gc/shared/plab.cpp ! src/hotspot/share/gc/shared/plab.hpp ! src/hotspot/share/gc/shenandoah/shenandoahThreadLocalData.hpp From ashipile at redhat.com Wed May 16 07:18:35 2018 From: ashipile at redhat.com (ashipile at redhat.com) Date: Wed, 16 May 2018 07:18:35 +0000 Subject: hg: shenandoah/jdk: Rename "cancel_concgc" to "cancel_gc" Message-ID: <201805160718.w4G7IZHb021493@aojmv0008.oracle.com> Changeset: d136c3d3b5c7 Author: shade Date: 2018-05-16 08:44 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/d136c3d3b5c7 Rename "cancel_concgc" to "cancel_gc" ! 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/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/shenandoahTraversalGC.cpp ! src/hotspot/share/gc/shenandoah/shenandoahTraversalGC.inline.hpp From rkennke at redhat.com Wed May 16 14:20:27 2018 From: rkennke at redhat.com (Roman Kennke) Date: Wed, 16 May 2018 16:20:27 +0200 Subject: RFR: Move heuristics from ShCollectorPolicy to ShHeap Message-ID: <265f2bca-dd2e-e2e9-fcf2-da2cf43352a7@redhat.com> Another refactoring in preparation of interleaving GC. It moves the _heuristics out of ShCollectorPolicy and into ShHeap and (somewhat) decouples heuristics from ShCollectorPolicy. The reasoning behind this is that for interleaving minor/major GC I plan to put a bunch of stuff into a 'context': control-thread, heuristics, workers, cset, fset, and probably some more. Each context will work somewhat independently on some part of the heap (e.g. young vs. old gen). There will be one heuristic per context, but there will only be one CollectorPolicy per GC. ShenandoahCollectorPolicy should eventually become a pure implementation for CollectorPolicy and nothing else. Also note that ShHeap is only a temporary home for the heuristics, they will eventually go to the context class. The point of this patch is to decouple heuristics from ShCollectorPolicy. All the should* and can* methods are now called directly without hopping through ShCollectorPolicy. However, all the record* methods remain in the policy for now. I am not sure yet what to do with them: we may want to call them per-context (e.g. a context recording only its own GC activity) or globally (e.g. for stats) or both. I need to think this through when I do the multi-context stuff. http://cr.openjdk.java.net/~rkennke/heuristics-refactoring/webrev.00/ Passes hotspot_gc_shenandoah Ok? Roman From rkennke at redhat.com Wed May 16 14:44:47 2018 From: rkennke at redhat.com (Roman Kennke) Date: Wed, 16 May 2018 16:44:47 +0200 Subject: RFR: Move heuristics from ShCollectorPolicy to ShHeap In-Reply-To: <265f2bca-dd2e-e2e9-fcf2-da2cf43352a7@redhat.com> References: <265f2bca-dd2e-e2e9-fcf2-da2cf43352a7@redhat.com> Message-ID: Hold on with review. I'm going to extend it to completely decouple policy and heuristics. Roman > Another refactoring in preparation of interleaving GC. It moves the > _heuristics out of ShCollectorPolicy and into ShHeap and (somewhat) > decouples heuristics from ShCollectorPolicy. > > The reasoning behind this is that for interleaving minor/major GC I plan > to put a bunch of stuff into a 'context': control-thread, heuristics, > workers, cset, fset, and probably some more. Each context will work > somewhat independently on some part of the heap (e.g. young vs. old > gen). There will be one heuristic per context, but there will only be > one CollectorPolicy per GC. ShenandoahCollectorPolicy should eventually > become a pure implementation for CollectorPolicy and nothing else. Also > note that ShHeap is only a temporary home for the heuristics, they will > eventually go to the context class. The point of this patch is to > decouple heuristics from ShCollectorPolicy. > > All the should* and can* methods are now called directly without hopping > through ShCollectorPolicy. However, all the record* methods remain in > the policy for now. I am not sure yet what to do with them: we may want > to call them per-context (e.g. a context recording only its own GC > activity) or globally (e.g. for stats) or both. I need to think this > through when I do the multi-context stuff. > > http://cr.openjdk.java.net/~rkennke/heuristics-refactoring/webrev.00/ > > Passes hotspot_gc_shenandoah > > Ok? > > Roman > From shade at redhat.com Wed May 16 14:46:16 2018 From: shade at redhat.com (Aleksey Shipilev) Date: Wed, 16 May 2018 16:46:16 +0200 Subject: RFR: Move heuristics from ShCollectorPolicy to ShHeap In-Reply-To: <265f2bca-dd2e-e2e9-fcf2-da2cf43352a7@redhat.com> References: <265f2bca-dd2e-e2e9-fcf2-da2cf43352a7@redhat.com> Message-ID: <69afa088-d21d-2f2b-24a7-7a4b440e8bae@redhat.com> On 05/16/2018 04:20 PM, Roman Kennke wrote: > All the should* and can* methods are now called directly without hopping > through ShCollectorPolicy. However, all the record* methods remain in > the policy for now. I am not sure yet what to do with them: we may want > to call them per-context (e.g. a context recording only its own GC > activity) or globally (e.g. for stats) or both. I need to think this > through when I do the multi-context stuff. > > http://cr.openjdk.java.net/~rkennke/heuristics-refactoring/webrev.00/ I like the way it goes, but my problem with this move is that we would need to shuffle this code twice: 1) ShCollectorPolicy -> ShHeap; 2) ShHeap -> Sh*Context. Which is fine for sh/jdk, but really gives headaches during backports. So, I would rather prefer to make a single move to Sh*Context, when time comes. Is that doable? -Aleksey From rkennke at redhat.com Wed May 16 14:49:28 2018 From: rkennke at redhat.com (Roman Kennke) Date: Wed, 16 May 2018 16:49:28 +0200 Subject: RFR: Move heuristics from ShCollectorPolicy to ShHeap In-Reply-To: <69afa088-d21d-2f2b-24a7-7a4b440e8bae@redhat.com> References: <265f2bca-dd2e-e2e9-fcf2-da2cf43352a7@redhat.com> <69afa088-d21d-2f2b-24a7-7a4b440e8bae@redhat.com> Message-ID: Am 16.05.2018 um 16:46 schrieb Aleksey Shipilev: > On 05/16/2018 04:20 PM, Roman Kennke wrote: >> All the should* and can* methods are now called directly without hopping >> through ShCollectorPolicy. However, all the record* methods remain in >> the policy for now. I am not sure yet what to do with them: we may want >> to call them per-context (e.g. a context recording only its own GC >> activity) or globally (e.g. for stats) or both. I need to think this >> through when I do the multi-context stuff. >> >> http://cr.openjdk.java.net/~rkennke/heuristics-refactoring/webrev.00/ > > I like the way it goes, but my problem with this move is that we would need to shuffle this code > twice: 1) ShCollectorPolicy -> ShHeap; 2) ShHeap -> Sh*Context. Which is fine for sh/jdk, but really > gives headaches during backports. So, I would rather prefer to make a single move to Sh*Context, > when time comes. Is that doable? Sure. But this will pull in more moving-around of other stuff. I was thinking to take smaller, more manageable steps instead :-) Also: not sure we want the multi-context stuff in backports? Roman From rkennke at redhat.com Wed May 16 15:19:20 2018 From: rkennke at redhat.com (Roman Kennke) Date: Wed, 16 May 2018 17:19:20 +0200 Subject: RFR: Move heuristics from ShCollectorPolicy to ShHeap In-Reply-To: References: <265f2bca-dd2e-e2e9-fcf2-da2cf43352a7@redhat.com> Message-ID: I simply spliced all the calls to policy that also called to heuristics into two calls: policy+heuristics or changed to heuristics call for cases where policy did not do anything. Remaining record* stuff in policy should probably be moved into a separate ShenandoahStats class or such. Differential: http://cr.openjdk.java.net/~rkennke/heuristics-refactoring/webrev.01.diff/ Full: http://cr.openjdk.java.net/~rkennke/heuristics-refactoring/webrev.01/ I can hold it back and fold into the bigger multi-context picture, or push it separately. Whatever you prefer. Roman > Hold on with review. I'm going to extend it to completely decouple > policy and heuristics. > > Roman > >> Another refactoring in preparation of interleaving GC. It moves the >> _heuristics out of ShCollectorPolicy and into ShHeap and (somewhat) >> decouples heuristics from ShCollectorPolicy. >> >> The reasoning behind this is that for interleaving minor/major GC I plan >> to put a bunch of stuff into a 'context': control-thread, heuristics, >> workers, cset, fset, and probably some more. Each context will work >> somewhat independently on some part of the heap (e.g. young vs. old >> gen). There will be one heuristic per context, but there will only be >> one CollectorPolicy per GC. ShenandoahCollectorPolicy should eventually >> become a pure implementation for CollectorPolicy and nothing else. Also >> note that ShHeap is only a temporary home for the heuristics, they will >> eventually go to the context class. The point of this patch is to >> decouple heuristics from ShCollectorPolicy. >> >> All the should* and can* methods are now called directly without hopping >> through ShCollectorPolicy. However, all the record* methods remain in >> the policy for now. I am not sure yet what to do with them: we may want >> to call them per-context (e.g. a context recording only its own GC >> activity) or globally (e.g. for stats) or both. I need to think this >> through when I do the multi-context stuff. >> >> http://cr.openjdk.java.net/~rkennke/heuristics-refactoring/webrev.00/ >> >> Passes hotspot_gc_shenandoah >> >> Ok? >> >> Roman >> > > From shade at redhat.com Wed May 16 16:26:23 2018 From: shade at redhat.com (Aleksey Shipilev) Date: Wed, 16 May 2018 18:26:23 +0200 Subject: RFR: Move heuristics from ShCollectorPolicy to ShHeap In-Reply-To: References: <265f2bca-dd2e-e2e9-fcf2-da2cf43352a7@redhat.com> Message-ID: On 05/16/2018 05:19 PM, Roman Kennke wrote: > I simply spliced all the calls to policy that also called to heuristics > into two calls: policy+heuristics or changed to heuristics call for > cases where policy did not do anything. > > Remaining record* stuff in policy should probably be moved into a > separate ShenandoahStats class or such. > > Differential: > http://cr.openjdk.java.net/~rkennke/heuristics-refactoring/webrev.01.diff/ > Full: > http://cr.openjdk.java.net/~rkennke/heuristics-refactoring/webrev.01/ Looks OK. Have somebody else eyeball this, because I cannot trust my eyes anymore today. Or wait for tomorrow. > I can hold it back and fold into the bigger multi-context picture, or > push it separately. Whatever you prefer. On the second thought, it does not make my life significantly more complicated to have this splicing committed and backported. We wanted to do this for some time anyway Thanks, -Aleksey From shade at redhat.com Wed May 16 16:53:16 2018 From: shade at redhat.com (Aleksey Shipilev) Date: Wed, 16 May 2018 18:53:16 +0200 Subject: RFR: Verifier should dump raw memory around the problematic oops Message-ID: When Verifier fails with broken oop, it is useful to see where the memory actually points. This helps to catch off-by-one errors, see for example off-by-one error that points to fwdptr slot, not to object header: ---------- 8< ----------------------------------------------------------------------------- # A fatal error has been detected by the Java Runtime Environment: # # Internal Error (/home/shade/trunks/shenandoah-jdk/src/hotspot/share/gc/shenandoah/shenandoahVerifier.cpp:62), pid=41615, tid=41622 # Error: Before Updating References, Marked; Object klass pointer must go to metaspace Referenced from: no interior location recorded (probably a plain heap scan, or detached oop) Object: 0x00000000fb8813c0 - safe print, no details region: | 1905|R |BTE fb880000, fb8ffea0, fb900000|TAMS fb880000, fb880000|U 99%|T 0%|G 89%|S 10%|L 99%| |CP 0|SN 0, 0, 9634, 96f6 Raw heap memory: 0x00000000fb881390: 00000000 00000000 00000000 00000000 0x00000000fb8813a0: 00000000 00000000 00000000 00000000 0x00000000fb8813c0: 00000000 00000000 fb8813d0 00000000 0x00000000fb8813d0: 00000005 00000000 20002645 00000c44 0x00000000fb8813e0: baadbabe baadbabe fb8813f0 00000000 0x00000000fb8813f0: 00000005 00000000 20002645 00000c45 0x00000000fb881400: baadbabe baadbabe fb881410 00000000 0x00000000fb881410: 00000005 00000000 20002645 00000c46 0x00000000fb881420: baadbabe baadbabe fb881430 00000000 0x00000000fb881430: 00000005 00000000 20002645 00000c47 ---------- 8< ----------------------------------------------------------------------------- Thanks, -Aleksey [0] diff -r d136c3d3b5c7 src/hotspot/share/gc/shenandoah/shenandoahAsserts.cpp --- a/src/hotspot/share/gc/shenandoah/shenandoahAsserts.cpp Wed May 16 08:44:23 2018 +0200 +++ b/src/hotspot/share/gc/shenandoah/shenandoahAsserts.cpp Wed May 16 18:47:58 2018 +0200 @@ -32,6 +32,27 @@ #include "gc/shenandoah/shenandoahTraversalGC.hpp" #include "memory/resourceArea.hpp" +void print_raw_memory(ShenandoahMessageBuffer &msg, void* loc) { + // Be extra safe. Only access data that is guaranteed to be safe: + // should be in heap, in known committed region, within that region. + + ShenandoahHeap* heap = ShenandoahHeap::heap(); + if (!heap->is_in(loc)) return; + + ShenandoahHeapRegion* r = heap->heap_region_containing(loc); + if (r != NULL && r->is_committed()) { + + address start = MAX2((address) r->bottom(), (address) loc - 32); + address end = MIN2((address) r->end(), (address) loc + 128); + if (start >= end) return; + + stringStream ss; + os::print_hex_dump(&ss, start, end, 4); + msg.append("\n"); + msg.append("Raw heap memory:\n%s", ss.as_string()); + } +} + void ShenandoahAsserts::print_obj(ShenandoahMessageBuffer& msg, oop obj) { ShenandoahHeap* heap = ShenandoahHeap::heap(); ShenandoahHeapRegion *r = heap->heap_region_containing(obj); @@ -80,6 +101,7 @@ stringStream ss; r->print_on(&ss); msg.append(" region: %s", ss.as_string()); + print_raw_memory(msg, loc); } } } From zgu at redhat.com Wed May 16 17:10:24 2018 From: zgu at redhat.com (Zhengyu Gu) Date: Wed, 16 May 2018 13:10:24 -0400 Subject: RFR: Fix Shenandoah 8u build issues Message-ID: <32b7d8c9-cb40-b1be-7875-9156880e048a@redhat.com> Other than build problems reported by Michal, moving heuristics to sub directory also breaks build on Windows. Webrev: http://cr.openjdk.java.net/~zgu/shenandoah/sh-jdk8u-build/webrev.00/ Tested build on Windows 64 and Linux 64. Thanks, -Zhengyu From rkennke at redhat.com Wed May 16 18:25:50 2018 From: rkennke at redhat.com (Roman Kennke) Date: Wed, 16 May 2018 20:25:50 +0200 Subject: RFR: Verifier should dump raw memory around the problematic oops In-Reply-To: References: Message-ID: This looks very useful in some situations. Please push it! Roman > When Verifier fails with broken oop, it is useful to see where the memory actually points. This > helps to catch off-by-one errors, see for example off-by-one error that points to fwdptr slot, not > to object header: > > ---------- 8< ----------------------------------------------------------------------------- > > # A fatal error has been detected by the Java Runtime Environment: > # > # Internal Error > (/home/shade/trunks/shenandoah-jdk/src/hotspot/share/gc/shenandoah/shenandoahVerifier.cpp:62), > pid=41615, tid=41622 > # Error: Before Updating References, Marked; Object klass pointer must go to metaspace > > Referenced from: > no interior location recorded (probably a plain heap scan, or detached oop) > > Object: > 0x00000000fb8813c0 - safe print, no details > region: | 1905|R |BTE fb880000, fb8ffea0, fb900000|TAMS fb880000, fb880000|U > 99%|T 0%|G 89%|S 10%|L 99%| |CP 0|SN 0, 0, 9634, 96f6 > > > Raw heap memory: > 0x00000000fb881390: 00000000 00000000 00000000 00000000 > 0x00000000fb8813a0: 00000000 00000000 00000000 00000000 > 0x00000000fb8813c0: 00000000 00000000 fb8813d0 00000000 > 0x00000000fb8813d0: 00000005 00000000 20002645 00000c44 > 0x00000000fb8813e0: baadbabe baadbabe fb8813f0 00000000 > 0x00000000fb8813f0: 00000005 00000000 20002645 00000c45 > 0x00000000fb881400: baadbabe baadbabe fb881410 00000000 > 0x00000000fb881410: 00000005 00000000 20002645 00000c46 > 0x00000000fb881420: baadbabe baadbabe fb881430 00000000 > 0x00000000fb881430: 00000005 00000000 20002645 00000c47 > > ---------- 8< ----------------------------------------------------------------------------- > > Thanks, > -Aleksey > > [0] > > diff -r d136c3d3b5c7 src/hotspot/share/gc/shenandoah/shenandoahAsserts.cpp > --- a/src/hotspot/share/gc/shenandoah/shenandoahAsserts.cpp Wed May 16 08:44:23 2018 +0200 > +++ b/src/hotspot/share/gc/shenandoah/shenandoahAsserts.cpp Wed May 16 18:47:58 2018 +0200 > @@ -32,6 +32,27 @@ > #include "gc/shenandoah/shenandoahTraversalGC.hpp" > #include "memory/resourceArea.hpp" > > +void print_raw_memory(ShenandoahMessageBuffer &msg, void* loc) { > + // Be extra safe. Only access data that is guaranteed to be safe: > + // should be in heap, in known committed region, within that region. > + > + ShenandoahHeap* heap = ShenandoahHeap::heap(); > + if (!heap->is_in(loc)) return; > + > + ShenandoahHeapRegion* r = heap->heap_region_containing(loc); > + if (r != NULL && r->is_committed()) { > + > + address start = MAX2((address) r->bottom(), (address) loc - 32); > + address end = MIN2((address) r->end(), (address) loc + 128); > + if (start >= end) return; > + > + stringStream ss; > + os::print_hex_dump(&ss, start, end, 4); > + msg.append("\n"); > + msg.append("Raw heap memory:\n%s", ss.as_string()); > + } > +} > + > void ShenandoahAsserts::print_obj(ShenandoahMessageBuffer& msg, oop obj) { > ShenandoahHeap* heap = ShenandoahHeap::heap(); > ShenandoahHeapRegion *r = heap->heap_region_containing(obj); > @@ -80,6 +101,7 @@ > stringStream ss; > r->print_on(&ss); > msg.append(" region: %s", ss.as_string()); > + print_raw_memory(msg, loc); > } > } > } > From rkennke at redhat.com Wed May 16 18:28:12 2018 From: rkennke at redhat.com (Roman Kennke) Date: Wed, 16 May 2018 20:28:12 +0200 Subject: RFR: Fix Shenandoah 8u build issues In-Reply-To: <32b7d8c9-cb40-b1be-7875-9156880e048a@redhat.com> References: <32b7d8c9-cb40-b1be-7875-9156880e048a@redhat.com> Message-ID: <4dbec9c8-1b6f-f37a-0d08-0da721b3309d@redhat.com> Am 16.05.2018 um 19:10 schrieb Zhengyu Gu: > Other than build problems reported by Michal, moving heuristics to sub > directory also breaks build on Windows. > > Webrev: > http://cr.openjdk.java.net/~zgu/shenandoah/sh-jdk8u-build/webrev.00/ > > Tested build on Windows 64 and Linux 64. > > Thanks, > > -Zhengyu Uhh. Ok. Please push it. I guess it makes sense to append it to The Big Merge too? Roman From zgu at redhat.com Wed May 16 18:32:33 2018 From: zgu at redhat.com (zgu at redhat.com) Date: Wed, 16 May 2018 18:32:33 +0000 Subject: hg: shenandoah/jdk8u/hotspot: Fixed Shenandoah 8u build Message-ID: <201805161832.w4GIWXJa015356@aojmv0008.oracle.com> Changeset: 84f19550a9d5 Author: zgu Date: 2018-05-16 14:30 -0400 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/hotspot/rev/84f19550a9d5 Fixed Shenandoah 8u build ! make/windows/create_obj_files.sh ! make/windows/makefiles/vm.make ! src/share/vm/gc_implementation/shenandoah/shenandoahHeap.cpp ! src/share/vm/gc_implementation/shenandoah/shenandoahHeapRegion.inline.hpp From zgu at redhat.com Thu May 17 01:08:51 2018 From: zgu at redhat.com (Zhengyu Gu) Date: Wed, 16 May 2018 21:08:51 -0400 Subject: RFR: Fix Shenandoah build issues Message-ID: <3168045d-1a5a-95a5-30d3-077003158340@redhat.com> A few similar build issues as Shenandoah jdk8u, mainly on Windows. Shenandoah JDK: http://cr.openjdk.java.net/~zgu/shenandoah/sh-jdk-build/webrev.00/ Shenandoah JDK10: http://cr.openjdk.java.net/~zgu/shenandoah/sh-jdk10-build/webrev.00/ Shenandoah JDK9: http://cr.openjdk.java.net/~zgu/shenandoah/sh-jdk9-build/webrev.00/ Test: Built on Windows 64 and Linux 64 Thanks, -Zhengyu From ashipile at redhat.com Thu May 17 08:03:11 2018 From: ashipile at redhat.com (ashipile at redhat.com) Date: Thu, 17 May 2018 08:03:11 +0000 Subject: hg: shenandoah/jdk: Verifier should dump raw memory around the problematic oops Message-ID: <201805170803.w4H83C8P001458@aojmv0008.oracle.com> Changeset: 57b01688e0ae Author: shade Date: 2018-05-16 12:33 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/57b01688e0ae Verifier should dump raw memory around the problematic oops ! src/hotspot/share/gc/shenandoah/shenandoahAsserts.cpp From shade at redhat.com Thu May 17 08:04:17 2018 From: shade at redhat.com (Aleksey Shipilev) Date: Thu, 17 May 2018 10:04:17 +0200 Subject: RFR: Fix Shenandoah build issues In-Reply-To: <3168045d-1a5a-95a5-30d3-077003158340@redhat.com> References: <3168045d-1a5a-95a5-30d3-077003158340@redhat.com> Message-ID: <68bc2a5b-4f72-62ef-422a-5ce5a6906ea9@redhat.com> On 05/17/2018 03:08 AM, Zhengyu Gu wrote: > A few similar build issues as Shenandoah jdk8u, mainly on Windows. > > Shenandoah JDK: http://cr.openjdk.java.net/~zgu/shenandoah/sh-jdk-build/webrev.00/ > > Shenandoah JDK10: http://cr.openjdk.java.net/~zgu/shenandoah/sh-jdk10-build/webrev.00/ > > Shenandoah JDK9: http://cr.openjdk.java.net/~zgu/shenandoah/sh-jdk9-build/webrev.00/ OK, thanks! -Aleksey From rkennke at redhat.com Thu May 17 12:12:52 2018 From: rkennke at redhat.com (Roman Kennke) Date: Thu, 17 May 2018 14:12:52 +0200 Subject: RFR: Move heuristics from ShCollectorPolicy to ShHeap In-Reply-To: References: <265f2bca-dd2e-e2e9-fcf2-da2cf43352a7@redhat.com> Message-ID: <22c4727f-02d1-f73a-32e5-c6d12c0be3fd@redhat.com> Am 16.05.2018 um 18:26 schrieb Aleksey Shipilev: > On 05/16/2018 05:19 PM, Roman Kennke wrote: >> I simply spliced all the calls to policy that also called to heuristics >> into two calls: policy+heuristics or changed to heuristics call for >> cases where policy did not do anything. >> >> Remaining record* stuff in policy should probably be moved into a >> separate ShenandoahStats class or such. >> >> Differential: >> http://cr.openjdk.java.net/~rkennke/heuristics-refactoring/webrev.01.diff/ >> Full: >> http://cr.openjdk.java.net/~rkennke/heuristics-refactoring/webrev.01/ > > Looks OK. Have somebody else eyeball this, because I cannot trust my eyes anymore today. Or wait for > tomorrow. Did you find some time to look at it? I will disappear soonish for 1.5 weeks... ;-) Roman From zgu at redhat.com Thu May 17 12:19:00 2018 From: zgu at redhat.com (zgu at redhat.com) Date: Thu, 17 May 2018 12:19:00 +0000 Subject: hg: shenandoah/jdk10: Fix Shenandoah build Message-ID: <201805171219.w4HCJ04q011664@aojmv0008.oracle.com> Changeset: eaf79c646395 Author: zgu Date: 2018-05-17 08:18 -0400 URL: http://hg.openjdk.java.net/shenandoah/jdk10/rev/eaf79c646395 Fix Shenandoah build ! src/hotspot/share/gc/shenandoah/shenandoahHeap.cpp ! src/hotspot/share/gc/shenandoah/shenandoahStrDedupTable.hpp ! src/hotspot/share/utilities/numberSeq.cpp From shade at redhat.com Thu May 17 12:19:15 2018 From: shade at redhat.com (Aleksey Shipilev) Date: Thu, 17 May 2018 14:19:15 +0200 Subject: RFR: Move heuristics from ShCollectorPolicy to ShHeap In-Reply-To: <22c4727f-02d1-f73a-32e5-c6d12c0be3fd@redhat.com> References: <265f2bca-dd2e-e2e9-fcf2-da2cf43352a7@redhat.com> <22c4727f-02d1-f73a-32e5-c6d12c0be3fd@redhat.com> Message-ID: On 05/17/2018 02:12 PM, Roman Kennke wrote: > Am 16.05.2018 um 18:26 schrieb Aleksey Shipilev: >> On 05/16/2018 05:19 PM, Roman Kennke wrote: >>> I simply spliced all the calls to policy that also called to heuristics >>> into two calls: policy+heuristics or changed to heuristics call for >>> cases where policy did not do anything. >>> >>> Remaining record* stuff in policy should probably be moved into a >>> separate ShenandoahStats class or such. >>> >>> Differential: >>> http://cr.openjdk.java.net/~rkennke/heuristics-refactoring/webrev.01.diff/ >>> Full: >>> http://cr.openjdk.java.net/~rkennke/heuristics-refactoring/webrev.01/ >> >> Looks OK. Have somebody else eyeball this, because I cannot trust my eyes anymore today. Or wait for >> tomorrow. > > Did you find some time to look at it? I will disappear soonish for 1.5 > weeks... ;-) Looks good, push it. -Aleksey From zgu at redhat.com Thu May 17 12:19:56 2018 From: zgu at redhat.com (zgu at redhat.com) Date: Thu, 17 May 2018 12:19:56 +0000 Subject: hg: shenandoah/jdk9/hotspot: Fix Shenandoah build Message-ID: <201805171219.w4HCJukQ011900@aojmv0008.oracle.com> Changeset: 7b4d91ee5a73 Author: zgu Date: 2018-05-17 08:19 -0400 URL: http://hg.openjdk.java.net/shenandoah/jdk9/hotspot/rev/7b4d91ee5a73 Fix Shenandoah build ! src/share/vm/gc/shenandoah/shenandoahHeap.cpp From roman at kennke.org Thu May 17 12:26:37 2018 From: roman at kennke.org (roman at kennke.org) Date: Thu, 17 May 2018 12:26:37 +0000 Subject: hg: shenandoah/jdk: Move heuristics from ShCollectorPolicy to ShHeap Message-ID: <201805171226.w4HCQbZ1014703@aojmv0008.oracle.com> Changeset: 93a0179e5802 Author: rkennke Date: 2018-05-17 14:26 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/93a0179e5802 Move heuristics from ShCollectorPolicy to ShHeap ! src/hotspot/share/gc/shenandoah/shenandoahBarrierSet.cpp ! src/hotspot/share/gc/shenandoah/shenandoahCollectorPolicy.cpp ! src/hotspot/share/gc/shenandoah/shenandoahCollectorPolicy.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/shenandoahPhaseTimings.cpp ! src/hotspot/share/gc/shenandoah/shenandoahTraversalGC.cpp ! src/hotspot/share/gc/shenandoah/shenandoahUtils.cpp From zgu at redhat.com Thu May 17 12:52:57 2018 From: zgu at redhat.com (zgu at redhat.com) Date: Thu, 17 May 2018 12:52:57 +0000 Subject: hg: shenandoah/jdk: Fix Shenandoah build issue Message-ID: <201805171252.w4HCqve3023969@aojmv0008.oracle.com> Changeset: da7cfd2b24d0 Author: zgu Date: 2018-05-17 08:52 -0400 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/da7cfd2b24d0 Fix Shenandoah build issue ! src/hotspot/share/gc/shenandoah/shenandoahHeap.cpp From shade at redhat.com Thu May 17 18:31:34 2018 From: shade at redhat.com (Aleksey Shipilev) Date: Thu, 17 May 2018 20:31:34 +0200 Subject: RFR: Rework GC degradation on allocation failure Message-ID: <017ea6cb-3bfa-fcab-936c-51686c7d8652@redhat.com> http://cr.openjdk.java.net/~shade/shenandoah/alloc-failure-rework/webrev.01/ I was doing the ClassUnloading fixes and realized that one of my stress tests did not fail as expected with OOMe. Instead, Shenandoah tried futively to do the GC cycles over and over again, never stopping. The fixes for that path are in this patch. It required some work in defining what the GC progress is. New tests verify Shenandoah fails as expected. Testing: hotspot_gc_shenandoah Thanks, -Aleksey From zgu at redhat.com Thu May 17 19:46:35 2018 From: zgu at redhat.com (Zhengyu Gu) Date: Thu, 17 May 2018 15:46:35 -0400 Subject: RFR: Rework GC degradation on allocation failure In-Reply-To: <017ea6cb-3bfa-fcab-936c-51686c7d8652@redhat.com> References: <017ea6cb-3bfa-fcab-936c-51686c7d8652@redhat.com> Message-ID: Hi, ShenandoahMetricsSnapshot - member variables need "_" prefix ShenandoahMetrics::external_fragmentation() - algorithm does not seem to match comment Otherwise, looks good. -Zhengyu On 05/17/2018 02:31 PM, Aleksey Shipilev wrote: > http://cr.openjdk.java.net/~shade/shenandoah/alloc-failure-rework/webrev.01/ > > I was doing the ClassUnloading fixes and realized that one of my stress tests did not fail as > expected with OOMe. Instead, Shenandoah tried futively to do the GC cycles over and over again, > never stopping. The fixes for that path are in this patch. It required some work in defining what > the GC progress is. New tests verify Shenandoah fails as expected. > > Testing: hotspot_gc_shenandoah > > Thanks, > -Aleksey > From rkennke at redhat.com Thu May 17 19:56:30 2018 From: rkennke at redhat.com (Roman Kennke) Date: Thu, 17 May 2018 21:56:30 +0200 Subject: RFR: Rework GC degradation on allocation failure In-Reply-To: <017ea6cb-3bfa-fcab-936c-51686c7d8652@redhat.com> References: <017ea6cb-3bfa-fcab-936c-51686c7d8652@redhat.com> Message-ID: Am 17.05.2018 um 20:31 schrieb Aleksey Shipilev: > http://cr.openjdk.java.net/~shade/shenandoah/alloc-failure-rework/webrev.01/ > > I was doing the ClassUnloading fixes and realized that one of my stress tests did not fail as > expected with OOMe. Instead, Shenandoah tried futively to do the GC cycles over and over again, > never stopping. The fixes for that path are in this patch. It required some work in defining what > the GC progress is. New tests verify Shenandoah fails as expected. > > Testing: hotspot_gc_shenandoah > > Thanks, > -Aleksey > But, but... that was a feature, not a bug!! Shenandoah never runs out of memory! ;-) Otherwise, what Zhengyu noted. Thanks! Roman From shade at redhat.com Fri May 18 09:48:15 2018 From: shade at redhat.com (Aleksey Shipilev) Date: Fri, 18 May 2018 11:48:15 +0200 Subject: RFC: Cease JDK 9 support for Shenandoah In-Reply-To: <26f806b1-1980-884d-b5f0-695f9e7bec76@redhat.com> References: <155a120f-22fc-728c-b7bd-964a43f084fd@redhat.com> <26f806b1-1980-884d-b5f0-695f9e7bec76@redhat.com> Message-ID: <11cb7cc2-b6de-898f-d8b4-438797a5d70c@redhat.com> On 05/14/2018 01:29 PM, Aleksey Shipilev wrote: > On 05/14/2018 01:17 PM, Aleksey Shipilev wrote: >> JDK 9 is EOL, upstream does not accept patches for it. Download stats seems to indicate the small >> amount of users that used 9 moved on to 10. > > Also comes with a Completely Scientific and Totally Representative Poll (tm): > https://twitter.com/shipilev/status/995987634978787329 I am hearing no objections. Shall we proceed? -Aleksey From shade at redhat.com Fri May 18 12:23:12 2018 From: shade at redhat.com (Aleksey Shipilev) Date: Fri, 18 May 2018 14:23:12 +0200 Subject: RFR: Fix unsigned comparison in plab.cpp Message-ID: 32-bit builds started to fail with: /pool/buildbot/slaves/sobornost/shenandoah-jdkX/build/src/hotspot/share/gc/shared/plab.cpp:87:29: error: comparison between signed and unsigned integer expressions [-Werror=sign-compare] assert(_hard_end - _top >= oopDesc::header_size() + Universe::heap()->oop_extra_words(), ~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Fix: diff -r 19704db7c2c2 src/hotspot/share/gc/shared/plab.cpp --- a/src/hotspot/share/gc/shared/plab.cpp Fri May 18 14:02:15 2018 +0200 +++ b/src/hotspot/share/gc/shared/plab.cpp Fri May 18 14:19:41 2018 +0200 @@ -84,7 +84,7 @@ size_t PLAB::retire_internal() { size_t result = 0; if (_top < _hard_end) { - assert(_hard_end - _top >= oopDesc::header_size() + Universe::heap()->oop_extra_words(), + assert(pointer_delta(_hard_end, _top) >= (size_t)(oopDesc::header_size() + Universe::heap()->oop_extra_words()), "better have enough space left to fill with dummy"); HeapWord* obj = Universe::heap()->tlab_post_allocation_setup(_top); CollectedHeap::fill_with_object(obj, _hard_end); Testing: x86_32, x86_64 builds Thanks, -Aleksey From zgu at redhat.com Fri May 18 12:26:00 2018 From: zgu at redhat.com (Zhengyu Gu) Date: Fri, 18 May 2018 08:26:00 -0400 Subject: RFR: Fix unsigned comparison in plab.cpp In-Reply-To: References: Message-ID: Good. -Zhengyu On 05/18/2018 08:23 AM, Aleksey Shipilev wrote: > 32-bit builds started to fail with: > > /pool/buildbot/slaves/sobornost/shenandoah-jdkX/build/src/hotspot/share/gc/shared/plab.cpp:87:29: > error: comparison between signed and unsigned integer expressions [-Werror=sign-compare] > assert(_hard_end - _top >= oopDesc::header_size() + Universe::heap()->oop_extra_words(), > ~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ > > Fix: > > diff -r 19704db7c2c2 src/hotspot/share/gc/shared/plab.cpp > --- a/src/hotspot/share/gc/shared/plab.cpp Fri May 18 14:02:15 2018 +0200 > +++ b/src/hotspot/share/gc/shared/plab.cpp Fri May 18 14:19:41 2018 +0200 > @@ -84,7 +84,7 @@ > size_t PLAB::retire_internal() { > size_t result = 0; > if (_top < _hard_end) { > - assert(_hard_end - _top >= oopDesc::header_size() + Universe::heap()->oop_extra_words(), > + assert(pointer_delta(_hard_end, _top) >= (size_t)(oopDesc::header_size() + > Universe::heap()->oop_extra_words()), > "better have enough space left to fill with dummy"); > HeapWord* obj = Universe::heap()->tlab_post_allocation_setup(_top); > CollectedHeap::fill_with_object(obj, _hard_end); > > > Testing: x86_32, x86_64 builds > > Thanks, > -Aleksey > From ashipile at redhat.com Fri May 18 12:51:36 2018 From: ashipile at redhat.com (ashipile at redhat.com) Date: Fri, 18 May 2018 12:51:36 +0000 Subject: hg: shenandoah/jdk: Fix unsigned comparison in plab.cpp Message-ID: <201805181251.w4ICpaSn029055@aojmv0008.oracle.com> Changeset: 0a5a985f076d Author: shade Date: 2018-05-18 14:29 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/0a5a985f076d Fix unsigned comparison in plab.cpp ! src/hotspot/share/gc/shared/plab.cpp From shade at redhat.com Fri May 18 13:16:38 2018 From: shade at redhat.com (Aleksey Shipilev) Date: Fri, 18 May 2018 15:16:38 +0200 Subject: RFR: Rework GC degradation on allocation failure In-Reply-To: References: <017ea6cb-3bfa-fcab-936c-51686c7d8652@redhat.com> Message-ID: <25a0c54d-6b20-3d49-12e6-1cf3e4f94ad6@redhat.com> On 05/17/2018 09:46 PM, Zhengyu Gu wrote: > Hi, > > ShenandoahMetricsSnapshot > > - member variables need "_" prefix > > ShenandoahMetrics::external_fragmentation() > > ?- algorithm does not seem to match comment > > Otherwise, looks good. Right. Does this look better? http://cr.openjdk.java.net/~shade/shenandoah/alloc-failure-rework/webrev.02/ I also reconsidered ShenandoahHeap::allocate_memory, and that fixes the issues that made nightly tests fail. Testing: hotspot_gc_shenandoah -Aleksey From zgu at redhat.com Fri May 18 13:48:12 2018 From: zgu at redhat.com (Zhengyu Gu) Date: Fri, 18 May 2018 09:48:12 -0400 Subject: RFR: Rework GC degradation on allocation failure In-Reply-To: <25a0c54d-6b20-3d49-12e6-1cf3e4f94ad6@redhat.com> References: <017ea6cb-3bfa-fcab-936c-51686c7d8652@redhat.com> <25a0c54d-6b20-3d49-12e6-1cf3e4f94ad6@redhat.com> Message-ID: <445b7e46-3121-f393-b308-35e1466105f4@redhat.com> Good! -Zhengyu On 05/18/2018 09:16 AM, Aleksey Shipilev wrote: > On 05/17/2018 09:46 PM, Zhengyu Gu wrote: >> Hi, >> >> ShenandoahMetricsSnapshot >> >> - member variables need "_" prefix >> >> ShenandoahMetrics::external_fragmentation() >> >> ?- algorithm does not seem to match comment >> >> Otherwise, looks good. > > Right. Does this look better? > http://cr.openjdk.java.net/~shade/shenandoah/alloc-failure-rework/webrev.02/ > > I also reconsidered ShenandoahHeap::allocate_memory, and that fixes the issues that made nightly > tests fail. > > Testing: hotspot_gc_shenandoah > > -Aleksey > > From shade at redhat.com Fri May 18 14:26:37 2018 From: shade at redhat.com (Aleksey Shipilev) Date: Fri, 18 May 2018 16:26:37 +0200 Subject: RFR: Rework ClassUnloading* flags handling Message-ID: <304547e9-e532-f62c-e1c5-4e918ef3c77d@redhat.com> http://cr.openjdk.java.net/~shade/shenandoah/class-unload-rework/webrev.01/ We have lost some of this during upstream merges, and we have not noticed because no tests verified how we handle ClassUnloading* flags. This patch makes sure ClassUnloading* flags are treated well by Shenandoah in every mode. New tests capture the intended behavior, including OOME when class unloading is disabled and classes leak. Testing: hotspot_gc_shenandoah Thanks, -Aleksey From rkennke at redhat.com Fri May 18 14:38:43 2018 From: rkennke at redhat.com (Roman Kennke) Date: Fri, 18 May 2018 16:38:43 +0200 Subject: RFR: Rework ClassUnloading* flags handling In-Reply-To: <304547e9-e532-f62c-e1c5-4e918ef3c77d@redhat.com> References: <304547e9-e532-f62c-e1c5-4e918ef3c77d@redhat.com> Message-ID: Am 18.05.2018 um 16:26 schrieb Aleksey Shipilev: > http://cr.openjdk.java.net/~shade/shenandoah/class-unload-rework/webrev.01/ > > We have lost some of this during upstream merges, and we have not noticed because no tests verified > how we handle ClassUnloading* flags. This patch makes sure ClassUnloading* flags are treated well by > Shenandoah in every mode. New tests capture the intended behavior, including OOME when class > unloading is disabled and classes leak. > > Testing: hotspot_gc_shenandoah > > Thanks, > -Aleksey > Looks good to me. Thanks, Roman From rkennke at redhat.com Fri May 18 14:40:00 2018 From: rkennke at redhat.com (Roman Kennke) Date: Fri, 18 May 2018 16:40:00 +0200 Subject: RFR: Rework ClassUnloading* flags handling In-Reply-To: <304547e9-e532-f62c-e1c5-4e918ef3c77d@redhat.com> References: <304547e9-e532-f62c-e1c5-4e918ef3c77d@redhat.com> Message-ID: <8f16d92f-61c0-a760-d992-9e7068e23c7d@redhat.com> Am 18.05.2018 um 16:26 schrieb Aleksey Shipilev: > http://cr.openjdk.java.net/~shade/shenandoah/class-unload-rework/webrev.01/ > > We have lost some of this during upstream merges, and we have not noticed because no tests verified > how we handle ClassUnloading* flags. This patch makes sure ClassUnloading* flags are treated well by > Shenandoah in every mode. New tests capture the intended behavior, including OOME when class > unloading is disabled and classes leak. > > Testing: hotspot_gc_shenandoah > > Thanks, > -Aleksey > One question: it does not disable concurrent class unloading by default, right? I'm asking because if I understood correctly, you meant to do that? Roman From shade at redhat.com Fri May 18 14:41:16 2018 From: shade at redhat.com (Aleksey Shipilev) Date: Fri, 18 May 2018 16:41:16 +0200 Subject: RFR: Rework ClassUnloading* flags handling In-Reply-To: <8f16d92f-61c0-a760-d992-9e7068e23c7d@redhat.com> References: <304547e9-e532-f62c-e1c5-4e918ef3c77d@redhat.com> <8f16d92f-61c0-a760-d992-9e7068e23c7d@redhat.com> Message-ID: <49a6adbe-346a-30e5-c6cd-267004332ecb@redhat.com> On 05/18/2018 04:40 PM, Roman Kennke wrote: > Am 18.05.2018 um 16:26 schrieb Aleksey Shipilev: >> http://cr.openjdk.java.net/~shade/shenandoah/class-unload-rework/webrev.01/ >> >> We have lost some of this during upstream merges, and we have not noticed because no tests verified >> how we handle ClassUnloading* flags. This patch makes sure ClassUnloading* flags are treated well by >> Shenandoah in every mode. New tests capture the intended behavior, including OOME when class >> unloading is disabled and classes leak. >> >> Testing: hotspot_gc_shenandoah >> >> Thanks, >> -Aleksey >> > > One question: it does not disable concurrent class unloading by default, > right? I'm asking because if I understood correctly, you meant to do that? Yes, separately, because it has performance implications that I still study. After this infrastructure fix, making class unloading opt-in is a two-liner fix. -Aleksey From rkennke at redhat.com Fri May 18 15:12:18 2018 From: rkennke at redhat.com (Roman Kennke) Date: Fri, 18 May 2018 17:12:18 +0200 Subject: RFR: Rework ClassUnloading* flags handling In-Reply-To: <49a6adbe-346a-30e5-c6cd-267004332ecb@redhat.com> References: <304547e9-e532-f62c-e1c5-4e918ef3c77d@redhat.com> <8f16d92f-61c0-a760-d992-9e7068e23c7d@redhat.com> <49a6adbe-346a-30e5-c6cd-267004332ecb@redhat.com> Message-ID: <2be48a79-1993-a1b3-36bc-5f13080e96ec@redhat.com> Am 18.05.2018 um 16:41 schrieb Aleksey Shipilev: > On 05/18/2018 04:40 PM, Roman Kennke wrote: >> Am 18.05.2018 um 16:26 schrieb Aleksey Shipilev: >>> http://cr.openjdk.java.net/~shade/shenandoah/class-unload-rework/webrev.01/ >>> >>> We have lost some of this during upstream merges, and we have not noticed because no tests verified >>> how we handle ClassUnloading* flags. This patch makes sure ClassUnloading* flags are treated well by >>> Shenandoah in every mode. New tests capture the intended behavior, including OOME when class >>> unloading is disabled and classes leak. >>> >>> Testing: hotspot_gc_shenandoah >>> >>> Thanks, >>> -Aleksey >>> >> >> One question: it does not disable concurrent class unloading by default, >> right? I'm asking because if I understood correctly, you meant to do that? > > Yes, separately, because it has performance implications that I still study. After this > infrastructure fix, making class unloading opt-in is a two-liner fix. Ok. Roman From ashipile at redhat.com Fri May 18 15:23:45 2018 From: ashipile at redhat.com (ashipile at redhat.com) Date: Fri, 18 May 2018 15:23:45 +0000 Subject: hg: shenandoah/jdk: 2 new changesets Message-ID: <201805181523.w4IFNj28023538@aojmv0008.oracle.com> Changeset: 2e4978303f6d Author: shade Date: 2018-05-18 15:05 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/2e4978303f6d Rework GC degradation on allocation failure ! src/hotspot/share/gc/shenandoah/shenandoahHeap.cpp ! src/hotspot/share/gc/shenandoah/shenandoahHeap.hpp + src/hotspot/share/gc/shenandoah/shenandoahMetrics.cpp + src/hotspot/share/gc/shenandoah/shenandoahMetrics.hpp ! src/hotspot/share/gc/shenandoah/shenandoah_globals.hpp ! test/hotspot/jtreg/TEST.groups - test/hotspot/jtreg/gc/shenandoah/TestAllocLargeObjOOM.java - test/hotspot/jtreg/gc/shenandoah/TestAllocSmallObjOOM.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 Changeset: 38c813debe92 Author: shade Date: 2018-05-18 16:23 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/38c813debe92 Rework ClassUnloading* flags handling ! src/hotspot/share/gc/shenandoah/heuristics/shenandoahAggressiveHeuristics.cpp ! src/hotspot/share/gc/shenandoah/heuristics/shenandoahTraversalHeuristics.cpp ! src/hotspot/share/gc/shenandoah/shenandoahArguments.cpp ! src/hotspot/share/gc/shenandoah/shenandoahHeap.cpp ! src/hotspot/share/gc/shenandoah/shenandoahHeuristics.cpp ! src/hotspot/share/gc/shenandoah/shenandoahMarkCompact.cpp + test/hotspot/jtreg/gc/shenandoah/oom/TestClassLoaderLeak.java + test/hotspot/jtreg/gc/shenandoah/options/TestClassUnloadingArguments.java From zgu at redhat.com Fri May 18 15:31:36 2018 From: zgu at redhat.com (Zhengyu Gu) Date: Fri, 18 May 2018 11:31:36 -0400 Subject: RFR: Backport string dedup to jdk8u Message-ID: <0bb636a6-2b44-3027-1b09-c5af31d0f69e@redhat.com> Backport is pretty straightforward from jdk9. It took longer than expected, cause I fell into Atomic::add(jlong) trap again :-( Webrev: http://cr.openjdk.java.net/~zgu/shenandoah/8u-strdedup/webrev.00/ Test: hotspot_gc_shenandoah (fastdebug and release) Thanks, -Zhengyu From shade at redhat.com Fri May 18 16:29:58 2018 From: shade at redhat.com (Aleksey Shipilev) Date: Fri, 18 May 2018 18:29:58 +0200 Subject: RFR: Backport string dedup to jdk8u In-Reply-To: <0bb636a6-2b44-3027-1b09-c5af31d0f69e@redhat.com> References: <0bb636a6-2b44-3027-1b09-c5af31d0f69e@redhat.com> Message-ID: <014de271-4019-c500-5641-502b0434221c@redhat.com> On 05/18/2018 05:31 PM, Zhengyu Gu wrote: > Backport is pretty straightforward from jdk9. It took longer than expected, cause I fell into > Atomic::add(jlong) trap again :-( > > Webrev: http://cr.openjdk.java.net/~zgu/shenandoah/8u-strdedup/webrev.00/ Yup, looks straightforward. Thanks! Tests timeout for me though (sh/jdk8u is slower), so I needed to apply this: http://cr.openjdk.java.net/~shade/shenandoah/strdedup-8-timeouts.patch -Aleksey From zgu at redhat.com Fri May 18 16:40:18 2018 From: zgu at redhat.com (Zhengyu Gu) Date: Fri, 18 May 2018 12:40:18 -0400 Subject: RFR: Backport string dedup to jdk8u In-Reply-To: <014de271-4019-c500-5641-502b0434221c@redhat.com> References: <0bb636a6-2b44-3027-1b09-c5af31d0f69e@redhat.com> <014de271-4019-c500-5641-502b0434221c@redhat.com> Message-ID: <42572f26-1133-0dc3-d456-0d0aa217c034@redhat.com> On 05/18/2018 12:29 PM, Aleksey Shipilev wrote: > On 05/18/2018 05:31 PM, Zhengyu Gu wrote: >> Backport is pretty straightforward from jdk9. It took longer than expected, cause I fell into >> Atomic::add(jlong) trap again :-( >> >> Webrev: http://cr.openjdk.java.net/~zgu/shenandoah/8u-strdedup/webrev.00/ > > Yup, looks straightforward. Thanks! > > Tests timeout for me though (sh/jdk8u is slower), so I needed to apply this: > http://cr.openjdk.java.net/~shade/shenandoah/strdedup-8-timeouts.patch Okay, updated: http://cr.openjdk.java.net/~zgu/shenandoah/8u-strdedup/webrev.01/ Good to go? Thanks, -Zhengyu > > -Aleksey > From shade at redhat.com Fri May 18 16:43:31 2018 From: shade at redhat.com (Aleksey Shipilev) Date: Fri, 18 May 2018 18:43:31 +0200 Subject: RFR: Backport string dedup to jdk8u In-Reply-To: <42572f26-1133-0dc3-d456-0d0aa217c034@redhat.com> References: <0bb636a6-2b44-3027-1b09-c5af31d0f69e@redhat.com> <014de271-4019-c500-5641-502b0434221c@redhat.com> <42572f26-1133-0dc3-d456-0d0aa217c034@redhat.com> Message-ID: <3a8e165f-df9e-0c5f-b27b-78eaea3a3242@redhat.com> On 05/18/2018 06:40 PM, Zhengyu Gu wrote: > On 05/18/2018 12:29 PM, Aleksey Shipilev wrote: >> On 05/18/2018 05:31 PM, Zhengyu Gu wrote: >>> Backport is pretty straightforward from jdk9. It took longer than expected, cause I fell into >>> Atomic::add(jlong) trap again :-( >>> >>> Webrev: http://cr.openjdk.java.net/~zgu/shenandoah/8u-strdedup/webrev.00/ >> >> Yup, looks straightforward. Thanks! >> >> Tests timeout for me though (sh/jdk8u is slower), so I needed to apply this: >> ?? http://cr.openjdk.java.net/~shade/shenandoah/strdedup-8-timeouts.patch > > Okay, updated: http://cr.openjdk.java.net/~zgu/shenandoah/8u-strdedup/webrev.01/ > > Good to go? Yes, I think so. -Aleksey From zgu at redhat.com Fri May 18 16:48:15 2018 From: zgu at redhat.com (zgu at redhat.com) Date: Fri, 18 May 2018 16:48:15 +0000 Subject: hg: shenandoah/jdk8u/hotspot: [Backport] Shenandoah string deduplication Message-ID: <201805181648.w4IGmFj7022440@aojmv0008.oracle.com> Changeset: e83d20a298be Author: zgu Date: 2018-05-18 12:47 -0400 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/hotspot/rev/e83d20a298be [Backport] Shenandoah string deduplication ! 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/shenandoahHeap.cpp ! src/share/vm/gc_implementation/shenandoah/shenandoahOopClosures.hpp ! src/share/vm/gc_implementation/shenandoah/shenandoahOopClosures.inline.hpp ! src/share/vm/gc_implementation/shenandoah/shenandoahPhaseTimings.cpp ! src/share/vm/gc_implementation/shenandoah/shenandoahPhaseTimings.hpp ! src/share/vm/gc_implementation/shenandoah/shenandoahRootProcessor.cpp + src/share/vm/gc_implementation/shenandoah/shenandoahStrDedupQueue.cpp + src/share/vm/gc_implementation/shenandoah/shenandoahStrDedupQueue.hpp + src/share/vm/gc_implementation/shenandoah/shenandoahStrDedupQueue.inline.hpp + src/share/vm/gc_implementation/shenandoah/shenandoahStrDedupTable.cpp + src/share/vm/gc_implementation/shenandoah/shenandoahStrDedupTable.hpp + src/share/vm/gc_implementation/shenandoah/shenandoahStrDedupThread.cpp + src/share/vm/gc_implementation/shenandoah/shenandoahStrDedupThread.hpp + src/share/vm/gc_implementation/shenandoah/shenandoahStringDedup.cpp + src/share/vm/gc_implementation/shenandoah/shenandoahStringDedup.hpp ! src/share/vm/gc_implementation/shenandoah/shenandoah_specialized_oop_closures.hpp ! src/share/vm/runtime/safepoint.cpp + test/gc/shenandoah/ShenandoahStrDedupStress.java + test/gc/shenandoah/TestShenandoahStrDedup.java From zgu at redhat.com Fri May 18 19:32:44 2018 From: zgu at redhat.com (Zhengyu Gu) Date: Fri, 18 May 2018 15:32:44 -0400 Subject: RFR: Missing jvmti weak roots in jdk8 and jdk9 Message-ID: Looks like we missed jvmti weak roots in jdk8 and 9. JDK8: http://cr.openjdk.java.net/~zgu/shenandoah/sh-jdk8-jvmti-weak-root/webrev/ JDK9: http://cr.openjdk.java.net/~zgu/shenandoah/sh-jdk9-jvmti-weak-root/webrev.00/ Test: jdk8 and jdk9 hotspot_gc-shenandoah Linux 64 Thanks, -Zhengyu From shade at redhat.com Fri May 18 19:37:24 2018 From: shade at redhat.com (Aleksey Shipilev) Date: Fri, 18 May 2018 21:37:24 +0200 Subject: RFR: Missing jvmti weak roots in jdk8 and jdk9 In-Reply-To: References: Message-ID: On 05/18/2018 09:32 PM, Zhengyu Gu wrote: > Looks like we missed jvmti weak roots in jdk8 and 9. No other collector calls it, because it called from JNIHandleBlock::weak_oops_do. And we call that via JNIHandles::weak_oops_do in both sh/jdk8 and sh/jdk9. Confirm? -Aleksey From zgu at redhat.com Fri May 18 20:05:03 2018 From: zgu at redhat.com (Zhengyu Gu) Date: Fri, 18 May 2018 16:05:03 -0400 Subject: RFR: Missing jvmti weak roots in jdk8 and jdk9 In-Reply-To: References: Message-ID: <22787ad5-b06f-33f3-ab83-dd99ab63ca62@redhat.com> On 05/18/2018 03:37 PM, Aleksey Shipilev wrote: > On 05/18/2018 09:32 PM, Zhengyu Gu wrote: >> Looks like we missed jvmti weak roots in jdk8 and 9. > > No other collector calls it, because it called from JNIHandleBlock::weak_oops_do. And we call that > via JNIHandles::weak_oops_do in both sh/jdk8 and sh/jdk9. Confirm? You are right! confirmed. Therefore, I withdraw this RFR. Thanks, -Zhengyu > > -Aleksey > From shade at redhat.com Mon May 21 12:23:44 2018 From: shade at redhat.com (Aleksey Shipilev) Date: Mon, 21 May 2018 14:23:44 +0200 Subject: RFR: Check heap stability in C1 WBs Message-ID: http://cr.openjdk.java.net/~shade/shenandoah/c1-wb-stable/webrev.01/ C2 now has the stable checks before RB-on-WB-fastpath. C1 should do the same, see the patch. This improves Shenandoah+C1 performance around 0..3% across SPECjvm benchmarks. The only suspicious thing for me is why the original code shape did the RB in-between the evac-check. I suspected implicit null checks, but C1 seems to null-check explicitly before calling into MASM::shenandoah_write_barrier. Testing: {x86_64, aarch64} builds, x86_64 hotspot_gc_shenandoah, {x86_64, aarch64} benchmarks Thanks, -Aleksey From rkennke at redhat.com Mon May 21 12:29:11 2018 From: rkennke at redhat.com (Roman Kennke) Date: Mon, 21 May 2018 14:29:11 +0200 Subject: RFR: Check heap stability in C1 WBs In-Reply-To: References: Message-ID: <986F4276-58E5-4EA0-897D-3DEC5EF9B8C1@redhat.com> I think the weird 'nesting' of checks was because of the load-load race of concurrently turning off evac. This is not the case anymore. I wonder if we should keep the heapstable state in a separate register and avoid reloading it all the time? Probably less so with Roland's happy-path work though... Patch is good. Thanks! Roman Am 21. Mai 2018 14:23:44 MESZ schrieb Aleksey Shipilev : >http://cr.openjdk.java.net/~shade/shenandoah/c1-wb-stable/webrev.01/ > >C2 now has the stable checks before RB-on-WB-fastpath. C1 should do the >same, see the patch. This >improves Shenandoah+C1 performance around 0..3% across SPECjvm >benchmarks. The only suspicious thing >for me is why the original code shape did the RB in-between the >evac-check. I suspected implicit >null checks, but C1 seems to null-check explicitly before calling into >MASM::shenandoah_write_barrier. > >Testing: {x86_64, aarch64} builds, x86_64 hotspot_gc_shenandoah, >{x86_64, aarch64} benchmarks > >Thanks, >-Aleksey -- Diese Nachricht wurde von meinem Android-Ger?t mit K-9 Mail gesendet. From ashipile at redhat.com Tue May 22 08:39:41 2018 From: ashipile at redhat.com (ashipile at redhat.com) Date: Tue, 22 May 2018 08:39:41 +0000 Subject: hg: shenandoah/jdk: Check heap stability in C1 WBs Message-ID: <201805220839.w4M8dfDJ003105@aojmv0008.oracle.com> Changeset: 366f6fd34520 Author: shade Date: 2018-05-22 10:39 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/366f6fd34520 Check heap stability in C1 WBs ! src/hotspot/cpu/aarch64/macroAssembler_aarch64.cpp ! src/hotspot/cpu/x86/macroAssembler_x86.cpp From mvala at redhat.com Tue May 22 09:48:37 2018 From: mvala at redhat.com (Michal Vala) Date: Tue, 22 May 2018 11:48:37 +0200 Subject: RFR: Fix Shenandoah 8u build issues In-Reply-To: <32b7d8c9-cb40-b1be-7875-9156880e048a@redhat.com> References: <32b7d8c9-cb40-b1be-7875-9156880e048a@redhat.com> Message-ID: <54b8e816-23d2-0266-b87b-a7d88b8591af@redhat.com> Hi, one more fastdebug build failure. webrev: http://cr.openjdk.java.net/~mvala/shenandoah/jdk8u/01-build/webrev.01/ if ok, please feel free to push it. On 05/16/2018 07:10 PM, Zhengyu Gu wrote: > Other than build problems reported by Michal, moving heuristics to sub directory > also breaks build on Windows. > > Webrev: http://cr.openjdk.java.net/~zgu/shenandoah/sh-jdk8u-build/webrev.00/ > > Tested build on Windows 64 and Linux 64. > > Thanks, > > -Zhengyu -- Michal Vala OpenJDK QE Red Hat Czech From ashipile at redhat.com Tue May 22 10:01:45 2018 From: ashipile at redhat.com (ashipile at redhat.com) Date: Tue, 22 May 2018 10:01:45 +0000 Subject: hg: shenandoah/jdk8u/hotspot: Fix build failure: signedness mismatch in assert Message-ID: <201805221001.w4MA1jN1005606@aojmv0008.oracle.com> Changeset: febbefbe2de7 Author: shade Date: 2018-05-22 11:55 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk8u/hotspot/rev/febbefbe2de7 Fix build failure: signedness mismatch in assert Contributed-by: Michal Vala ! src/share/vm/gc_implementation/shenandoah/shenandoahHeapRegion.cpp From shade at redhat.com Tue May 22 10:02:12 2018 From: shade at redhat.com (Aleksey Shipilev) Date: Tue, 22 May 2018 12:02:12 +0200 Subject: RFR: Fix Shenandoah 8u build issues In-Reply-To: <54b8e816-23d2-0266-b87b-a7d88b8591af@redhat.com> References: <32b7d8c9-cb40-b1be-7875-9156880e048a@redhat.com> <54b8e816-23d2-0266-b87b-a7d88b8591af@redhat.com> Message-ID: <65a2dce1-7dd2-9475-3a07-4ed443bf79ca@redhat.com> On 05/22/2018 11:48 AM, Michal Vala wrote: > Hi, > one more fastdebug build failure. > > webrev: http://cr.openjdk.java.net/~mvala/shenandoah/jdk8u/01-build/webrev.01/ Looks trivial. Verified and pushed: http://hg.openjdk.java.net/shenandoah/jdk8u/hotspot/rev/febbefbe2de7 -Aleksey From rkennke at redhat.com Wed May 23 09:04:16 2018 From: rkennke at redhat.com (Roman Kennke) Date: Wed, 23 May 2018 11:04:16 +0200 Subject: RFC: Make Traversal GC default in dev? Message-ID: <734F726E-7768-4AE8-A186-C256B1A65CC5@redhat.com> What speaks against making Traversal GC the default mode in dev branch? It seems to equal or exceed performance and latency in most cases, sometimes dramatically, it provides better footprint properties due to incremental-updatish algorithm, a simpler barrier story, etc. Early testers have uncovered some bugs, but now seem happy with it. What's holding it back? I think it would benefit from additional exposure at this point. Cheers, Roman -- Diese Nachricht wurde von meinem Android-Ger?t mit K-9 Mail gesendet. From shade at redhat.com Wed May 23 09:40:19 2018 From: shade at redhat.com (Aleksey Shipilev) Date: Wed, 23 May 2018 11:40:19 +0200 Subject: RFC: Make Traversal GC default in dev? In-Reply-To: <734F726E-7768-4AE8-A186-C256B1A65CC5@redhat.com> References: <734F726E-7768-4AE8-A186-C256B1A65CC5@redhat.com> Message-ID: On 05/23/2018 11:04 AM, Roman Kennke wrote: > What speaks against making Traversal GC the default mode in dev branch? It seems to equal or > exceed performance and latency in most cases, sometimes dramatically, it provides better > footprint properties due to incremental-updatish algorithm, a simpler barrier story, etc. Early > testers have uncovered some bugs, but now seem happy with it. What's holding it back? From the top of my head: 1) Throughput is not necessarily better: Compiler.* is ~4% slower, Derby is ~2% slower 2) There is no traversal in sh/jdk9 and sh/jdk8, and most of our adopters are on sh/jdk8, so not only this move would split our adopter user base, depending on what version they are running, but it also provides us no substantial exposure benefits. 3) Recent C2 barrier work have not been ported/verified for traversal? I believe traversal is the future going forward, but there are also engineering things we need to complete before we consider it to be default. -Aleksey P.S. Aren't you on vacation? From rkennke at redhat.com Wed May 23 09:56:47 2018 From: rkennke at redhat.com (Roman Kennke) Date: Wed, 23 May 2018 11:56:47 +0200 Subject: RFC: Make Traversal GC default in dev? In-Reply-To: References: <734F726E-7768-4AE8-A186-C256B1A65CC5@redhat.com> Message-ID: <161713D1-1B1C-483A-A3FD-DFB1366C150A@redhat.com> Yes I'm on vacation, that's why I don't think clear ;-) But it reminds me, can you check implementation of pacing in traversal? When I merged partial and traversal, this was one of the parts that I was not sure of, and which I probably messed up. Thanks, Roman Am 23. Mai 2018 11:40:19 MESZ schrieb Aleksey Shipilev : >On 05/23/2018 11:04 AM, Roman Kennke wrote: >> What speaks against making Traversal GC the default mode in dev >branch? It seems to equal or >> exceed performance and latency in most cases, sometimes dramatically, >it provides better >> footprint properties due to incremental-updatish algorithm, a simpler >barrier story, etc. Early >> testers have uncovered some bugs, but now seem happy with it. What's >holding it back? > >From the top of my head: > >1) Throughput is not necessarily better: Compiler.* is ~4% slower, >Derby is ~2% slower > >2) There is no traversal in sh/jdk9 and sh/jdk8, and most of our >adopters are on sh/jdk8, so not >only this move would split our adopter user base, depending on what >version they are running, but it >also provides us no substantial exposure benefits. > >3) Recent C2 barrier work have not been ported/verified for traversal? > >I believe traversal is the future going forward, but there are also >engineering things we need to >complete before we consider it to be default. > >-Aleksey > >P.S. Aren't you on vacation? -- Diese Nachricht wurde von meinem Android-Ger?t mit K-9 Mail gesendet. From shade at redhat.com Wed May 23 13:39:02 2018 From: shade at redhat.com (Aleksey Shipilev) Date: Wed, 23 May 2018 15:39:02 +0200 Subject: RFR: ClassUnloadingWithConcurrentMark should be opt-in with Shenandoah Message-ID: http://cr.openjdk.java.net/~shade/shenandoah/class-unload-optin/webrev.01/ Let's make class unloading with concurrent mark opt-in for Shenandoah. This saves occasional hiccups on applications that do not need class unloading to begin with. Since ClassUnloading is still enabled by default, Full GC would unload classes, if it comes to that. "aggressive" heuristics would unload the classes anyway, so the path that we are disabling for default heuristics is still tested. The downside is that once the classes start to leak, the class unloading is not there to save the day, and Init/Final Mark pause time would grow up scanning string table, SystemDictionary and friends. We can do nothing about it, until concurrent class unloading is implemented upstream. I have ran our usual benchmarks and saw no regressions in pause times. Testing: hotspot_gc_shenandoah, specjvm, specjbb Thanks, -Aleksey From zgu at redhat.com Wed May 23 13:51:35 2018 From: zgu at redhat.com (Zhengyu Gu) Date: Wed, 23 May 2018 09:51:35 -0400 Subject: RFR: ClassUnloadingWithConcurrentMark should be opt-in with Shenandoah In-Reply-To: References: Message-ID: Okay. -Zhengyu On 05/23/2018 09:39 AM, Aleksey Shipilev wrote: > http://cr.openjdk.java.net/~shade/shenandoah/class-unload-optin/webrev.01/ > > Let's make class unloading with concurrent mark opt-in for Shenandoah. This saves occasional hiccups > on applications that do not need class unloading to begin with. Since ClassUnloading is still > enabled by default, Full GC would unload classes, if it comes to that. "aggressive" heuristics would > unload the classes anyway, so the path that we are disabling for default heuristics is still tested. > > The downside is that once the classes start to leak, the class unloading is not there to save the > day, and Init/Final Mark pause time would grow up scanning string table, SystemDictionary and > friends. We can do nothing about it, until concurrent class unloading is implemented upstream. > > I have ran our usual benchmarks and saw no regressions in pause times. > > Testing: hotspot_gc_shenandoah, specjvm, specjbb > > Thanks, > -Aleksey > From rkennke at redhat.com Wed May 23 15:46:08 2018 From: rkennke at redhat.com (Roman Kennke) Date: Wed, 23 May 2018 17:46:08 +0200 Subject: RFR: ClassUnloadingWithConcurrentMark should be opt-in with Shenandoah In-Reply-To: References: Message-ID: <686F7CE8-0F9E-4ABE-AEB2-1D078591F475@redhat.com> I assume that traversal & co do the right thing too? Am 23. Mai 2018 15:39:02 MESZ schrieb Aleksey Shipilev : >http://cr.openjdk.java.net/~shade/shenandoah/class-unload-optin/webrev.01/ > >Let's make class unloading with concurrent mark opt-in for Shenandoah. >This saves occasional hiccups >on applications that do not need class unloading to begin with. Since >ClassUnloading is still >enabled by default, Full GC would unload classes, if it comes to that. >"aggressive" heuristics would >unload the classes anyway, so the path that we are disabling for >default heuristics is still tested. > >The downside is that once the classes start to leak, the class >unloading is not there to save the >day, and Init/Final Mark pause time would grow up scanning string >table, SystemDictionary and >friends. We can do nothing about it, until concurrent class unloading >is implemented upstream. > >I have ran our usual benchmarks and saw no regressions in pause times. > >Testing: hotspot_gc_shenandoah, specjvm, specjbb > >Thanks, >-Aleksey -- Diese Nachricht wurde von meinem Android-Ger?t mit K-9 Mail gesendet. From shade at redhat.com Wed May 23 15:48:22 2018 From: shade at redhat.com (Aleksey Shipilev) Date: Wed, 23 May 2018 17:48:22 +0200 Subject: RFR: ClassUnloadingWithConcurrentMark should be opt-in with Shenandoah In-Reply-To: <686F7CE8-0F9E-4ABE-AEB2-1D078591F475@redhat.com> References: <686F7CE8-0F9E-4ABE-AEB2-1D078591F475@redhat.com> Message-ID: <75ac35a0-fb17-1653-be0f-7a259188408f@redhat.com> On 05/23/2018 05:46 PM, Roman Kennke wrote: > I assume that traversal & co do the right thing too? I think so, because we done last week with +/-CU cover all heuristics. -Aleksey From rkennke at redhat.com Thu May 24 14:12:20 2018 From: rkennke at redhat.com (Roman Kennke) Date: Thu, 24 May 2018 16:12:20 +0200 Subject: RFR: ClassUnloadingWithConcurrentMark should be opt-in with Shenandoah In-Reply-To: <75ac35a0-fb17-1653-be0f-7a259188408f@redhat.com> References: <686F7CE8-0F9E-4ABE-AEB2-1D078591F475@redhat.com> <75ac35a0-fb17-1653-be0f-7a259188408f@redhat.com> Message-ID: <5F44E5B1-9B34-4800-AC0D-2631F3AF7F86@redhat.com> In case you're waiting for my ok: OK :-) Cheers from the sunny beach :-) Am 23. Mai 2018 17:48:22 MESZ schrieb Aleksey Shipilev : >On 05/23/2018 05:46 PM, Roman Kennke wrote: >> I assume that traversal & co do the right thing too? > >I think so, because we done last week with +/-CU cover all heuristics. > >-Aleksey -- Diese Nachricht wurde von meinem Android-Ger?t mit K-9 Mail gesendet. From ashipile at redhat.com Thu May 24 18:15:02 2018 From: ashipile at redhat.com (ashipile at redhat.com) Date: Thu, 24 May 2018 18:15:02 +0000 Subject: hg: shenandoah/jdk: ClassUnloadingWithConcurrentMark should be opt-in with Shenandoah Message-ID: <201805241815.w4OIF2tS000071@aojmv0008.oracle.com> Changeset: a67a29f42b95 Author: shade Date: 2018-05-23 12:30 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/a67a29f42b95 ClassUnloadingWithConcurrentMark should be opt-in with Shenandoah ! src/hotspot/share/gc/shenandoah/shenandoahArguments.cpp ! test/hotspot/jtreg/gc/shenandoah/options/TestClassUnloadingArguments.java From shade at redhat.com Thu May 24 18:24:26 2018 From: shade at redhat.com (Aleksey Shipilev) Date: Thu, 24 May 2018 20:24:26 +0200 Subject: RFR: Refactor and improve ShenandoahCodeRoots strategies Message-ID: http://cr.openjdk.java.net/~shade/shenandoah/codecache-styles-rework/webrev.01/ This refactors our support for different code root styles, and improves style-2 a lot. Style-0 and style-1 are just general cleanups. We would try and switch to a more optimal style-2 later, as performance runs complete. But I would appreciate reviews for the code changes themselves meanwhile. Testing: hotspot_gc_shenandoah with ShCodeRootsStyle={0,1,2}, benchmarks Thanks, -Aleksey From shade at redhat.com Fri May 25 11:18:23 2018 From: shade at redhat.com (Aleksey Shipilev) Date: Fri, 25 May 2018 13:18:23 +0200 Subject: RFR: Default to ShenandoahCodeRootsStyle = 2 Message-ID: <6f9f4f32-67f5-e8d9-1a14-0b8f923baa2e@redhat.com> This is the follow up to the recent improvements in code roots handling in Shenandoah: http://mail.openjdk.java.net/pipermail/shenandoah-dev/2018-May/006032.html This time, we are better off to switch to style-2, which gives us parallel code roots iteration, plus CSet filtering. The reason why style-2 is better than style-1 is because it does not visit the nmethods that are known not to have roots in the cset. The performance runs on our set of benchmarks shows that the "Initial Evacuation" time, and thus the "Final Mark" time had dropped significantly. Initial evac time, us Improvement style-0 style-1 style-2 1-over-0 2-over-1 Test A 6449 1596 298 304% 436% Test B 6381 1656 243 285% 581% Test C 906 351 108 158% 225% Test D 1021 490 88 108% 457% Test E 1386 653 103 112% 534% Test F 1022 702 664 46% 6% Test G 2500 806 74 210% 989% Test H 1500 688 568 118% 21% Test I 696 463 220 50% 110% Test J 708 336 101 111% 233% Test K 604 330 96 83% 244% Test L 701 403 88 74% 358% Test M 1074 332 272 223% 22% Test N 769 330 120 133% 175% Test O 679 390 265 74% 47% Test P 1332 518 78 157% 564% Test Q 1188 461 174 158% 165% Test R 5475 1697 652 223% 160% Test S 2413 926 142 161% 552% There are other potential improvements we can do in style-2 in future, but even this provides us with nice performance improvements. Change: diff -r ef24f20c2fae src/hotspot/share/gc/shenandoah/shenandoah_globals.hpp --- a/src/hotspot/share/gc/shenandoah/shenandoah_globals.hpp Thu May 24 20:20:48 2018 +0200 +++ b/src/hotspot/share/gc/shenandoah/shenandoah_globals.hpp Fri May 25 12:21:25 2018 +0200 @@ -207,7 +207,7 @@ "Evacuate code roots concurrently, instead of during a pause. " \ "This requires ShenandoahBarriersForConst to be enabled.") \ \ - experimental(uintx, ShenandoahCodeRootsStyle, 1, \ + experimental(uintx, ShenandoahCodeRootsStyle, 2, \ "Use this style to scan code cache:" \ " 0 - sequential iterator;" \ " 1 - parallel iterator;" \ Testing: hotspot_gc_shenandoah Thanks, -Aleksey From shade at redhat.com Tue May 29 19:20:23 2018 From: shade at redhat.com (Aleksey Shipilev) Date: Tue, 29 May 2018 21:20:23 +0200 Subject: RFR: Mark-compact performance improvements and cleanups Message-ID: <00cd7233-0a13-4f86-f364-982a5c89075c@redhat.com> http://cr.openjdk.java.net/~shade/shenandoah/mark-compact-improvs/webrev.01/ This is the pack of mark-compact cleanups and improvements. *) mc-logging: More verbose profiling for phase 4 in mark-compact Adds a few more profiling points in "Copy object" phase of mark compact, which enables better performance diagnostics. *) mc-liveness: Full GC always comes with liveness data We used to skip liveness counting for mark-compact, because the core algorithm does not require it. It provided some boosts when our liveness calculation was a major performance hog. It is not anymore, and having liveness data enables us to do shortcuts, like below. This also cleans up shared code substantially. *) mc-immediate-trash: Reclaim immediate garbage after mark-compact marking Once we know liveness, we can reclaim immediate garbage regions right after marking. This lets threads down below treat the regions as the targets for compaction immediately, instead of compacting through them. This is especially important for figuring out compaction for humongous regions, which is planned before the regular object moves. *) mc-shortcut-live: Shortcut regions that are known not to be alive Same here, liveness provides us with insight if we even want to walk marked objects in the region, or not. For the fully-garbage region it would be futile, and it will yield no marked objects. Motivational performance data: - Serial: 8191M->4M Full GC cycles before: Pause Full GC (N) = 0.90 s (a = 64425 us) (n = 14) (lvls, us = 56250, 56836, 57617, 58594, 103983) after: Pause Full GC (N) = 0.22 s (a = 14914 us) (n = 15) (lvls, us = 12891, 13281, 14453, 15820, 16818) - retain.tree: 10239M->1070M Full GC cycles before: Pause Full GC (N) = 3.50 s (a = 291548 us) (n = 12) (lvls, us = 275391, 281250, 287109, 296875, 314651) after: Pause Full GC (N) = 3.54 s (a = 294925 us) (n = 12) (lvls, us = 285156, 287109, 292969, 296875, 304701) - LRUFragger: 102138M->65687M Full GC cycles before: Pause Full GC (N) = 151.24 s (a = 4726195 us) (n = 32) (lvls, us = 4570312, 4648438, 4707031, 4765625, 4889809) after: Pause Full GC (N) = 153.10 s (a = 4784420 us) (n = 32) (lvls, us = 4667969, 4746094, 4765625, 4804688, 4929369) Testing: hotspot_gc_shenandoah {fastdebug|release}, benchmarks Thanks, -Aleksey From zgu at redhat.com Tue May 29 19:54:15 2018 From: zgu at redhat.com (Zhengyu Gu) Date: Tue, 29 May 2018 15:54:15 -0400 Subject: RFR: Shenandoah String Dedup refactoring Message-ID: Hi, This refactoring is based on upstream JDK-8203641, which is still under review (http://mail.openjdk.java.net/pipermail/hotspot-dev/2018-May/032565.html). We initially borrowed G1's string deduplication implementation, but we diverged at one point, due to we may need to enqueue candidates inside write barrier. It is not the case anymore. Once JDK-8203641 upstreamed, we can share dedup table and thread implementation, only need to plugin in our queue implementation. It looks like StringDedupTable is another candidate to be replaced by ConcurrentHashTable, we should be able to benefit from it too. Webrev: http://cr.openjdk.java.net/~zgu/shenandoah/dedup_shared_refactor/webrev.00/ Test: hotspot_gc_shenandoah (fastdebug and release) Thanks, -Zhengyu From zgu at redhat.com Tue May 29 20:00:04 2018 From: zgu at redhat.com (Zhengyu Gu) Date: Tue, 29 May 2018 16:00:04 -0400 Subject: RFR: Shenandoah String Dedup refactoring In-Reply-To: References: Message-ID: Shenandoah only webrev: http://cr.openjdk.java.net/~zgu/shenandoah/dedup_shared_refactor/sh-only/webrev.00/ Thanks, -Zhengyu On 05/29/2018 03:54 PM, Zhengyu Gu wrote: > Hi, > > This refactoring is based on upstream JDK-8203641, which is still under > review > (http://mail.openjdk.java.net/pipermail/hotspot-dev/2018-May/032565.html). > > We initially borrowed G1's string deduplication implementation, but we > diverged at one point, due to we may need to enqueue candidates inside > write barrier. It is not the case anymore. > > Once JDK-8203641 upstreamed, we can share dedup table and thread > implementation, only need to plugin in our queue implementation. > > It looks like StringDedupTable is another candidate to be replaced by > ConcurrentHashTable, we should be able to benefit from it too. > > > Webrev: > http://cr.openjdk.java.net/~zgu/shenandoah/dedup_shared_refactor/webrev.00/ > > > Test: > ? hotspot_gc_shenandoah (fastdebug and release) > > Thanks, > > -Zhengyu > From zgu at redhat.com Tue May 29 21:22:09 2018 From: zgu at redhat.com (Zhengyu Gu) Date: Tue, 29 May 2018 17:22:09 -0400 Subject: RFR: Mark-compact performance improvements and cleanups In-Reply-To: <00cd7233-0a13-4f86-f364-982a5c89075c@redhat.com> References: <00cd7233-0a13-4f86-f364-982a5c89075c@redhat.com> Message-ID: <2f03a145-dfa7-73ff-1f14-5c4df08e2d00@redhat.com> Good to me. -Zhengyu On 05/29/2018 03:20 PM, Aleksey Shipilev wrote: > http://cr.openjdk.java.net/~shade/shenandoah/mark-compact-improvs/webrev.01/ > > This is the pack of mark-compact cleanups and improvements. > > *) mc-logging: More verbose profiling for phase 4 in mark-compact > > Adds a few more profiling points in "Copy object" phase of mark compact, which enables better > performance diagnostics. > > *) mc-liveness: Full GC always comes with liveness data > > We used to skip liveness counting for mark-compact, because the core algorithm does not require it. > It provided some boosts when our liveness calculation was a major performance hog. It is not > anymore, and having liveness data enables us to do shortcuts, like below. This also cleans up shared > code substantially. > > *) mc-immediate-trash: Reclaim immediate garbage after mark-compact marking > > Once we know liveness, we can reclaim immediate garbage regions right after marking. This lets > threads down below treat the regions as the targets for compaction immediately, instead of > compacting through them. This is especially important for figuring out compaction for humongous > regions, which is planned before the regular object moves. > > *) mc-shortcut-live: Shortcut regions that are known not to be alive > > Same here, liveness provides us with insight if we even want to walk marked objects in the region, > or not. For the fully-garbage region it would be futile, and it will yield no marked objects. > > Motivational performance data: > > - Serial: 8191M->4M Full GC cycles > > before: > Pause Full GC (N) = 0.90 s (a = 64425 us) (n = 14) > (lvls, us = 56250, 56836, 57617, 58594, 103983) > > after: > Pause Full GC (N) = 0.22 s (a = 14914 us) (n = 15) > (lvls, us = 12891, 13281, 14453, 15820, 16818) > > - retain.tree: 10239M->1070M Full GC cycles > > before: > Pause Full GC (N) = 3.50 s (a = 291548 us) (n = 12) > (lvls, us = 275391, 281250, 287109, 296875, 314651) > > after: > Pause Full GC (N) = 3.54 s (a = 294925 us) (n = 12) > (lvls, us = 285156, 287109, 292969, 296875, 304701) > > - LRUFragger: 102138M->65687M Full GC cycles > > before: > Pause Full GC (N) = 151.24 s (a = 4726195 us) (n = 32) > (lvls, us = 4570312, 4648438, 4707031, 4765625, 4889809) > > after: > Pause Full GC (N) = 153.10 s (a = 4784420 us) (n = 32) > (lvls, us = 4667969, 4746094, 4765625, 4804688, 4929369) > > Testing: hotspot_gc_shenandoah {fastdebug|release}, benchmarks > > Thanks, > -Aleksey > From shade at redhat.com Tue May 29 22:07:31 2018 From: shade at redhat.com (Aleksey Shipilev) Date: Wed, 30 May 2018 00:07:31 +0200 Subject: RFR: Refactor and improve ShenandoahCodeRoots strategies In-Reply-To: References: Message-ID: <40940038-5d35-7c9f-07ff-88a64598628f@redhat.com> Ping. On 05/24/2018 08:24 PM, Aleksey Shipilev wrote: > http://cr.openjdk.java.net/~shade/shenandoah/codecache-styles-rework/webrev.01/ > > This refactors our support for different code root styles, and improves style-2 a lot. Style-0 and > style-1 are just general cleanups. We would try and switch to a more optimal style-2 later, as > performance runs complete. But I would appreciate reviews for the code changes themselves meanwhile. > > Testing: hotspot_gc_shenandoah with ShCodeRootsStyle={0,1,2}, benchmarks > > Thanks, > -Aleksey > From shade at redhat.com Tue May 29 22:07:41 2018 From: shade at redhat.com (Aleksey Shipilev) Date: Wed, 30 May 2018 00:07:41 +0200 Subject: RFR: Default to ShenandoahCodeRootsStyle = 2 In-Reply-To: <6f9f4f32-67f5-e8d9-1a14-0b8f923baa2e@redhat.com> References: <6f9f4f32-67f5-e8d9-1a14-0b8f923baa2e@redhat.com> Message-ID: Ping. On 05/25/2018 01:18 PM, Aleksey Shipilev wrote: > This is the follow up to the recent improvements in code roots handling in Shenandoah: > http://mail.openjdk.java.net/pipermail/shenandoah-dev/2018-May/006032.html > > This time, we are better off to switch to style-2, which gives us parallel code roots iteration, > plus CSet filtering. The reason why style-2 is better than style-1 is because it does not visit the > nmethods that are known not to have roots in the cset. The performance runs on our set of benchmarks > shows that the "Initial Evacuation" time, and thus the "Final Mark" time had dropped significantly. > > Initial evac time, us Improvement > style-0 style-1 style-2 1-over-0 2-over-1 > Test A 6449 1596 298 304% 436% > Test B 6381 1656 243 285% 581% > Test C 906 351 108 158% 225% > Test D 1021 490 88 108% 457% > Test E 1386 653 103 112% 534% > Test F 1022 702 664 46% 6% > Test G 2500 806 74 210% 989% > Test H 1500 688 568 118% 21% > Test I 696 463 220 50% 110% > Test J 708 336 101 111% 233% > Test K 604 330 96 83% 244% > Test L 701 403 88 74% 358% > Test M 1074 332 272 223% 22% > Test N 769 330 120 133% 175% > Test O 679 390 265 74% 47% > Test P 1332 518 78 157% 564% > Test Q 1188 461 174 158% 165% > Test R 5475 1697 652 223% 160% > Test S 2413 926 142 161% 552% > > There are other potential improvements we can do in style-2 in future, but even this provides us > with nice performance improvements. > > Change: > > diff -r ef24f20c2fae src/hotspot/share/gc/shenandoah/shenandoah_globals.hpp > --- a/src/hotspot/share/gc/shenandoah/shenandoah_globals.hpp Thu May 24 20:20:48 2018 +0200 > +++ b/src/hotspot/share/gc/shenandoah/shenandoah_globals.hpp Fri May 25 12:21:25 2018 +0200 > @@ -207,7 +207,7 @@ > "Evacuate code roots concurrently, instead of during a pause. " \ > "This requires ShenandoahBarriersForConst to be enabled.") \ > \ > - experimental(uintx, ShenandoahCodeRootsStyle, 1, \ > + experimental(uintx, ShenandoahCodeRootsStyle, 2, \ > "Use this style to scan code cache:" \ > " 0 - sequential iterator;" \ > " 1 - parallel iterator;" \ > > Testing: hotspot_gc_shenandoah > > Thanks, > -Aleksey > From rkennke at redhat.com Tue May 29 22:10:18 2018 From: rkennke at redhat.com (Roman Kennke) Date: Wed, 30 May 2018 00:10:18 +0200 Subject: RFR: Refactor and improve ShenandoahCodeRoots strategies In-Reply-To: <40940038-5d35-7c9f-07ff-88a64598628f@redhat.com> References: <40940038-5d35-7c9f-07ff-88a64598628f@redhat.com> Message-ID: <1244DE74-65B2-4F47-B984-37B6D6B7C888@redhat.com> Will review the code roots stuff when I'm back ... on Thursday, unless somebody beats me. Roman Am 30. Mai 2018 00:07:31 MESZ schrieb Aleksey Shipilev : >Ping. > >On 05/24/2018 08:24 PM, Aleksey Shipilev wrote: >> >http://cr.openjdk.java.net/~shade/shenandoah/codecache-styles-rework/webrev.01/ >> >> This refactors our support for different code root styles, and >improves style-2 a lot. Style-0 and >> style-1 are just general cleanups. We would try and switch to a more >optimal style-2 later, as >> performance runs complete. But I would appreciate reviews for the >code changes themselves meanwhile. >> >> Testing: hotspot_gc_shenandoah with ShCodeRootsStyle={0,1,2}, >benchmarks >> >> Thanks, >> -Aleksey >> -- Diese Nachricht wurde von meinem Android-Ger?t mit K-9 Mail gesendet. From zgu at redhat.com Wed May 30 01:56:17 2018 From: zgu at redhat.com (Zhengyu Gu) Date: Tue, 29 May 2018 21:56:17 -0400 Subject: RFR: Default to ShenandoahCodeRootsStyle = 2 In-Reply-To: References: <6f9f4f32-67f5-e8d9-1a14-0b8f923baa2e@redhat.com> Message-ID: <8206d34b-669d-44f3-3211-573e526278b8@redhat.com> Numbers are good! so good to me. -Zhengyu On 05/29/2018 06:07 PM, Aleksey Shipilev wrote: > Ping. > > On 05/25/2018 01:18 PM, Aleksey Shipilev wrote: >> This is the follow up to the recent improvements in code roots handling in Shenandoah: >> http://mail.openjdk.java.net/pipermail/shenandoah-dev/2018-May/006032.html >> >> This time, we are better off to switch to style-2, which gives us parallel code roots iteration, >> plus CSet filtering. The reason why style-2 is better than style-1 is because it does not visit the >> nmethods that are known not to have roots in the cset. The performance runs on our set of benchmarks >> shows that the "Initial Evacuation" time, and thus the "Final Mark" time had dropped significantly. >> >> Initial evac time, us Improvement >> style-0 style-1 style-2 1-over-0 2-over-1 >> Test A 6449 1596 298 304% 436% >> Test B 6381 1656 243 285% 581% >> Test C 906 351 108 158% 225% >> Test D 1021 490 88 108% 457% >> Test E 1386 653 103 112% 534% >> Test F 1022 702 664 46% 6% >> Test G 2500 806 74 210% 989% >> Test H 1500 688 568 118% 21% >> Test I 696 463 220 50% 110% >> Test J 708 336 101 111% 233% >> Test K 604 330 96 83% 244% >> Test L 701 403 88 74% 358% >> Test M 1074 332 272 223% 22% >> Test N 769 330 120 133% 175% >> Test O 679 390 265 74% 47% >> Test P 1332 518 78 157% 564% >> Test Q 1188 461 174 158% 165% >> Test R 5475 1697 652 223% 160% >> Test S 2413 926 142 161% 552% >> >> There are other potential improvements we can do in style-2 in future, but even this provides us >> with nice performance improvements. >> >> Change: >> >> diff -r ef24f20c2fae src/hotspot/share/gc/shenandoah/shenandoah_globals.hpp >> --- a/src/hotspot/share/gc/shenandoah/shenandoah_globals.hpp Thu May 24 20:20:48 2018 +0200 >> +++ b/src/hotspot/share/gc/shenandoah/shenandoah_globals.hpp Fri May 25 12:21:25 2018 +0200 >> @@ -207,7 +207,7 @@ >> "Evacuate code roots concurrently, instead of during a pause. " \ >> "This requires ShenandoahBarriersForConst to be enabled.") \ >> \ >> - experimental(uintx, ShenandoahCodeRootsStyle, 1, \ >> + experimental(uintx, ShenandoahCodeRootsStyle, 2, \ >> "Use this style to scan code cache:" \ >> " 0 - sequential iterator;" \ >> " 1 - parallel iterator;" \ >> >> Testing: hotspot_gc_shenandoah >> >> Thanks, >> -Aleksey >> > > From shade at redhat.com Wed May 30 12:17:12 2018 From: shade at redhat.com (Aleksey Shipilev) Date: Wed, 30 May 2018 14:17:12 +0200 Subject: RFR: Mark-compact performance improvements and cleanups In-Reply-To: <00cd7233-0a13-4f86-f364-982a5c89075c@redhat.com> References: <00cd7233-0a13-4f86-f364-982a5c89075c@redhat.com> Message-ID: <7c52e8b5-f5f2-7254-2e34-3a5514c2152a@redhat.com> On 05/29/2018 09:20 PM, Aleksey Shipilev wrote: > http://cr.openjdk.java.net/~shade/shenandoah/mark-compact-improvs/webrev.01/ > > This is the pack of mark-compact cleanups and improvements. > > *) mc-logging: More verbose profiling for phase 4 in mark-compact > > Adds a few more profiling points in "Copy object" phase of mark compact, which enables better > performance diagnostics. > > *) mc-liveness: Full GC always comes with liveness data > > We used to skip liveness counting for mark-compact, because the core algorithm does not require it. > It provided some boosts when our liveness calculation was a major performance hog. It is not > anymore, and having liveness data enables us to do shortcuts, like below. This also cleans up shared > code substantially. > > *) mc-immediate-trash: Reclaim immediate garbage after mark-compact marking > > Once we know liveness, we can reclaim immediate garbage regions right after marking. This lets > threads down below treat the regions as the targets for compaction immediately, instead of > compacting through them. This is especially important for figuring out compaction for humongous > regions, which is planned before the regular object moves. > > *) mc-shortcut-live: Shortcut regions that are known not to be alive > > Same here, liveness provides us with insight if we even want to walk marked objects in the region, > or not. For the fully-garbage region it would be futile, and it will yield no marked objects. A few more touchups and code moves here: http://cr.openjdk.java.net/~shade/shenandoah/mark-compact-improvs/webrev.02/ *) mc-recycle-once: Recycle the regions only once There is no need to recycle before the mark, if we are recycling after mark anyway. *) mc-prepare-mark-closure: Rename and move ShenandoahPrepareForMarkClosure Renames and moves the closure to its only use. Testing: hotspot_gc_shenandoah, benchmarks Thanks, -Aleksey From zgu at redhat.com Wed May 30 13:46:53 2018 From: zgu at redhat.com (Zhengyu Gu) Date: Wed, 30 May 2018 09:46:53 -0400 Subject: Status 2018-05-30 Message-ID: <74b4c880-9be7-baea-fd25-228eccc53fb7@redhat.com> Last Week: ---------- String deduplication refactoring: Upstream: 8203641: Refactor String Deduplication into shared Under review: http://mail.openjdk.java.net/pipermail/hotspot-dev/2018-May/032565.html Shenandoah: http://mail.openjdk.java.net/pipermail/shenandoah-dev/2018-May/006036.html Other: Looked into upstream StringTable, class unloading changes. Tried to build Solaris x86 VBox, so I don't have to bug Oracle folks for submit errors. Unfortunately, could not patch up to the level required to build jdk. Next Week: ---------- Depends on what come out of Shenandoah status discussion. Thanks, -Zhengyu From shade at redhat.com Wed May 30 16:01:32 2018 From: shade at redhat.com (Aleksey Shipilev) Date: Wed, 30 May 2018 18:01:32 +0200 Subject: RFR: Cherry-pick JDK-8203628: Optimize (masked) byte memory comparisons on x86 Message-ID: <93e34a0d-235f-527e-fd93-60f5292c8124@redhat.com> http://cr.openjdk.java.net/~shade/shenandoah/pick-8203628/webrev.01/ This is something we have upstreamed, and now it comes back in this form. Let's cherry-pick to simplify the merge. Testing: hotspot_fast_gc_shenandoah Thanks, -Aleksey From zgu at redhat.com Wed May 30 16:30:56 2018 From: zgu at redhat.com (Zhengyu Gu) Date: Wed, 30 May 2018 12:30:56 -0400 Subject: RFR: Cherry-pick JDK-8203628: Optimize (masked) byte memory comparisons on x86 In-Reply-To: <93e34a0d-235f-527e-fd93-60f5292c8124@redhat.com> References: <93e34a0d-235f-527e-fd93-60f5292c8124@redhat.com> Message-ID: Okay. -Zhengyu On 05/30/2018 12:01 PM, Aleksey Shipilev wrote: > http://cr.openjdk.java.net/~shade/shenandoah/pick-8203628/webrev.01/ > > This is something we have upstreamed, and now it comes back in this form. Let's cherry-pick to > simplify the merge. > > Testing: hotspot_fast_gc_shenandoah > > Thanks, > -Aleksey > From ashipile at redhat.com Wed May 30 16:37:12 2018 From: ashipile at redhat.com (ashipile at redhat.com) Date: Wed, 30 May 2018 16:37:12 +0000 Subject: hg: shenandoah/jdk: Cherry-pick JDK-8203628: Optimize (masked) byte memory comparisons on x86 Message-ID: <201805301637.w4UGbCkD016683@aojmv0008.oracle.com> Changeset: 3cb01cd3d106 Author: shade Date: 2018-05-28 09:05 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/3cb01cd3d106 Cherry-pick JDK-8203628: Optimize (masked) byte memory comparisons on x86 ! src/hotspot/cpu/x86/x86_64.ad From rkennke at redhat.com Thu May 31 08:22:41 2018 From: rkennke at redhat.com (Roman Kennke) Date: Thu, 31 May 2018 10:22:41 +0200 Subject: RFR: Refactor and improve ShenandoahCodeRoots strategies In-Reply-To: References: Message-ID: Am 24.05.2018 um 20:24 schrieb Aleksey Shipilev: > http://cr.openjdk.java.net/~shade/shenandoah/codecache-styles-rework/webrev.01/ > > This refactors our support for different code root styles, and improves style-2 a lot. Style-0 and > style-1 are just general cleanups. We would try and switch to a more optimal style-2 later, as > performance runs complete. But I would appreciate reviews for the code changes themselves meanwhile. > > Testing: hotspot_gc_shenandoah with ShCodeRootsStyle={0,1,2}, benchmarks > > Thanks, > -Aleksey > Looks good to me. Thanks! Roman From rkennke at redhat.com Thu May 31 08:38:29 2018 From: rkennke at redhat.com (Roman Kennke) Date: Thu, 31 May 2018 10:38:29 +0200 Subject: RFR: Default to ShenandoahCodeRootsStyle = 2 In-Reply-To: <6f9f4f32-67f5-e8d9-1a14-0b8f923baa2e@redhat.com> References: <6f9f4f32-67f5-e8d9-1a14-0b8f923baa2e@redhat.com> Message-ID: <64796103-efbb-1f8d-cdc7-973e3a1380e8@redhat.com> I'm fine with this. Thank you! Roman > This is the follow up to the recent improvements in code roots handling in Shenandoah: > http://mail.openjdk.java.net/pipermail/shenandoah-dev/2018-May/006032.html > > This time, we are better off to switch to style-2, which gives us parallel code roots iteration, > plus CSet filtering. The reason why style-2 is better than style-1 is because it does not visit the > nmethods that are known not to have roots in the cset. The performance runs on our set of benchmarks > shows that the "Initial Evacuation" time, and thus the "Final Mark" time had dropped significantly. > > Initial evac time, us Improvement > style-0 style-1 style-2 1-over-0 2-over-1 > Test A 6449 1596 298 304% 436% > Test B 6381 1656 243 285% 581% > Test C 906 351 108 158% 225% > Test D 1021 490 88 108% 457% > Test E 1386 653 103 112% 534% > Test F 1022 702 664 46% 6% > Test G 2500 806 74 210% 989% > Test H 1500 688 568 118% 21% > Test I 696 463 220 50% 110% > Test J 708 336 101 111% 233% > Test K 604 330 96 83% 244% > Test L 701 403 88 74% 358% > Test M 1074 332 272 223% 22% > Test N 769 330 120 133% 175% > Test O 679 390 265 74% 47% > Test P 1332 518 78 157% 564% > Test Q 1188 461 174 158% 165% > Test R 5475 1697 652 223% 160% > Test S 2413 926 142 161% 552% > > There are other potential improvements we can do in style-2 in future, but even this provides us > with nice performance improvements. > > Change: > > diff -r ef24f20c2fae src/hotspot/share/gc/shenandoah/shenandoah_globals.hpp > --- a/src/hotspot/share/gc/shenandoah/shenandoah_globals.hpp Thu May 24 20:20:48 2018 +0200 > +++ b/src/hotspot/share/gc/shenandoah/shenandoah_globals.hpp Fri May 25 12:21:25 2018 +0200 > @@ -207,7 +207,7 @@ > "Evacuate code roots concurrently, instead of during a pause. " \ > "This requires ShenandoahBarriersForConst to be enabled.") \ > \ > - experimental(uintx, ShenandoahCodeRootsStyle, 1, \ > + experimental(uintx, ShenandoahCodeRootsStyle, 2, \ > "Use this style to scan code cache:" \ > " 0 - sequential iterator;" \ > " 1 - parallel iterator;" \ > > Testing: hotspot_gc_shenandoah > > Thanks, > -Aleksey > From rkennke at redhat.com Thu May 31 08:45:10 2018 From: rkennke at redhat.com (Roman Kennke) Date: Thu, 31 May 2018 10:45:10 +0200 Subject: RFR: Mark-compact performance improvements and cleanups In-Reply-To: <7c52e8b5-f5f2-7254-2e34-3a5514c2152a@redhat.com> References: <00cd7233-0a13-4f86-f364-982a5c89075c@redhat.com> <7c52e8b5-f5f2-7254-2e34-3a5514c2152a@redhat.com> Message-ID: Am 30.05.2018 um 14:17 schrieb Aleksey Shipilev: > On 05/29/2018 09:20 PM, Aleksey Shipilev wrote: >> http://cr.openjdk.java.net/~shade/shenandoah/mark-compact-improvs/webrev.01/ >> >> This is the pack of mark-compact cleanups and improvements. >> >> *) mc-logging: More verbose profiling for phase 4 in mark-compact >> >> Adds a few more profiling points in "Copy object" phase of mark compact, which enables better >> performance diagnostics. >> >> *) mc-liveness: Full GC always comes with liveness data >> >> We used to skip liveness counting for mark-compact, because the core algorithm does not require it. >> It provided some boosts when our liveness calculation was a major performance hog. It is not >> anymore, and having liveness data enables us to do shortcuts, like below. This also cleans up shared >> code substantially. >> >> *) mc-immediate-trash: Reclaim immediate garbage after mark-compact marking >> >> Once we know liveness, we can reclaim immediate garbage regions right after marking. This lets >> threads down below treat the regions as the targets for compaction immediately, instead of >> compacting through them. This is especially important for figuring out compaction for humongous >> regions, which is planned before the regular object moves. >> >> *) mc-shortcut-live: Shortcut regions that are known not to be alive >> >> Same here, liveness provides us with insight if we even want to walk marked objects in the region, >> or not. For the fully-garbage region it would be futile, and it will yield no marked objects. > > A few more touchups and code moves here: > http://cr.openjdk.java.net/~shade/shenandoah/mark-compact-improvs/webrev.02/ > > *) mc-recycle-once: Recycle the regions only once > > There is no need to recycle before the mark, if we are recycling after mark anyway. > > *) mc-prepare-mark-closure: Rename and move ShenandoahPrepareForMarkClosure > > Renames and moves the closure to its only use. > > Testing: hotspot_gc_shenandoah, benchmarks > The change looks good to me. +1 about the liveness counting. This does, in fact, raise the question about the interaction between full-gc (with or without liveness counting) and traversal: next traversal cycle after full-gc will use liveness data for heuristics decision. Do we need to clean liveness after full-gc (which basically resets to the initial state before first-ever cycle) ? Or should we fix liveness data after full-gc compaction? Because the marked liveness will not be correct. I suspect fixing it up gives us better data to base heuristics on... Roman From shade at redhat.com Thu May 31 08:49:20 2018 From: shade at redhat.com (Aleksey Shipilev) Date: Thu, 31 May 2018 10:49:20 +0200 Subject: RFR: Mark-compact performance improvements and cleanups In-Reply-To: References: <00cd7233-0a13-4f86-f364-982a5c89075c@redhat.com> <7c52e8b5-f5f2-7254-2e34-3a5514c2152a@redhat.com> Message-ID: On 05/31/2018 10:45 AM, Roman Kennke wrote: > This does, in fact, raise the question about the interaction between > full-gc (with or without liveness counting) and traversal: next > traversal cycle after full-gc will use liveness data for heuristics > decision. Do we need to clean liveness after full-gc (which basically > resets to the initial state before first-ever cycle) ? Or should we fix > liveness data after full-gc compaction? Because the marked liveness will > not be correct. I suspect fixing it up gives us better data to base > heuristics on... I think ShenandoahPostCompactClosure (re)sets the amount of live data after Full GC, to what heap looks like after compaction. E.g. all compacted regions would be set "live" = "used", which is what Traversal would expect? See: class ShenandoahPostCompactClosure : public ShenandoahHeapRegionClosure { bool heap_region_do(ShenandoahHeapRegion* r) { ... size_t live = r->used(); ... r->set_live_data(live); } } Thanks, -Aleksey From rkennke at redhat.com Thu May 31 08:54:44 2018 From: rkennke at redhat.com (Roman Kennke) Date: Thu, 31 May 2018 10:54:44 +0200 Subject: RFR: Mark-compact performance improvements and cleanups In-Reply-To: References: <00cd7233-0a13-4f86-f364-982a5c89075c@redhat.com> <7c52e8b5-f5f2-7254-2e34-3a5514c2152a@redhat.com> Message-ID: <6db4585b-3a3e-5072-1bc1-4b75b31c5ae6@redhat.com> Am 31.05.2018 um 10:49 schrieb Aleksey Shipilev: > On 05/31/2018 10:45 AM, Roman Kennke wrote: >> This does, in fact, raise the question about the interaction between >> full-gc (with or without liveness counting) and traversal: next >> traversal cycle after full-gc will use liveness data for heuristics >> decision. Do we need to clean liveness after full-gc (which basically >> resets to the initial state before first-ever cycle) ? Or should we fix >> liveness data after full-gc compaction? Because the marked liveness will >> not be correct. I suspect fixing it up gives us better data to base >> heuristics on... > > I think ShenandoahPostCompactClosure (re)sets the amount of live data after Full GC, to what heap > looks like after compaction. E.g. all compacted regions would be set "live" = "used", which is what > Traversal would expect? See: > > class ShenandoahPostCompactClosure : public ShenandoahHeapRegionClosure { > > bool heap_region_do(ShenandoahHeapRegion* r) { > ... > > size_t live = r->used(); > > ... > > r->set_live_data(live); > } > } > Ah! Very well then! Go! Thanks! Roman From ashipile at redhat.com Thu May 31 10:31:23 2018 From: ashipile at redhat.com (ashipile at redhat.com) Date: Thu, 31 May 2018 10:31:23 +0000 Subject: hg: shenandoah/jdk: 8 new changesets Message-ID: <201805311031.w4VAVNTD020295@aojmv0008.oracle.com> Changeset: bea3d5a5f725 Author: shade Date: 2018-05-30 18:40 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/bea3d5a5f725 More verbose profiling for phase 4 in mark-compact ! src/hotspot/share/gc/shenandoah/shenandoahMarkCompact.cpp ! src/hotspot/share/gc/shenandoah/shenandoahPhaseTimings.cpp ! src/hotspot/share/gc/shenandoah/shenandoahPhaseTimings.hpp Changeset: 70e4ee1ac2ed Author: shade Date: 2018-05-30 18:40 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/70e4ee1ac2ed Full GC always comes with liveness data ! 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/shenandoahTraversalGC.cpp ! src/hotspot/share/gc/shenandoah/shenandoah_globals.hpp Changeset: d79d9547c9f8 Author: shade Date: 2018-05-30 18:40 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/d79d9547c9f8 Recycle the regions only once ! src/hotspot/share/gc/shenandoah/shenandoahMarkCompact.cpp Changeset: 6229aee0f5b6 Author: shade Date: 2018-05-30 18:40 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/6229aee0f5b6 Rename and move ShenandoahPrepareForMarkClosure ! src/hotspot/share/gc/shenandoah/shenandoahMarkCompact.cpp Changeset: 6aac55a8eb4c Author: shade Date: 2018-05-31 12:29 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/6aac55a8eb4c Reclaim immediate garbage after mark-compact marking ! src/hotspot/share/gc/shenandoah/shenandoahMarkCompact.cpp Changeset: fbcc4573c51f Author: shade Date: 2018-05-31 12:29 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/fbcc4573c51f Shortcut regions that are known not to be alive ! src/hotspot/share/gc/shenandoah/shenandoahMarkCompact.cpp Changeset: 1ed95ba23cce Author: shade Date: 2018-05-31 12:29 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/1ed95ba23cce Refactor and improve ShenandoahCodeRoots strategies ! src/hotspot/share/gc/shenandoah/shenandoahCodeRoots.cpp ! src/hotspot/share/gc/shenandoah/shenandoahCodeRoots.hpp ! src/hotspot/share/gc/shenandoah/shenandoah_globals.hpp Changeset: 0adcdbbca5cd Author: shade Date: 2018-05-31 12:29 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/0adcdbbca5cd Default to ShenandoahCodeRootsStyle = 2 ! src/hotspot/share/gc/shenandoah/shenandoah_globals.hpp From shade at redhat.com Thu May 31 12:32:32 2018 From: shade at redhat.com (Aleksey Shipilev) Date: Thu, 31 May 2018 14:32:32 +0200 Subject: RFR: Slowdebug build failed after "Refactor and improve ShenandoahCodeRoots strategies" Message-ID: <17cdb955-89d5-4522-1fdb-8d41c09be882@redhat.com> Current assert works by sheer luck. It compares oop*, not oop, and so it mismatches the signature of unsafe_equals in slowdebug: diff -r 0adcdbbca5cd src/hotspot/share/gc/shenandoah/shenandoahCodeRoots.cpp --- a/src/hotspot/share/gc/shenandoah/shenandoahCodeRoots.cpp Thu May 31 12:29:14 2018 +0200 +++ b/src/hotspot/share/gc/shenandoah/shenandoahCodeRoots.cpp Thu May 31 14:25:02 2018 +0200 @@ -293,7 +293,7 @@ void ShenandoahNMethod::assert_same_oops(GrowableArray* oops) { assert(_oops_count == oops->length(), "should have the same number of oop*"); for (int c = 0; c < _oops_count; c++) { - assert(oopDesc::unsafe_equals(_oops[c], oops->at(c)), "should be the same oop*"); + assert(_oops[c] == oops->at(c), "should be the same oop*"); } } #endif Testing: {release, fastdebug, slowdebug} builds Thanks, -Aleksey From rkennke at redhat.com Thu May 31 12:37:19 2018 From: rkennke at redhat.com (Roman Kennke) Date: Thu, 31 May 2018 14:37:19 +0200 Subject: RFR: Slowdebug build failed after "Refactor and improve ShenandoahCodeRoots strategies" In-Reply-To: <17cdb955-89d5-4522-1fdb-8d41c09be882@redhat.com> References: <17cdb955-89d5-4522-1fdb-8d41c09be882@redhat.com> Message-ID: Oops. Yes! Roman > Current assert works by sheer luck. It compares oop*, not oop, and so it mismatches the signature of > unsafe_equals in slowdebug: > > diff -r 0adcdbbca5cd src/hotspot/share/gc/shenandoah/shenandoahCodeRoots.cpp > --- a/src/hotspot/share/gc/shenandoah/shenandoahCodeRoots.cpp Thu May 31 12:29:14 2018 +0200 > +++ b/src/hotspot/share/gc/shenandoah/shenandoahCodeRoots.cpp Thu May 31 14:25:02 2018 +0200 > @@ -293,7 +293,7 @@ > void ShenandoahNMethod::assert_same_oops(GrowableArray* oops) { > assert(_oops_count == oops->length(), "should have the same number of oop*"); > for (int c = 0; c < _oops_count; c++) { > - assert(oopDesc::unsafe_equals(_oops[c], oops->at(c)), "should be the same oop*"); > + assert(_oops[c] == oops->at(c), "should be the same oop*"); > } > } > #endif > > Testing: {release, fastdebug, slowdebug} builds > > Thanks, > -Aleksey > From ashipile at redhat.com Thu May 31 12:38:09 2018 From: ashipile at redhat.com (ashipile at redhat.com) Date: Thu, 31 May 2018 12:38:09 +0000 Subject: hg: shenandoah/jdk: Slowdebug build failed after "Refactor and improve ShenandoahCodeRoots strategies" Message-ID: <201805311238.w4VCc9Ba001608@aojmv0008.oracle.com> Changeset: 136a0492213a Author: shade Date: 2018-05-31 14:25 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/136a0492213a Slowdebug build failed after "Refactor and improve ShenandoahCodeRoots strategies" ! src/hotspot/share/gc/shenandoah/shenandoahCodeRoots.cpp From rkennke at redhat.com Thu May 31 13:11:22 2018 From: rkennke at redhat.com (Roman Kennke) Date: Thu, 31 May 2018 15:11:22 +0200 Subject: RFR: Backport PLAB stuff to shenandoah/jdk10 Message-ID: <8f05f818-2a9f-7eae-6bd7-156a84338ca4@redhat.com> http://cr.openjdk.java.net/~rkennke/backport-plabs/webrev.01/ We can't use the ThreadLocalData stuff, so it keeps the _gclab field and accessors in Thread. Other than that it is mostly straightforward backport. It still reduces shared code changes significantly (in CollectedHeap, Thread and ThreadLocalAllocBuffer). Testing: hotspot_gc_shenandoah (pending, but looking good so far) Ok? Roman From shade at redhat.com Thu May 31 13:24:02 2018 From: shade at redhat.com (Aleksey Shipilev) Date: Thu, 31 May 2018 15:24:02 +0200 Subject: RFR: Backport PLAB stuff to shenandoah/jdk10 In-Reply-To: <8f05f818-2a9f-7eae-6bd7-156a84338ca4@redhat.com> References: <8f05f818-2a9f-7eae-6bd7-156a84338ca4@redhat.com> Message-ID: <2f1eb5cf-d19c-6260-8040-d62e34b6e40b@redhat.com> On 05/31/2018 03:11 PM, Roman Kennke wrote: > http://cr.openjdk.java.net/~rkennke/backport-plabs/webrev.01/ *) Please fold all three changesets into one "[backport] Use PLAB for evacuations instead of TLAB", this would simplify the further backports *) In thread.hpp, there is forward decl for PLAB: 94 #ifdef INCLUDE_ALL_GCS 95 class PLAB; 96 #endif ...but the usages are not guarded by INCLUDE_ALL_GCS: 328 PLAB* _gclab; // Thread-local allocation buffer for GC (e.g. evacuation) ... 517 PLAB* gclab() { return _gclab; } 518 void set_gclab(PLAB* gclab) { _gclab = gclab; } Otherwise looks good, thanks! -Aleksey From rkennke at redhat.com Thu May 31 13:44:42 2018 From: rkennke at redhat.com (Roman Kennke) Date: Thu, 31 May 2018 15:44:42 +0200 Subject: RFR: Backport PLAB stuff to shenandoah/jdk10 In-Reply-To: <2f1eb5cf-d19c-6260-8040-d62e34b6e40b@redhat.com> References: <8f05f818-2a9f-7eae-6bd7-156a84338ca4@redhat.com> <2f1eb5cf-d19c-6260-8040-d62e34b6e40b@redhat.com> Message-ID: <69f5f249-5196-859a-d9ff-5763aa8ea9b5@redhat.com> Am 31.05.2018 um 15:24 schrieb Aleksey Shipilev: > On 05/31/2018 03:11 PM, Roman Kennke wrote: >> http://cr.openjdk.java.net/~rkennke/backport-plabs/webrev.01/ > > *) Please fold all three changesets into one "[backport] Use PLAB for evacuations instead of TLAB", > this would simplify the further backports > > *) In thread.hpp, there is forward decl for PLAB: > > 94 #ifdef INCLUDE_ALL_GCS > 95 class PLAB; > 96 #endif > > ...but the usages are not guarded by INCLUDE_ALL_GCS: > > 328 PLAB* _gclab; // Thread-local allocation buffer for GC (e.g. > evacuation) > > ... > > 517 PLAB* gclab() { return _gclab; } > 518 void set_gclab(PLAB* gclab) { _gclab = gclab; } > > Otherwise looks good, thanks! > Like this? Differential: http://cr.openjdk.java.net/~rkennke/backport-plabs/webrev.02.diff/ Full: http://cr.openjdk.java.net/~rkennke/backport-plabs/webrev.02/ Roman From shade at redhat.com Thu May 31 13:56:06 2018 From: shade at redhat.com (Aleksey Shipilev) Date: Thu, 31 May 2018 15:56:06 +0200 Subject: RFR: Backport PLAB stuff to shenandoah/jdk10 In-Reply-To: <69f5f249-5196-859a-d9ff-5763aa8ea9b5@redhat.com> References: <8f05f818-2a9f-7eae-6bd7-156a84338ca4@redhat.com> <2f1eb5cf-d19c-6260-8040-d62e34b6e40b@redhat.com> <69f5f249-5196-859a-d9ff-5763aa8ea9b5@redhat.com> Message-ID: <06e5499b-c2e0-b562-214a-29c4fc728aaa@redhat.com> On 05/31/2018 03:44 PM, Roman Kennke wrote: > Differential: > http://cr.openjdk.java.net/~rkennke/backport-plabs/webrev.02.diff/ > Full: > http://cr.openjdk.java.net/~rkennke/backport-plabs/webrev.02/ Yes, I think so. This patch builds CONF=linux-x86-normal-minimal-fastdebug fine. -Aleksey From roman at kennke.org Thu May 31 14:06:03 2018 From: roman at kennke.org (roman at kennke.org) Date: Thu, 31 May 2018 14:06:03 +0000 Subject: hg: shenandoah/jdk10: [backport] Use PLAB for evacuations instead of TLAB Message-ID: <201805311406.w4VE63BK003311@aojmv0008.oracle.com> Changeset: 54b80b681e42 Author: rkennke Date: 2018-05-18 14:29 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk10/rev/54b80b681e42 [backport] Use PLAB for evacuations instead of TLAB ! src/hotspot/share/gc/shared/collectedHeap.cpp ! src/hotspot/share/gc/shared/collectedHeap.hpp ! src/hotspot/share/gc/shared/plab.cpp ! src/hotspot/share/gc/shared/threadLocalAllocBuffer.cpp ! src/hotspot/share/gc/shared/threadLocalAllocBuffer.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/shenandoahMarkCompact.cpp ! src/hotspot/share/gc/shenandoah/shenandoahWorkGroup.cpp ! src/hotspot/share/runtime/thread.cpp ! src/hotspot/share/runtime/thread.hpp From ashipile at redhat.com Thu May 31 15:24:39 2018 From: ashipile at redhat.com (ashipile at redhat.com) Date: Thu, 31 May 2018 15:24:39 +0000 Subject: hg: shenandoah/jdk9/hotspot: Cease JDK 9 support for Shenandoah Message-ID: <201805311524.w4VFOd6g029852@aojmv0008.oracle.com> Changeset: 37b802a7a71b Author: shade Date: 2018-05-31 17:22 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk9/hotspot/rev/37b802a7a71b Cease JDK 9 support for Shenandoah ! src/share/vm/runtime/arguments.cpp From janoupe at gmail.com Tue May 8 22:44:06 2018 From: janoupe at gmail.com (Petr Janouch) Date: Tue, 08 May 2018 22:44:06 -0000 Subject: Feedback from experiments on production application In-Reply-To: <02f08fe4-a1fe-de17-dc46-b7ab607ef375@redhat.com> References: <02f08fe4-a1fe-de17-dc46-b7ab607ef375@redhat.com> Message-ID: <4BF631F5-B5B6-48A5-8CB8-AC27E66902AE@gmail.com> Ok here it goes: First shortly about the application: It is a service that is part of an e-commerce platform and is tuned for high load (of course not Facebook scale ;)) and low latency. It?s most latency sensitive REST endpoint responds in single digit milliseconds plus GC pauses. We managed to tune G1 for 20ms pauses. It is what I would consider a typical backend service (might be a little big to call it a microservice) that provides REST API and does some business logic based on data in its database. So there is relatively few application-scoped objects (services, configuration, ? ) and a lot of request-scoped objects (HTTP requests/responses with JSON bodies, Hibernate entities, intermediate business objects, ?) Here is the list of libraries it uses extracted from Gradle build file (just to show that it is not a monstrosity with many dependencies): compile 'org.springframework.boot:spring-boot-starter-jetty' compile 'org.springframework.boot:spring-boot-starter-logging' compile 'com.paypal.springboot:resteasy-spring-boot-starter' compile 'org.jboss.resteasy:resteasy-json-p-provider' compile 'javax.inject:javax.inject' compile 'org.springframework.boot:spring-boot-starter-data-jpa' compile 'mysql:mysql-connector-java' compile 'org.springframework.boot:spring-boot-starter-actuator' compile 'org.springframework:spring-context-support' compile 'com.fasterxml.jackson.datatype:jackson-datatype-jsr310' compile 'net.ttddyy:datasource-proxy' compile 'org.hdrhistogram:HdrHistogram' compile 'org.infinispan:infinispan-core' compile 'com.zaxxer:HikariCP' compile 'org.glassfish:javax.json' compile 'org.infinispan:infinispan-hibernate-cache? We have some performance/stress tests that simulate the typical workload and measure latency percentiles. The observations bellow were made when running those tests with Shenandoah enabled. The tests were performed on AWS c4.4xlarge machine with Fedora and OpenJDK 64-Bit Server VM (build 25.162-b12, mixed mode) Here is the biggest issue I have experienced: Even though most GC pauses were reasonably small, there was an occasional much larger pause usually around 20ms. Here is an extract from the logs that shows a GC cycle with such a big pause: Concurrent marking triggered. Free: 1221M, Free Threshold: 1228M; Allocated: 1221M, Alloc Threshold: 0M Application time: 8.0970046 seconds [Pause Init Mark, 2.985 ms] vmop [threads: total initially_running wait_to_block] [time: spin block sync cleanup vmop] page_trap_count 1037.151: ShenandoahInitMark [ 1075 1 0 ] [ 0 0 0 1 3 ] 0 Total time for which application threads were stopped: 0.0054568 seconds, Stopping threads took: 0.0005413 seconds [Concurrent marking 18G->19G(20G), 120.974 ms] Application time: 0.1211539 seconds [Pause Final MarkTotal Garbage: 19176M Immediate Garbage: 17379M, 2173 regions (90% of total) Garbage to be collected: 1758M (9% of total), 221 regions Live objects to be evacuated: 9M Live/garbage ratio in collected regions: 0% 19G->2366M(20G), 16.095 ms] vmop [threads: total initially_running wait_to_block] [time: spin block sync cleanup vmop] page_trap_count 1037.278: ShenandoahFinalMarkStartEvac [ 1075 2 0 ] [ 0 0 0 1 16 ] 0 Total time for which application threads were stopped: 0.0185424 seconds, Stopping threads took: 0.0005058 seconds [Concurrent evacuation 2370M->3559M(20G), 71.193 ms] Application time: 0.0713514 seconds [Pause Init Update Refs, 0.341 ms] vmop [threads: total initially_running wait_to_block] [time: spin block sync cleanup vmop] page_trap_count 1037.368: ShenandoahInitUpdateRefs [ 1075 0 1 ] [ 0 0 0 1 0 ] 0 Total time for which application threads were stopped: 0.0029125 seconds, Stopping threads took: 0.0005305 seconds [Concurrent update references 3562M->4722M(20G), 442.210 ms] Application time: 0.4423174 seconds [Pause Final Update Refs 4722M->2954M(20G), 4.855 ms] vmop [threads: total initially_running wait_to_block] [time: spin block sync cleanup vmop] page_trap_count 1037.813: ShenandoahFinalUpdateRefs [ 1075 0 2 ] [ 0 0 0 1 4 ] 0 Total time for which application threads were stopped: 0.0070979 seconds, Stopping threads took: 0.0004547 seconds [Concurrent reset bitmaps 2954M->2954M(20G), 1.096 ms] Capacity: 20480M, Peak Occupancy: 19746M, Lowest Free: 733M, Free Threshold: 614M Concurrent marking triggered. Free: 1211M, Free Threshold: 1228M; Allocated: 1211M, Alloc Threshold: 0M Application time: 7.8430755 seconds I nearly gave up on Shenandoah, because 20ms GC pauses are G1 territory for this application and workload. Luckily I found ShenandoahUnloadClassesFrequency = 5 in the VM flags, turned on class unloading logging and found out that the large GC pause is really associated with Shenandoah trying to GC and unload classes. Unloading classes is pointless for this application, so I just turned it off. I did not figure out how to turn it off completely, but after setting the unloading frequency to something infinity-like, the no GC pause exceeded 10ms. I would suggest mentioning somewhere in the user guide the fact, that the class unloading feature can significantly prolong GC pauses. Also the GC logging could mention that the class unloading is going on (yes, you can see it with class unloading logging on, but most people usually don?t have it on, when trying to fix GC issues). Here goes my second big issue: The concurrent part is sometimes too short (who would think it would a performance problem ;)) which makes the GC pauses too tightly spaced. Here is again an extract from logs to illustrate this: Concurrent marking triggered. Free: 4081M, Free Threshold: 4096M; Allocated: 4081M, Alloc Threshold: 0M Application time: 7.1562731 seconds [Pause Init Mark, 2.733 ms] vmop [threads: total initially_running wait_to_block] [time: spin block sync cleanup vmop] page_trap_count 369.133: ShenandoahInitMark [ 1076 0 1 ] [ 0 0 0 1 2 ] 0 Total time for which application threads were stopped: 0.0052538 seconds, Stopping threads took: 0.0004846 seconds [Concurrent marking 16G->16G(20G), 30.012 ms] [Concurrent precleaning 16G->16G(20G), 1.419 ms] Application time: 0.0328136 seconds [Pause Final MarkTotal Garbage: 16310M Immediate Garbage: 14771M, 1847 regions (90% of total) Garbage to be collected: 1477M (9% of total), 186 regions Live objects to be evacuated: 10M Live/garbage ratio in collected regions: 0% 16G->1715M(20G), 4.473 ms] vmop [threads: total initially_running wait_to_block] [time: spin block sync cleanup vmop] page_trap_count 369.172: ShenandoahFinalMarkStartEvac [ 1076 2 0 ] [ 0 0 0 1 4 ] 0 Total time for which application threads were stopped: 0.0072521 seconds, Stopping threads took: 0.0006079 seconds [Concurrent evacuation 1715M->1871M(20G), 5.272 ms] Application time: 0.0061683 seconds [Pause Init Update Refs, 0.214 ms] vmop [threads: total initially_running wait_to_block] [time: spin block sync cleanup vmop] page_trap_count 369.185: ShenandoahInitUpdateRefs [ 1076 0 1 ] [ 0 0 0 2 0 ] 0 Total time for which application threads were stopped: 0.0029071 seconds, Stopping threads took: 0.0004698 seconds [Concurrent update references 1875M->2125M(20G), 72.610 ms] Application time: 0.0727956 seconds [Pause Final Update Refs 2126M->638M(20G), 1.635 ms] vmop [threads: total initially_running wait_to_block] [time: spin block sync cleanup vmop] page_trap_count 369.261: ShenandoahFinalUpdateRefs [ 1076 3 0 ] [ 0 0 0 2 1 ] 0 Total time for which application threads were stopped: 0.0043687 seconds, Stopping threads took: 0.0005341 seconds [Concurrent reset bitmaps 638M->639M(20G), 0.526 ms] Capacity: 20480M, Peak Occupancy: 16486M, Lowest Free: 3993M, Free Threshold: 614M In the sample above, ShenandoahFinalMarkStartEvac and ShenandoahInitUpdateRefs are extremely close together and some unlucky requests can experience both pauses during their processing. Moreover, for instance if a request took 50ms to process, which I would still consider low latency, such request could experience 3 pauses during its processing. This issue went mostly away by setting ConcGCThreads = 1, but even with only one thread doing the concurrent work, the GC pauses are sometimes too close together. GC cycles are many seconds apart even with the highest load, so it seems like a waste if a requests can experience multiple GC pauses, which for observers creates the same effect as one larger pause. Have you considered a possibility to provide a configuration option that would be something like ?target min STW distance?? With ShenandoahUnloadClassesFrequency = and ConcGCThreads = 1 the performance was really good. I did not notice any significant drop in throughput, but it had much better request tail latency compared to G1. As I wrote above a typical GC pause for G1 was 20ms. With Shenandoah all pauses were < 10ms with some very close to the 10ms mark. Here are statistics, in case you find them helpful: Cancelling concurrent GC: Stopping VM Heap Shenandoah Heap 20971520K total, 20406272K committed, 11820035K used 2560 x 8192K regions Status: idle cancelled Reserved region: - [0x00000002c0000000, 0x00000007c0000000) GC STATISTICS: "(G)" (gross) pauses include VM time: time to notify and block threads, do the pre- and post-safepoint housekeeping. Use -XX:+PrintSafepointStatistics to dissect. "(N)" (net) pauses are the times spent in the actual GC code. "a" is average time for each phase, look at levels to see if average makes sense. "lvls" are quantiles: 0% (minimum), 25%, 50% (median), 75%, 100% (maximum). Total Pauses (G) = 3.09 s (a = 8148 us) (n = 379) (lvls, us = 2383, 4570, 5566, 7559, 396598) Total Pauses (N) = 3.42 s (a = 8977 us) (n = 381) (lvls, us = 188, 1465, 2930, 4121, 1492103) Pause Init Mark (G) = 1.02 s (a = 7423 us) (n = 137) (lvls, us = 5078, 5430, 5605, 5781, 135628) Pause Init Mark (N) = 0.57 s (a = 4148 us) (n = 137) (lvls, us = 2656, 2949, 3086, 3145, 122749) Accumulate Stats = 0.03 s (a = 248 us) (n = 137) (lvls, us = 213, 236, 240, 250, 345) Make Parsable = 0.04 s (a = 311 us) (n = 137) (lvls, us = 115, 303, 309, 328, 426) Clear Liveness = 0.02 s (a = 116 us) (n = 137) (lvls, us = 67, 113, 115, 117, 133) Scan Roots = 0.44 s (a = 3212 us) (n = 137) (lvls, us = 1758, 2012, 2148, 2207, 121455) S: Thread Roots = 0.12 s (a = 862 us) (n = 137) (lvls, us = 297, 350, 367, 391, 41679) S: String Table Roots = 0.09 s (a = 661 us) (n = 137) (lvls, us = 395, 402, 410, 428, 29442) S: Universe Roots = 0.00 s (a = 2 us) (n = 137) (lvls, us = 1, 2, 2, 2, 22) S: JNI Roots = 0.00 s (a = 16 us) (n = 137) (lvls, us = 10, 11, 14, 16, 172) S: JNI Weak Roots = 0.01 s (a = 60 us) (n = 137) (lvls, us = 0, 35, 54, 60, 1077) S: Synchronizer Roots = 0.00 s (a = 34 us) (n = 137) (lvls, us = 25, 29, 31, 33, 74) S: Flat Profiler Roots = 0.01 s (a = 60 us) (n = 137) (lvls, us = 40, 50, 57, 65, 154) S: Management Roots = 0.00 s (a = 2 us) (n = 137) (lvls, us = 1, 1, 2, 2, 4) S: System Dict Roots = 0.01 s (a = 69 us) (n = 137) (lvls, us = 16, 20, 25, 29, 5703) S: CLDG Roots = 0.07 s (a = 483 us) (n = 137) (lvls, us = 195, 223, 238, 248, 30918) S: JVMTI Roots = 0.00 s (a = 1 us) (n = 137) (lvls, us = 0, 1, 1, 1, 1) Resize TLABs = 0.02 s (a = 176 us) (n = 137) (lvls, us = 141, 164, 168, 178, 343) Pause Final Mark (G) = 1.17 s (a = 8560 us) (n = 137) (lvls, us = 3906, 4961, 7559, 9141, 30611) Pause Final Mark (N) = 0.56 s (a = 4117 us) (n = 137) (lvls, us = 1133, 1406, 4316, 4980, 21240) Update Roots = 0.04 s (a = 1945 us) (n = 22) (lvls, us = 1348, 1484, 1973, 2305, 2841) U: Thread Roots = 0.02 s (a = 903 us) (n = 22) (lvls, us = 312, 326, 984, 1328, 1814) U: String Table Roots = 0.01 s (a = 264 us) (n = 22) (lvls, us = 236, 252, 260, 266, 299) U: Universe Roots = 0.00 s (a = 1 us) (n = 22) (lvls, us = 1, 1, 1, 1, 1) U: JNI Roots = 0.00 s (a = 11 us) (n = 22) (lvls, us = 8, 9, 10, 12, 17) U: JNI Weak Roots = 0.00 s (a = 21 us) (n = 22) (lvls, us = 10, 15, 21, 24, 36) U: Synchronizer Roots = 0.00 s (a = 53 us) (n = 22) (lvls, us = 38, 46, 56, 59, 74) U: Flat Profiler Roots = 0.00 s (a = 59 us) (n = 22) (lvls, us = 47, 51, 52, 65, 81) U: Management Roots = 0.00 s (a = 2 us) (n = 22) (lvls, us = 1, 2, 2, 2, 2) U: System Dict Roots = 0.00 s (a = 16 us) (n = 22) (lvls, us = 11, 14, 16, 17, 20) U: CLDG Roots = 0.00 s (a = 161 us) (n = 22) (lvls, us = 152, 154, 156, 164, 177) U: JVMTI Roots = 0.00 s (a = 1 us) (n = 22) (lvls, us = 1, 1, 1, 1, 1) Finish Queues = 0.13 s (a = 981 us) (n = 137) (lvls, us = 457, 643, 746, 832, 13097) Weak References = 0.03 s (a = 1198 us) (n = 27) (lvls, us = 303, 375, 426, 2129, 3010) Process = 0.02 s (a = 867 us) (n = 27) (lvls, us = 40, 45, 79, 1797, 2590) Enqueue = 0.01 s (a = 327 us) (n = 27) (lvls, us = 248, 287, 312, 352, 419) Prepare Evacuation = 0.07 s (a = 531 us) (n = 137) (lvls, us = 236, 514, 547, 566, 777) Initial Evacuation = 0.26 s (a = 3468 us) (n = 76) (lvls, us = 2793, 3086, 3145, 3379, 8814) E: Thread Roots = 0.05 s (a = 646 us) (n = 76) (lvls, us = 295, 354, 400, 523, 2960) E: Code Cache Roots = 0.13 s (a = 1729 us) (n = 76) (lvls, us = 1660, 1680, 1699, 1719, 1908) Pause Init Update Refs (G) = 0.19 s (a = 3553 us) (n = 53) (lvls, us = 2383, 2812, 3086, 3457, 12040) Pause Init Update Refs (N) = 0.01 s (a = 222 us) (n = 53) (lvls, us = 188, 201, 215, 227, 334) Pause Final Update Refs (G) = 0.71 s (a = 13643 us) (n = 52) (lvls, us = 2695, 4355, 4590, 5039, 396594) Pause Final Update Refs (N) = 0.54 s (a = 10463 us) (n = 52) (lvls, us = 1465, 1582, 1680, 1719, 393407) Finish Work = 0.45 s (a = 151299 us) (n = 3) (lvls, us = 5195, 5195, 5195, 57031, 391500) Update Roots = 0.08 s (a = 1543 us) (n = 52) (lvls, us = 1328, 1426, 1504, 1543, 2426) UR: Thread Roots = 0.02 s (a = 413 us) (n = 52) (lvls, us = 268, 330, 354, 402, 1360) UR: String Table Roots = 0.01 s (a = 266 us) (n = 52) (lvls, us = 229, 252, 264, 277, 316) UR: Universe Roots = 0.00 s (a = 1 us) (n = 52) (lvls, us = 1, 1, 1, 1, 2) UR: JNI Roots = 0.00 s (a = 12 us) (n = 52) (lvls, us = 8, 9, 11, 13, 41) UR: JNI Weak Roots = 0.00 s (a = 24 us) (n = 52) (lvls, us = 15, 20, 22, 24, 58) UR: Synchronizer Roots = 0.00 s (a = 39 us) (n = 52) (lvls, us = 27, 33, 34, 36, 115) UR: Flat Profiler Roots = 0.00 s (a = 59 us) (n = 52) (lvls, us = 43, 52, 61, 64, 87) UR: Management Roots = 0.00 s (a = 2 us) (n = 52) (lvls, us = 1, 1, 2, 2, 3) UR: System Dict Roots = 0.00 s (a = 16 us) (n = 52) (lvls, us = 11, 14, 16, 17, 42) UR: CLDG Roots = 0.01 s (a = 160 us) (n = 52) (lvls, us = 146, 154, 158, 162, 191) UR: JVMTI Roots = 0.00 s (a = 1 us) (n = 52) (lvls, us = 1, 1, 1, 1, 1) Recycle = 0.01 s (a = 144 us) (n = 52) (lvls, us = 98, 111, 117, 152, 258) Pause Full GC = 1.73 s (a = 865870 us) (n = 2) (lvls, us = 238281, 238281, 238281, 238281, 1492101) Heap Dumps = 0.00 s (a = 1 us) (n = 4) (lvls, us = 1, 1, 1, 1, 1) Prepare = 0.00 s (a = 497 us) (n = 2) (lvls, us = 475, 475, 475, 475, 517) Roots = 0.07 s (a = 17314 us) (n = 4) (lvls, us = 3770, 3770, 4785, 6035, 54657) F: Thread Roots = 0.03 s (a = 5217 us) (n = 6) (lvls, us = 1562, 1562, 2246, 2324, 21039) F: Code Cache Roots = 0.01 s (a = 1133 us) (n = 6) (lvls, us = 0, 0, 1660, 1680, 1740) F: String Table Roots = 0.00 s (a = 252 us) (n = 6) (lvls, us = 0, 0, 299, 363, 467) F: Universe Roots = 0.00 s (a = 2 us) (n = 6) (lvls, us = 1, 1, 2, 2, 3) F: JNI Roots = 0.00 s (a = 18 us) (n = 6) (lvls, us = 11, 11, 14, 16, 35) F: JNI Weak Roots = 0.00 s (a = 61 us) (n = 6) (lvls, us = 0, 0, 23, 99, 135) F: Synchronizer Roots = 0.00 s (a = 64 us) (n = 6) (lvls, us = 51, 51, 63, 70, 72) F: Flat Profiler Roots = 0.00 s (a = 82 us) (n = 6) (lvls, us = 57, 57, 78, 78, 118) F: Management Roots = 0.00 s (a = 2 us) (n = 6) (lvls, us = 1, 1, 2, 2, 4) F: System Dict Roots = 0.00 s (a = 402 us) (n = 6) (lvls, us = 19, 19, 32, 35, 1508) F: CLDG Roots = 0.00 s (a = 529 us) (n = 6) (lvls, us = 89, 89, 193, 238, 1998) F: JVMTI Roots = 0.00 s (a = 1 us) (n = 6) (lvls, us = 1, 1, 1, 1, 1) Mark = 0.30 s (a = 148858 us) (n = 2) (lvls, us = 68359, 68359, 68359, 68359, 229302) Finish Queues = 0.17 s (a = 85505 us) (n = 2) (lvls, us = 39648, 39648, 39648, 39648, 131294) Weak References = 0.01 s (a = 6880 us) (n = 2) (lvls, us = 2598, 2598, 2598, 2598, 11155) Process = 0.01 s (a = 6429 us) (n = 2) (lvls, us = 2227, 2227, 2227, 2227, 10627) Enqueue = 0.00 s (a = 445 us) (n = 2) (lvls, us = 367, 367, 367, 367, 521) System Purge = 0.04 s (a = 21831 us) (n = 2) (lvls, us = 17383, 17383, 17383, 17383, 26143) Unload Classes = 0.02 s (a = 10718 us) (n = 2) (lvls, us = 7988, 7988, 7988, 7988, 13429) Parallel Cleanup = 0.02 s (a = 9692 us) (n = 2) (lvls, us = 9473, 9473, 9473, 9473, 9900) Code Cache = 0.01 s (a = 4005 us) (n = 2) (lvls, us = 3867, 3867, 3867, 3867, 4141) String/Symbol Tables = 0.00 s (a = 2383 us) (n = 2) (lvls, us = 2305, 2305, 2305, 2305, 2450) Clean Classes = 0.01 s (a = 3125 us) (n = 2) (lvls, us = 3105, 3105, 3105, 3105, 3128) CLDG = 0.00 s (a = 1413 us) (n = 2) (lvls, us = 19, 19, 19, 19, 2806) Calculate Addresses = 0.03 s (a = 15912 us) (n = 2) (lvls, us = 15430, 15430, 15430, 15430, 16284) Adjust Pointers = 0.07 s (a = 33302 us) (n = 2) (lvls, us = 31641, 31641, 31641, 31641, 34817) Copy Objects = 1.33 s (a = 666542 us) (n = 2) (lvls, us = 121094, 121094, 121094, 121094, 1210432) Resize TLABs = 0.00 s (a = 481 us) (n = 2) (lvls, us = 467, 467, 467, 467, 495) Concurrent Marking = 15.49 s (a = 113039 us) (n = 137) (lvls, us = 13672, 52344, 63867, 89062, 661729) Concurrent Precleaning = 0.05 s (a = 1892 us) (n = 27) (lvls, us = 1367, 1602, 1699, 2031, 3704) Concurrent Evacuation = 1.51 s (a = 19892 us) (n = 76) (lvls, us = 2578, 4395, 5898, 10352, 315417) Concurrent Update Refs = 4.93 s (a = 93068 us) (n = 53) (lvls, us = 8594, 68555, 86523, 94922, 675641) Concurrent Reset Bitmaps = 2.43 s (a = 18021 us) (n = 135) (lvls, us = 439, 672, 1152, 1758, 505395) 2 allocation failure and 0 user requested GCs 135 successful and 2 degenerated concurrent markings 110 successful and 3 degenerated update references ALLOCATION TRACING These are the slow-path allocations, including TLAB/GCLAB refills, and out-of-TLAB allocations. In-TLAB/GCLAB allocations happen orders of magnitude more frequently, and without delays. Allocation tracing is disabled, use -XX:+ShenandoahAllocationTrace to enable. Application time: 0.0627666 seconds vmop [threads: total initially_running wait_to_block] [time: spin block sync cleanup vmop] page_trap_count 1072.992: Exit [ 22 0 0 ] [ 0 0 0 0 10 ] 0 Polling page always armed ForceSafepoint 13 Deoptimize 61 CollectForMetadataAllocation 861 ShenandoahFullGC 2 ShenandoahInitMark 137 ShenandoahFinalMarkStartEvac 137 ShenandoahInitUpdateRefs 53 ShenandoahFinalUpdateRefs 51 Exit 1 2 VM operations coalesced during safepoint Maximum sync time 14 ms Maximum vm operation time (except for Exit VM operation) 1492 ms I hope the report did not come out too negative, because I have very positive feeling about Shenandoah and I will definitely use Shenandoah in the future. If you need more information, don?t hesitate to contact me. I cannot give you the source code of the application, but I can easily rerun the workload with different settings or logging . Thanks Petr > On 8 May 2018, at 22:24, Roman Kennke wrote: > > Am 08.05.2018 um 22:01 schrieb Petr Janouch: >> Hi everyone, >> >> I have done some experiments with Shenandoah on our production application (Unfortunately not in production). I did not see any explicit bug, but my experience wasn?t smooth either. Before I clog this mailing list with my report ;), I would like to ask if you are interested into my feedback and if this mailing list is the right place to give it. >> > > Yes, and yes. Of course! > > Thanks in advance! > Roman > > From janoupe at gmail.com Wed May 9 20:09:35 2018 From: janoupe at gmail.com (Petr Janouch) Date: Wed, 09 May 2018 20:09:35 -0000 Subject: Feedback from experiments on production application In-Reply-To: References: <02f08fe4-a1fe-de17-dc46-b7ab607ef375@redhat.com> <4BF631F5-B5B6-48A5-8CB8-AC27E66902AE@gmail.com> <5a4a1e79-5f03-3f0b-fa67-bdfd6faaba88@redhat.com> Message-ID: <4E14A9F9-41F7-404E-9E87-5CD356853626@gmail.com> Hi, I have tried again with build 25.71-b228 This build seems like an improvement over the one I used before. Just by glancing into the logs it seems that GC pauses got smaller. About the 2 observations I had in previous email: 1) Class unloading Every fifth ShenandoahFinalMarkStartEvac pauses is longer (around 14ms) compared to the ones when it does not try to unload classes (7-8ms). As promised, it really says that it tries to unload the classes now, so the longer pause can be associated with it: Concurrent marking triggered. Free: 2249M, Free Threshold: 2252M; Allocated: 18009M, Alloc Threshold: 0M Free set: Used: 17810M of 20060M, Regions: 298 mutator, 0 collector Free set: Mutator view: Max regular: 8192K, Max humongous: 2048000K, External frag: 12%, Internal frag: 5% Free set: Collector view: Max regular: 0K Application time: 8.4427237 seconds [Pause Init Mark (unload classes)Pacer for Mark. Used: 18226M, Free: 2249M, Non-Taxable: 224M, Alloc Tax Rate: 29.7x , 3.064 ms] vmop [threads: total initially_running wait_to_block] [time: spin block sync cleanup vmop] page_trap_count 1507.865: ShenandoahInitMark [ 1074 0 0 ] [ 0 0 0 1 3 ] 0 Total time for which application threads were stopped: 0.0054101 seconds, Stopping threads took: 0.0004040 seconds [Concurrent marking (unload classes) 17G->17G(20G), 33.855 ms] Application time: 0.0344424 seconds [Pause Final Mark (unload classes)Adaptive CSet Selection. Target Free: 3276M, Actual Free: 17876M, Target CSet: [0M, 13407M] Collectable Garbage: 2099M (11% of total), 3M CSet, 263 CSet regions Immediate Garbage: 15868M (87% of total), 1984 regions Free: 18046M, Regions: 2271 mutator, 0 collector Pacer for Evacuation. CSet: 3M, Free: 18046M, Non-Taxable: 1804M, Alloc Tax Rate: 1.1x , 11.950 ms] vmop [threads: total initially_running wait_to_block] [time: spin block sync cleanup vmop] page_trap_count 1507.905: ShenandoahFinalMarkStartEvac [ 1074 1 4 ] [ 0 0 0 1 11 ] 0 Total time for which application threads were stopped: 0.0146809 seconds, Stopping threads took: 0.0006311 seconds [Concurrent cleanup 17G->2442M(20G), 0.566 ms] [Concurrent evacuation 2445M->2464M(20G), 3.280 ms] 2) Too closely spaced STW pauses It is the same story as before. This actually got worse It seems that Shenandoah is doing too well on strongly generational workloads like my application is doing (when application-scoped objects are created at the beginning and almost everything created after that is request scoped). This is very extreme with default settings. The JVM takes 13 concurrent threads on the test machine and then the log is full of pathological situations like this: 1431.134: ShenandoahInitMark [ 1074 0 1 ] [ 0 0 0 1 2 ] 0 Total time for which application threads were stopped: 0.0052016 seconds, Stopping threads took: 0.0004466 seconds [Concurrent marking (process refs) 17G->17G(20G), 32.542 ms] [Concurrent precleaning 17G->17G(20G), 2.180 ms] Application time: 0.0367779 seconds [Pause Final Mark (process refs)Adaptive CSet Selection. Target Free: 3276M, Actual Free: 18102M, Target CSet: [0M, 13576M] Collectable Garbage: 1915M (10% of total), 9M CSet, 241 CSet regions Immediate Garbage: 16078M (88% of total), 2011 regions Free: 18253M, Regions: 2296 mutator, 0 collector Pacer for Evacuation. CSet: 9M, Free: 18253M, Non-Taxable: 1825M, Alloc Tax Rate: 1.1x , 4.711 ms] vmop [threads: total initially_running wait_to_block] [time: spin block sync cleanup vmop] page_trap_count 1431.176: ShenandoahFinalMarkStartEvac [ 1074 4 0 ] [ 0 0 0 1 4 ] 0 Total time for which application threads were stopped: 0.0073044 seconds, Stopping threads took: 0.0006198 seconds [Concurrent cleanup 17G->2232M(20G), 0.627 ms] [Concurrent evacuation 2232M->2274M(20G), 3.539 ms] Application time: 0.0043597 seconds [Pause Init Update RefsPacer for Update-Refs. Used: 2274M, Free: 18202M, Non-Taxable: 1820M, Alloc Tax Rate: 1.1x , 0.272 ms] vmop [threads: total initially_running wait_to_block] [time: spin block sync cleanup vmop] page_trap_count 1431.188: ShenandoahInitUpdateRefs [ 1074 0 1 ] [ 0 0 0 2 0 ] 0 Total time for which application threads were stopped: 0.0029428 seconds, Stopping threads took: 0.0003774 seconds [Concurrent update references 2274M->2343M(20G), 29.363 ms] Application time: 0.0294687 seconds [Pause Final Update RefsFree: 20060M, Regions: 2524 mutator, 0 collector , 1.745 ms] vmop [threads: total initially_running wait_to_block] [time: spin block sync cleanup vmop] page_trap_count 1431.221: ShenandoahFinalUpdateRefs [ 1074 0 1 ] [ 0 0 0 2 1 ] 0 Total time for which application threads were stopped: 0.0048456 seconds, Stopping threads took: 0.0005142 seconds [Concurrent cleanup 2344M->420M(20G), 1.251 ms] The effect on the request tail latency observed by the test client during such a STW storm is worse than one larger pause done by G1. Again setting Concurrent threads to 1 helps a lot, but even with that especially ShenandoahFinalMarkStartEvac is often so short, that it its STW pause almost joins with the next pause: 958.586: ShenandoahInitMark [ 1075 0 0 ] [ 0 0 0 1 2 ] 0 Total time for which application threads were stopped: 0.0049878 seconds, Stopping threads took: 0.0004109 seconds [Concurrent marking 17G->17G(20G), 94.828 ms] Application time: 0.0949659 seconds [Pause Final MarkAdaptive CSet Selection. Target Free: 3276M, Actual Free: 18423M, Target CSet: [0M, 13817M] Collectable Garbage: 1480M (8% of total), 3M CSet, 186 CSet regions Immediate Garbage: 16511M (90% of total), 2064 regions Free: 18597M, Regions: 2343 mutator, 0 collector Pacer for Evacuation. CSet: 3M, Free: 18597M, Non-Taxable: 1859M, Alloc Tax Rate: 1.1x , 5.164 ms] vmop [threads: total initially_running wait_to_block] [time: spin block sync cleanup vmop] page_trap_count 958.686: ShenandoahFinalMarkStartEvac [ 1075 0 0 ] [ 0 0 0 1 5 ] 0 Total time for which application threads were stopped: 0.0076722 seconds, Stopping threads took: 0.0004436 seconds [Concurrent cleanup 17G->1896M(20G), 0.684 ms] [Concurrent evacuation 1896M->1948M(20G), 7.096 ms] Application time: 0.0081824 seconds [Pause Init Update RefsPacer for Update-Refs. Used: 1948M, Free: 18526M, Non-Taxable: 1852M, Alloc Tax Rate: 1.1x , 0.290 ms] vmop [threads: total initially_running wait_to_block] [time: spin block sync cleanup vmop] page_trap_count 958.702: ShenandoahInitUpdateRefs [ 1075 0 0 ] [ 0 0 0 1 0 ] 0 Total time for which application threads were stopped: 0.0027895 seconds, Stopping threads took: 0.0004562 seconds [Concurrent update references 1948M->2170M(20G), 131.651 ms] Application time: 0.1317581 seconds [Pause Final Update RefsFree: 19793M, Regions: 2499 mutator, 0 collector , 1.593 ms] vmop [threads: total initially_running wait_to_block] [time: spin block sync cleanup vmop] page_trap_count 958.836: ShenandoahFinalUpdateRefs [ 1075 0 0 ] [ 0 0 0 1 1 ] 0 Total time for which application threads were stopped: 0.0039250 seconds, Stopping threads took: 0.0004161 seconds [Concurrent cleanup 2170M->704M(20G), 4.958 ms] If you need some more statistics or rerunning the workload with different setting, don?t hesitate to ask. Petr > On 9 May 2018, at 09:36, Aleksey Shipilev wrote: > > On 05/09/2018 07:53 AM, Roman Kennke wrote: >> Would it be possible to run the same experiments with a newer build, >> e.g. one from here: >> >> https://builds.shipilev.net/ > > More precisely, this one for 8u: > https://builds.shipilev.net/openjdk-shenandoah-jdk8/ > > >>> I would suggest mentioning somewhere in the user guide the fact, that the class unloading >>> feature can significantly prolong GC pauses. Also the GC logging could mention that the class >>> unloading is going on (yes, you can see it with class unloading logging on, but most people >>> usually don?t have it on, when trying to fix GC issues). > It does mention it in recent builds, like this: > > [Pause Init Mark (unload classes), 3.463 ms] > [Concurrent marking (unload classes) 557M->557M(8192M), 53.294 ms] > [Pause Final Mark (unload classes), 15.750 ms] > [Concurrent cleanup 557M->543M(8192M), 0.288 ms] > > Thanks, > -Aleksey > From zoltan.szel at mahifx.com Mon May 28 08:47:26 2018 From: zoltan.szel at mahifx.com (Zoltan Szel) Date: Mon, 28 May 2018 10:47:26 +0200 Subject: Shenandoah jdk8 build for macOS High Sierra Message-ID: Hi all, I have recently been reading about Shenandoah and to be frank quite interested to try it out with our tools. All of our developers are using Mac, but there doesn't seem to be a regular Shenandoah OSX build anywhere neither can I build it from source due to the requirement on XCode 4 which is no longer supported on OSX. Would you guys have any pointers on where can I get a jdk 8 build or instructions on how to build on mac (the ones in google seem to be out of date)? Any help is greatly appreciated! Kind Regards, Zoltan -- [image: MahiFX] Zoltan Szel Lead Developer 115 Baker Street London W1U 6RT Mobile: +44 (0)7788437875 <%2B44%20%280%297767%20751694> Skype: zoliszelmahifx -- *IMPORTANT NOTICE*: MahiFX Limited (*MahiFX Ltd*) and MahiFX (UK) Limited (*MahiFX (UK)*) are operating subsidiaries within the MahiFX group of companies (collectively, the MahiFX Group). All references to ?*MahiFX*? refer to the MahiFX Group. MahiFX Limited is registered in New Zealand (Company no. 2446590, NZBusNo 9429031595070) and Australia (Australian registered body number ARBN 152-535-085). MahiFX Limited is authorised and regulated under the Australian Securities and Investment Commission (AFSL number 414198) and the New Zealand Financial Markets Authority (FSPR number FSP197465). MahiFX (UK) Limited is registered in the United Kingdom, (registered company number 08107062). MahiFX (UK) Limited is authorised and regulated under the Financial Conduct Authority (reference number 751019). This email, its attachments and any rights attaching hereto are confidential and intended exclusively for the person to whom the email is addressed. If you are not the intended recipient, do not read, copy, disclose or use the contents in any way. Please notify the sender by return email and destroy the email and attachments immediately. MahiFX does not accept any liability for any changes made to this email or attachments after sending by MahiFX. You must scan this email and attachments for viruses. The opinions expressed are not necessarily those of MahiFX. MahiFX accepts no liability for any loss, damage or consequence, whether caused by our own negligence or not, resulting directly or indirectly from the use of this email and attachments. For more information about MahiFX Limited see mahifx.com . From janoupe at gmail.com Tue May 29 19:08:31 2018 From: janoupe at gmail.com (Petr Janouch) Date: Tue, 29 May 2018 21:08:31 +0200 Subject: Feedback from experiments on production application In-Reply-To: <649f4249-7e87-35c3-946c-c259db5130f1@redhat.com> References: <02f08fe4-a1fe-de17-dc46-b7ab607ef375@redhat.com> <4BF631F5-B5B6-48A5-8CB8-AC27E66902AE@gmail.com> <5a4a1e79-5f03-3f0b-fa67-bdfd6faaba88@redhat.com> <4E14A9F9-41F7-404E-9E87-5CD356853626@gmail.com> <649f4249-7e87-35c3-946c-c259db5130f1@redhat.com> Message-ID: Hi everyone, sorry for the late response. I wanted to provide JDK11 results in the reply, but migration to JDK11 was much harder nut to crack than expected (many major libraries are not JDK11 ready yet and very sad about the changes in Unsafe ;)). I used build 11-internal+0-nightly-sobornost-builds.shipilev.net-shenandoah-jdkX-b109 I found behaviour with heuristic=tranversal without class unloading quite nice. It gave me nice throughput with occasional 6-8ms pause. Given that the default heuristics would give 6-8ms Final mark pause anyway, there was no increase in max pause with ?traversal?. It definitely solved the "pause spacing? problem I experienced with the default heuristics. With class unloading turned on, the final traversal pause increased by 10ms to 16-18ms. I did not register any difference in behaviour from JDK8 when using the default heuristic. There are extracts of typical GC cycles from the logs, in case you find them useful: 1) ?traversal? without class unloading: =================== [847.319s][info ][gc,ergo ] Free set: Used: 18313M of 20155M, Regions: 249 mutator, 0 collector [847.319s][info ][gc,ergo ] Free set: Mutator view: Max regular: 8192K, Max humongous: 1515520K, External frag: 20%, Internal frag: 7% [847.319s][info ][gc,ergo ] Free set: Collector view: Max regular: 0K [847.326s][info ][gc ] GC(40) Pause Init Traversal 5.109ms [847.326s][info ][gc,start ] GC(40) Concurrent traversal [847.405s][debug][gc,ref,start ] GC(40) Preclean SoftReferences [847.405s][debug][gc,ref ] GC(40) Preclean SoftReferences 0.097ms [847.405s][debug][gc,ref,start ] GC(40) Preclean WeakReferences [847.408s][debug][gc,ref ] GC(40) Preclean WeakReferences 3.010ms [847.408s][debug][gc,ref,start ] GC(40) Preclean FinalReferences [847.408s][debug][gc,ref ] GC(40) Preclean FinalReferences 0.141ms [847.408s][debug][gc,ref,start ] GC(40) Preclean PhantomReferences [847.408s][debug][gc,ref ] GC(40) Preclean PhantomReferences 0.478ms [847.408s][info ][gc ] GC(40) Concurrent traversal 18638M->18781M(20480M) 82.012ms [847.410s][info ][gc,start ] GC(40) Pause Final Traversal [847.416s][debug][gc,phases,ref ] GC(40) Reference Processing: 0.2ms [847.416s][debug][gc,phases,ref ] GC(40) SoftReference: 0.0ms [847.416s][debug][gc,phases,ref ] GC(40) Balance queues: 0.0ms [847.416s][debug][gc,phases,ref ] GC(40) Phase1: 0.0ms [847.416s][debug][gc,phases,ref ] GC(40) Phase2: 0.0ms [847.416s][debug][gc,phases,ref ] GC(40) Phase3: 0.0ms [847.416s][debug][gc,phases,ref ] GC(40) Discovered: 0 [847.416s][debug][gc,phases,ref ] GC(40) Cleared: 0 [847.416s][debug][gc,phases,ref ] GC(40) WeakReference: 0.2ms [847.416s][debug][gc,phases,ref ] GC(40) Balance queues: 0.0ms [847.416s][debug][gc,phases,ref ] GC(40) Phase2: 0.2ms [847.416s][debug][gc,phases,ref ] GC(40) Phase3: 0.0ms [847.416s][debug][gc,phases,ref ] GC(40) Discovered: 20 [847.416s][debug][gc,phases,ref ] GC(40) Cleared: 20 [847.416s][debug][gc,phases,ref ] GC(40) FinalReference: 0.0ms [847.416s][debug][gc,phases,ref ] GC(40) Balance queues: 0.0ms [847.416s][debug][gc,phases,ref ] GC(40) Phase2: 0.0ms [847.416s][debug][gc,phases,ref ] GC(40) Phase3: 0.0ms [847.416s][debug][gc,phases,ref ] GC(40) Discovered: 0 [847.416s][debug][gc,phases,ref ] GC(40) Cleared: 0 [847.416s][debug][gc,phases,ref ] GC(40) PhantomReference: 0.0ms [847.416s][debug][gc,phases,ref ] GC(40) Balance queues: 0.0ms [847.416s][debug][gc,phases,ref ] GC(40) Phase2: 0.0ms [847.416s][debug][gc,phases,ref ] GC(40) Phase3: 0.0ms [847.416s][debug][gc,phases,ref ] GC(40) Discovered: 0 [847.416s][debug][gc,phases,ref ] GC(40) Cleared: 0 [847.416s][debug][gc,phases,ref ] GC(40) Reference Enqueuing 0.1ms [847.416s][debug][gc,phases,ref ] GC(40) Reference Counts: Soft: 0 Weak: 0 Final: 0 Phantom: 0 [847.416s][info ][gc,ergo ] GC(40) Free: 20161M, Regions: 2538 mutator, 0 collector [847.417s][info ][gc ] GC(40) Pause Final Traversal 6.247ms [847.417s][info ][gc,start ] GC(40) Concurrent cleanup [847.418s][info ][gc ] GC(40) Concurrent cleanup 18781M->351M(20480M) 1.547ms [847.419s][info ][gc,ergo ] Free set: Used: 47M of 20161M, Regions: 2533 mutator, 0 collector [847.419s][info ][gc,ergo ] Free set: Mutator view: Max regular: 8192K, Max humongous: 18702336K, External frag: 10%, Internal frag: 0% [847.419s][info ][gc,ergo ] Free set: Collector view: Max regular: 0K [847.419s][info ][gc,ergo ] Pacer for Idle. Initial: 409M, Alloc Tax Rate: 1.0x =================== 2) ?traversal? with class unloading: =================== [197.504s][info ][gc,ergo ] Free set: Used: 18396M of 20237M, Regions: 241 mutator, 0 collector [197.505s][info ][gc,ergo ] Free set: Mutator view: Max regular: 8192K, Max humongous: 1687552K, External frag: 11%, Internal frag: 4% [197.505s][info ][gc,ergo ] Free set: Collector view: Max regular: 0K [197.507s][info ][gc,start ] GC(9) Pause Init Traversal [197.507s][info ][gc,ergo ] GC(9) Free: 1838M, Regions: 240 mutator, 0 collector [197.507s][info ][gc,ergo ] GC(9) Got 2315 collection set regions and 0 root set regions [197.508s][info ][gc,ergo ] GC(9) Pacer for Traversal. Used: 18637M, Free: 1838M, Non-Taxable: 183M, Alloc Tax Rate: 12.4x [197.508s][info ][gc ] GC(9) Pause Init Traversal 1.577ms [197.508s][info ][gc,start ] GC(9) Concurrent traversal [197.584s][debug][gc,ref,start ] GC(9) Preclean SoftReferences [197.584s][debug][gc,ref ] GC(9) Preclean SoftReferences 0.100ms [197.584s][debug][gc,ref,start ] GC(9) Preclean WeakReferences [197.587s][debug][gc,ref ] GC(9) Preclean WeakReferences 2.513ms [197.587s][debug][gc,ref,start ] GC(9) Preclean FinalReferences [197.587s][debug][gc,ref ] GC(9) Preclean FinalReferences 0.102ms [197.587s][debug][gc,ref,start ] GC(9) Preclean PhantomReferences [197.588s][debug][gc,ref ] GC(9) Preclean PhantomReferences 0.659ms [197.588s][info ][gc ] GC(9) Concurrent traversal 18638M->18779M(20480M) 79.340ms [197.590s][info ][gc,start ] GC(9) Pause Final Traversal [197.592s][debug][gc,phases,ref ] GC(9) Reference Processing: 0.2ms [197.592s][debug][gc,phases,ref ] GC(9) SoftReference: 0.0ms [197.592s][debug][gc,phases,ref ] GC(9) Balance queues: 0.0ms [197.592s][debug][gc,phases,ref ] GC(9) Phase1: 0.0ms [197.592s][debug][gc,phases,ref ] GC(9) Phase2: 0.0ms [197.592s][debug][gc,phases,ref ] GC(9) Phase3: 0.0ms [197.592s][debug][gc,phases,ref ] GC(9) Discovered: 0 [197.592s][debug][gc,phases,ref ] GC(9) Cleared: 0 [197.592s][debug][gc,phases,ref ] GC(9) WeakReference: 0.2ms [197.592s][debug][gc,phases,ref ] GC(9) Balance queues: 0.0ms [197.592s][debug][gc,phases,ref ] GC(9) Phase2: 0.2ms [197.592s][debug][gc,phases,ref ] GC(9) Phase3: 0.0ms [197.592s][debug][gc,phases,ref ] GC(9) Discovered: 20 [197.592s][debug][gc,phases,ref ] GC(9) Cleared: 20 [197.592s][debug][gc,phases,ref ] GC(9) FinalReference: 0.0ms [197.592s][debug][gc,phases,ref ] GC(9) Balance queues: 0.0ms [197.592s][debug][gc,phases,ref ] GC(9) Phase2: 0.0ms [197.592s][debug][gc,phases,ref ] GC(9) Phase3: 0.0ms [197.592s][debug][gc,phases,ref ] GC(9) Discovered: 0 [197.592s][debug][gc,phases,ref ] GC(9) Cleared: 0 [197.592s][debug][gc,phases,ref ] GC(9) PhantomReference: 0.0ms [197.592s][debug][gc,phases,ref ] GC(9) Balance queues: 0.0ms [197.592s][debug][gc,phases,ref ] GC(9) Phase2: 0.0ms [197.592s][debug][gc,phases,ref ] GC(9) Phase3: 0.0ms [197.592s][debug][gc,phases,ref ] GC(9) Discovered: 0 [197.592s][debug][gc,phases,ref ] GC(9) Cleared: 0 [197.592s][debug][gc,phases,ref ] GC(9) Reference Enqueuing 0.1ms [197.592s][debug][gc,phases,ref ] GC(9) Reference Counts: Soft: 0 Weak: 0 Final: 0 Phantom: 0 [197.592s][debug][gc,phases,start ] GC(9) SystemDictionary WeakHandle cleaning [197.592s][debug][gc,phases ] GC(9) SystemDictionary WeakHandle cleaning 0.103ms [197.592s][debug][gc,phases,start ] GC(9) ClassLoaderData [197.593s][debug][gc,phases ] GC(9) ClassLoaderData 0.377ms [197.593s][debug][gc,phases,start ] GC(9) ProtectionDomainCacheTable [197.593s][debug][gc,phases ] GC(9) ProtectionDomainCacheTable 0.017ms [197.602s][info ][gc,stringtable ] GC(9) Cleaned string and symbol table, strings: 49649 processed, 0 removed, symbols: 261650 processed, 0 removed [197.606s][info ][gc,ergo ] GC(9) Free: 20221M, Regions: 2539 mutator, 0 collector [197.607s][info ][gc ] GC(9) Pause Final Traversal 16.951ms [197.607s][info ][gc,start ] GC(9) Concurrent cleanup [197.609s][info ][gc ] GC(9) Concurrent cleanup 18780M->287M(20480M) 1.964ms [197.609s][info ][gc,ergo ] Free set: Used: 28M of 20221M, Regions: 2536 mutator, 0 collector [197.609s][info ][gc,ergo ] Free set: Mutator view: Max regular: 8192K, Max humongous: 18800640K, External frag: 10%, Internal frag: 0% [197.609s][info ][gc,ergo ] Free set: Collector view: Max regular: 0K [197.609s][info ][gc,ergo ] Pacer for Idle. Initial: 409M, Alloc Tax Rate: 1.0x =================== 3) default heuristic (without class unloading) ================== [237.113s][info ][gc,ergo ] Concurrent marking triggered. Free: 3070M, Free Threshold: 3072M; Allocated: 15906M, Alloc Threshold: 0M [237.113s][info ][gc,ergo ] Free set: Used: 15745M of 18814M, Regions: 393 mutator, 0 collector [237.113s][info ][gc,ergo ] Free set: Mutator view: Max regular: 8192K, Max humongous: 2850816K, External frag: 10%, Internal frag: 2% [237.113s][info ][gc,ergo ] Free set: Collector view: Max regular: 0K [237.114s][info ][gc,start ] GC(13) Pause Init Mark [237.114s][debug][gc,tlab ] GC(13) TLAB totals: thrds: 113 refills: 16041 max: 518 slow allocs: 12 max 12 waste: 0.1% gc: 57826960B max: 1048536B slow: 12558848B max: 418592B fast: 0B max: 0B [237.118s][info ][gc,ergo ] GC(13) Pacer for Mark. Used: 17409M, Free: 3069M, Non-Taxable: 306M, Alloc Tax Rate: 20.8x [237.118s][info ][gc ] GC(13) Pause Init Mark 3.605ms [237.118s][info ][gc,start ] GC(13) Concurrent marking [237.212s][info ][gc ] GC(13) Concurrent marking 17409M->17549M(20480M) 94.486ms [237.214s][info ][gc,start ] GC(13) Pause Final Mark [237.218s][info ][gc,ergo ] GC(13) Adaptive CSet Selection. Target Free: 4096M, Actual Free: 18553M, Target CSet: [0M, 13915M] [237.218s][info ][gc,ergo ] GC(13) Collectable Garbage: 1661M (9% of total), 2M CSet, 208 CSet regions [237.218s][info ][gc,ergo ] GC(13) Immediate Garbage: 15649M (90% of total), 1957 regions [237.218s][info ][gc,ergo ] GC(13) Free: 18579M, Regions: 2332 mutator, 0 collector [237.221s][info ][gc,ergo ] GC(13) Pacer for Evacuation. CSet: 2M, Free: 18577M, Non-Taxable: 1857M, Alloc Tax Rate: 1.1x [237.221s][info ][gc ] GC(13) Pause Final Mark 7.270ms [237.221s][info ][gc,start ] GC(13) Concurrent cleanup [237.222s][info ][gc ] GC(13) Concurrent cleanup 17551M->1925M(20480M) 0.676ms [237.222s][info ][gc,start ] GC(13) Concurrent evacuation [237.230s][info ][gc ] GC(13) Concurrent evacuation 1925M->1992M(20480M) 8.243ms [237.232s][info ][gc,start ] GC(13) Pause Init Update Refs [237.232s][debug][gc,plab ] GC(13) Shenandoah mutator GCLAB stats PLAB allocation: allocated: 60088B, wasted: 552B, unused: 42664B, used: 16872B, undo waste: 0B, [237.232s][debug][gc,plab ] GC(13) Shenandoah mutator GCLAB stats sizing: calculated: 5624B, actual: 9704B [237.232s][debug][gc,plab ] GC(13) Shenandoah collector GCLAB stats PLAB allocation: allocated: 5003416B, wasted: 2584B, unused: 2358784B, used: 2642048B, undo waste: 0B, [237.232s][debug][gc,plab ] GC(13) Shenandoah collector GCLAB stats sizing: calculated: 1321024B, actual: 1616200B [237.232s][info ][gc,ergo ] GC(13) Pacer for Update-Refs. Used: 1992M, Free: 18487M, Non-Taxable: 1848M, Alloc Tax Rate: 1.1x [237.232s][info ][gc ] GC(13) Pause Init Update Refs 0.403ms [237.232s][info ][gc,start ] GC(13) Concurrent update references [237.410s][info ][gc ] GC(13) Concurrent update references 1992M->2243M(20480M) 177.690ms [237.412s][info ][gc,start ] GC(13) Pause Final Update Refs [237.413s][info ][gc,ergo ] GC(13) Free: 19900M, Regions: 2499 mutator, 0 collector [237.413s][info ][gc ] GC(13) Pause Final Update Refs 1.539ms [237.413s][info ][gc,start ] GC(13) Concurrent cleanup [237.419s][info ][gc ] GC(13) Concurrent cleanup 2243M->591M(20480M) 6.196ms [237.420s][info ][gc,ergo ] GC(13) Capacity: 20480M, Peak Occupancy: 17549M, Lowest Free: 2930M, Free Threshold: 2048M [237.420s][info ][gc,ergo ] Free set: Used: 12M of 19900M, Regions: 2498 mutator, 0 collector [237.420s][info ][gc,ergo ] Free set: Mutator view: Max regular: 8192K, Max humongous: 15130624K, External frag: 26%, Internal frag: 0% [237.420s][info ][gc,ergo ] Free set: Collector view: Max regular: 0K [237.420s][info ][gc,ergo ] Pacer for Idle. Initial: 409M, Alloc Tax Rate: 1.0x [252.318s][info ][gc,ergo ] Concurrent marking triggered. Free: 3071M, Free Threshold: 3072M; Allocated: 17320M, Alloc Threshold: 0M [252.318s][info ][gc,ergo ] Free set: Used: 16828M of 19900M, Regions: 394 mutator, 0 collector [252.318s][info ][gc,ergo ] Free set: Mutator view: Max regular: 8192K, Max humongous: 3022848K, External frag: 4%, Internal frag: 2% [252.318s][info ][gc,ergo ] Free set: Collector view: Max regular: 0K [252.320s][info ][gc,start ] GC(14) Pause Init Mark [252.320s][debug][gc,tlab ] GC(14) TLAB totals: thrds: 124 refills: 18378 max: 1037 slow allocs: 1 max 1 waste: 0.1% gc: 51629888B max: 1048536B slow: 14297192B max: 803248B fast: 0B max: 0B [252.322s][info ][gc,ergo ] GC(14) Pacer for Mark. Used: 17407M, Free: 3071M, Non-Taxable: 307M, Alloc Tax Rate: 20.8x [252.322s][info ][gc ] GC(14) Pause Init Mark 2.432ms [252.322s][info ][gc,start ] GC(14) Concurrent marking [252.422s][info ][gc ] GC(14) Concurrent marking 17407M->17557M(20480M) 99.549ms [252.423s][info ][gc,start ] GC(14) Pause Final Mark [252.425s][info ][gc,ergo ] GC(14) Immediate Garbage: 16511M (95% of total), 2064 regions [252.425s][info ][gc,ergo ] GC(14) Free: 19434M, Regions: 2439 mutator, 0 collector [252.425s][info ][gc,ergo ] GC(14) Pacer for Evacuation. CSet: 0M, Free: 19434M, Non-Taxable: 1943M, Alloc Tax Rate: 1.1x [252.425s][info ][gc ] GC(14) Pause Final Mark 1.522ms [252.425s][info ][gc,start ] GC(14) Concurrent cleanup [252.426s][info ][gc ] GC(14) Concurrent cleanup 17557M->1068M(20480M) 1.028ms [252.426s][info ][gc,ergo ] GC(14) Capacity: 20480M, Peak Occupancy: 17557M, Lowest Free: 2922M, Free Threshold: 2048M [252.426s][info ][gc,ergo ] Free set: Used: 23M of 19434M, Regions: 2437 mutator, 0 collector [252.426s][info ][gc,ergo ] Free set: Mutator view: Max regular: 8192K, Max humongous: 2867200K, External frag: 86%, Internal frag: 0% [252.426s][info ][gc,ergo ] Free set: Collector view: Max regular: 0K [252.426s][info ][gc,ergo ] Pacer for Idle. Initial: 409M, Alloc Tax Rate: 1.0x ================== 4) GC statistics for ?traversal? without class unloading (different run than the log above, but the observed behaviour was exactly the same) ================== [503.616s][debug][gc,metaspace,freelist] ChunkManager::chunk_freelist_allocate: 0x00007f055419fdf0 chunk 0x00007f02784fb400 size 128 count 0 Free chunk total 3072 count 6 [503.645s][info ][gc ] Cancelling GC: Stopping VM [503.646s][info ][gc,heap,exit ] Heap [503.646s][info ][gc,heap,exit ] Shenandoah Heap [503.646s][info ][gc,heap,exit ] 20971520K total, 19513344K committed, 13436610K used [503.646s][info ][gc,heap,exit ] 2560 x 8192K regions [503.646s][info ][gc,heap,exit ] Status: cancelled [503.646s][info ][gc,heap,exit ] Reserved region: [503.646s][info ][gc,heap,exit ] - [0x00000002c0000000, 0x00000007c0000000) [503.646s][info ][gc,stats ] [503.646s][info ][gc,stats ] GC STATISTICS: [503.646s][info ][gc,stats ] "(G)" (gross) pauses include VM time: time to notify and block threads, do the pre- [503.646s][info ][gc,stats ] and post-safepoint housekeeping. Use -XX:+PrintSafepointStatistics to dissect. [503.646s][info ][gc,stats ] "(N)" (net) pauses are the times spent in the actual GC code. [503.646s][info ][gc,stats ] "a" is average time for each phase, look at levels to see if average makes sense. [503.646s][info ][gc,stats ] "lvls" are quantiles: 0% (minimum), 25%, 50% (median), 75%, 100% (maximum). [503.646s][info ][gc,stats ] [503.646s][info ][gc,stats ] Total Pauses (G) = 0.87 s (a = 17368 us) (n = 50) (lvls, us = 7578, 8105, 8887, 9609, 430654) [503.646s][info ][gc,stats ] Total Pauses (N) = 0.75 s (a = 15007 us) (n = 50) (lvls, us = 5410, 5898, 6602, 7168, 421706) [503.646s][info ][gc,stats ] Weak References = 0.02 s (a = 914 us) (n = 25) (lvls, us = 459, 479, 502, 547, 8559) [503.646s][info ][gc,stats ] Process = 0.02 s (a = 608 us) (n = 25) (lvls, us = 361, 371, 396, 459, 3317) [503.646s][info ][gc,stats ] Enqueue = 0.01 s (a = 299 us) (n = 25) (lvls, us = 72, 81, 93, 99, 5231) [503.646s][info ][gc,stats ] Pause Degenerated GC (G) = 0.43 s (a = 430643 us) (n = 1) (lvls, us = 429688, 429688, 429688, 429688, 430643) [503.646s][info ][gc,stats ] Pause Degenerated GC (N) = 0.42 s (a = 421705 us) (n = 1) (lvls, us = 419922, 419922, 419922, 419922, 421705) [503.646s][info ][gc,stats ] Pause Init Traversal (G) = 0.21 s (a = 8358 us) (n = 25) (lvls, us = 7578, 7793, 8105, 8164, 16517) [503.646s][info ][gc,stats ] Pause Init Traversal (N) = 0.15 s (a = 6183 us) (n = 25) (lvls, us = 5410, 5645, 5898, 5957, 14575) [503.646s][info ][gc,stats ] Prepare = 0.01 s (a = 515 us) (n = 25) (lvls, us = 447, 465, 480, 498, 717) [503.646s][info ][gc,stats ] Work = 0.14 s (a = 5503 us) (n = 25) (lvls, us = 4824, 4941, 5273, 5332, 13030) [503.646s][info ][gc,stats ] TI: Thread Roots = 0.01 s (a = 509 us) (n = 25) (lvls, us = 414, 471, 484, 498, 1088) [503.646s][info ][gc,stats ] TI: Code Cache Roots = 0.06 s (a = 2298 us) (n = 25) (lvls, us = 1934, 1973, 2168, 2207, 6487) [503.646s][info ][gc,stats ] TI: String Table Roots = 0.02 s (a = 666 us) (n = 25) (lvls, us = 551, 615, 629, 639, 1605) [503.646s][info ][gc,stats ] TI: Universe Roots = 0.00 s (a = 2 us) (n = 25) (lvls, us = 1, 1, 2, 2, 9) [503.646s][info ][gc,stats ] TI: JNI Roots = 0.00 s (a = 3 us) (n = 25) (lvls, us = 2, 2, 2, 3, 9) [503.646s][info ][gc,stats ] TI: Synchronizer Roots = 0.00 s (a = 0 us) (n = 25) (lvls, us = 0, 0, 0, 0, 0) [503.646s][info ][gc,stats ] TI: Management Roots = 0.00 s (a = 2 us) (n = 25) (lvls, us = 2, 2, 2, 2, 4) [503.646s][info ][gc,stats ] TI: System Dict Roots = 0.01 s (a = 306 us) (n = 25) (lvls, us = 162, 170, 191, 314, 1661) [503.646s][info ][gc,stats ] TI: CLDG Roots = 0.02 s (a = 727 us) (n = 25) (lvls, us = 551, 662, 676, 701, 1772) [503.646s][info ][gc,stats ] TI: JVMTI Roots = 0.00 s (a = 1 us) (n = 25) (lvls, us = 1, 1, 1, 1, 1) [503.646s][info ][gc,stats ] Pause Final Traversal (G) = 0.23 s (a = 9530 us) (n = 24) (lvls, us = 8887, 9062, 9336, 9805, 10682) [503.646s][info ][gc,stats ] Pause Final Traversal (N) = 0.17 s (a = 7252 us) (n = 24) (lvls, us = 6582, 6836, 7148, 7461, 8415) [503.646s][info ][gc,stats ] Work = 0.34 s (a = 13730 us) (n = 25) (lvls, us = 5547, 5801, 6016, 6309, 196072) [503.646s][info ][gc,stats ] TF: Thread Roots = 0.02 s (a = 626 us) (n = 25) (lvls, us = 447, 473, 496, 521, 3577) [503.646s][info ][gc,stats ] TF: Code Cache Roots = 0.05 s (a = 2129 us) (n = 25) (lvls, us = 1914, 1992, 2168, 2207, 2280) [503.646s][info ][gc,stats ] TF: String Table Roots = 0.01 s (a = 379 us) (n = 25) (lvls, us = 361, 367, 371, 387, 397) [503.646s][info ][gc,stats ] TF: Universe Roots = 0.00 s (a = 1 us) (n = 25) (lvls, us = 1, 1, 1, 1, 2) [503.646s][info ][gc,stats ] TF: JNI Roots = 0.00 s (a = 2 us) (n = 25) (lvls, us = 2, 2, 2, 3, 3) [503.646s][info ][gc,stats ] TF: Synchronizer Roots = 0.00 s (a = 0 us) (n = 25) (lvls, us = 0, 0, 0, 0, 0) [503.646s][info ][gc,stats ] TF: Management Roots = 0.00 s (a = 2 us) (n = 25) (lvls, us = 1, 2, 2, 3, 3) [503.646s][info ][gc,stats ] TF: System Dict Roots = 0.01 s (a = 217 us) (n = 25) (lvls, us = 135, 148, 244, 244, 274) [503.646s][info ][gc,stats ] TF: CLDG Roots = 0.02 s (a = 604 us) (n = 25) (lvls, us = 486, 551, 596, 627, 838) [503.646s][info ][gc,stats ] TF: JVMTI Roots = 0.00 s (a = 1 us) (n = 25) (lvls, us = 1, 1, 1, 1, 1) [503.646s][info ][gc,stats ] TF: Finish Queues = 0.18 s (a = 7384 us) (n = 25) (lvls, us = 312, 563, 621, 686, 169584) [503.646s][info ][gc,stats ] Cleanup = 0.00 s (a = 103 us) (n = 25) (lvls, us = 95, 96, 99, 105, 121) [503.646s][info ][gc,stats ] Concurrent Cleanup = 0.07 s (a = 2967 us) (n = 24) (lvls, us = 1094, 1621, 1836, 2109, 26448) [503.646s][info ][gc,stats ] Recycle = 0.04 s (a = 1588 us) (n = 25) (lvls, us = 262, 494, 688, 727, 24130) [503.646s][info ][gc,stats ] Reset Bitmaps = 0.25 s (a = 9837 us) (n = 25) (lvls, us = 623, 895, 1035, 1484, 215718) [503.646s][info ][gc,stats ] Concurrent Traversal = 5.10 s (a = 204183 us) (n = 25) (lvls, us = 84375, 87109, 88477, 92383, 2872023) [503.646s][info ][gc,stats ] [503.646s][info ][gc,stats ] [503.646s][info ][gc,stats ] Under allocation pressure, concurrent cycles may cancel, and either continue cycle [503.646s][info ][gc,stats ] under stop-the-world pause or result in stop-the-world Full GC. Increase heap size, [503.646s][info ][gc,stats ] tune GC heuristics, set more aggressive pacing delay, or lower allocation rate [503.647s][info ][gc,stats ] to avoid Degenerated and Full GC cycles. [503.647s][info ][gc,stats ] [503.647s][info ][gc,stats ] 24 successful concurrent GCs [503.647s][info ][gc,stats ] 0 invoked explicitly [503.647s][info ][gc,stats ] [503.647s][info ][gc,stats ] 1 Degenerated GCs [503.647s][info ][gc,stats ] 1 caused by allocation failure [503.647s][info ][gc,stats ] 1 happened at Traversal [503.647s][info ][gc,stats ] 0 upgraded to Full GC [503.647s][info ][gc,stats ] [503.647s][info ][gc,stats ] 0 Full GCs [503.647s][info ][gc,stats ] 0 invoked explicitly [503.647s][info ][gc,stats ] 0 caused by allocation failure [503.647s][info ][gc,stats ] 0 upgraded from Degenerated GC [503.647s][info ][gc,stats ] [503.647s][info ][gc,stats ] [503.647s][info ][gc,stats ] ALLOCATION PACING: [503.647s][info ][gc,stats ] [503.647s][info ][gc,stats ] Max pacing delay is set for 10 ms. [503.647s][info ][gc,stats ] [503.647s][info ][gc,stats ] Higher delay would prevent application outpacing the GC, but it will hide the GC latencies [503.647s][info ][gc,stats ] from the STW pause times. Pacing affects the individual threads, and so it would also be [503.647s][info ][gc,stats ] invisible to the usual profiling tools, but would add up to end-to-end application latency. [503.647s][info ][gc,stats ] Raise max pacing delay with care. [503.647s][info ][gc,stats ] [503.647s][info ][gc,stats ] Actual pacing delays histogram: [503.647s][info ][gc,stats ] [503.647s][info ][gc,stats ] From - To Count [503.647s][info ][gc,stats ] 1 ms - 2 ms: 171 [503.647s][info ][gc,stats ] 2 ms - 4 ms: 166 [503.647s][info ][gc,stats ] 4 ms - 8 ms: 37 [503.647s][info ][gc,stats ] 8 ms - 16 ms: 1820 [503.647s][info ][gc,stats ] 16 ms - 32 ms: 24 [503.647s][info ][gc,stats ] 32 ms - 64 ms: 0 [503.647s][info ][gc,stats ] 64 ms - 128 ms: 0 [503.647s][info ][gc,stats ] 128 ms - 256 ms: 0 [503.647s][info ][gc,stats ] 256 ms - 512 ms: 1 [503.647s][info ][gc,stats ] [503.647s][info ][gc,stats ] [503.647s][info ][gc,stats ] [503.647s][info ][gc,stats ] Allocation tracing is disabled, use -XX:+ShenandoahAllocationTrace to enable. ================== If you are interested in experiments with some concrete settings or more statistics, don?t hesitate to ask. Running experiments is extremely easy now, when the application is JDK11 ready. P. > On 9 May 2018, at 22:27, Roman Kennke wrote: > > Hi Petr, > > thanks for running the experiments with newer builds again. > > I guess the class unloading problem can currently only be 'solved' by > disabling it with -XX:ShenandoahUnloadClassesFrequency=0, which should > be ok if your application doesn't use much classloaders. However, be > aware that app servers then to make fairly heavy use of classloaders. > And then there is also anonymous classes (and related stuff like > lambdas) which are not obvious but also put pressure on the class unloading. > > If it is possible at all for you to run with JDK10 or JDK11, you might > want to try the latest build of that: > > https://builds.shipilev.net/openjdk-shenandoah-jdk/ > > and use the traversal heuristics: -XX:ShenandoahGCHeuristics=traversal > > that might solve the tightly spaced pauses problem. Explanation: > Traversal mode only has one concurrent phase to do all of > marking+evacuation+updating-referenes, book-ended by a pause at each > end. Classic Shenandoah has 3 concurrent phases, with 4 pauses in total, > and in your workload it seems that two of the 3 phases are really short, > and that's why you see the 'STW storm' (nice term!) We shall look into > improving heuristics to avoid that, e.g. by folding the concurrent > phases into a single pause if expected concurrent work is too little. > > Cheers, Roman > > >> I have tried again with build 25.71-b228 >> >> This build seems like an improvement over the one I used before. >> Just by glancing into the logs it seems that GC pauses got smaller. >> >> About the 2 observations I had in previous email: >> 1) Class unloading >> Every fifth ShenandoahFinalMarkStartEvac pauses is longer (around 14ms) compared to the ones when it does not try to unload classes (7-8ms). >> As promised, it really says that it tries to unload the classes now, so the longer pause can be associated with it: >> >> Concurrent marking triggered. Free: 2249M, Free Threshold: 2252M; Allocated: 18009M, Alloc Threshold: 0M >> Free set: Used: 17810M of 20060M, Regions: 298 mutator, 0 collector >> Free set: Mutator view: Max regular: 8192K, Max humongous: 2048000K, External frag: 12%, Internal frag: 5% >> Free set: Collector view: Max regular: 0K >> Application time: 8.4427237 seconds >> [Pause Init Mark (unload classes)Pacer for Mark. Used: 18226M, Free: 2249M, Non-Taxable: 224M, Alloc Tax Rate: 29.7x >> , 3.064 ms] >> vmop [threads: total initially_running wait_to_block] [time: spin block sync cleanup vmop] page_trap_count >> 1507.865: ShenandoahInitMark [ 1074 0 0 ] [ 0 0 0 1 3 ] 0 >> Total time for which application threads were stopped: 0.0054101 seconds, Stopping threads took: 0.0004040 seconds >> [Concurrent marking (unload classes) 17G->17G(20G), 33.855 ms] >> Application time: 0.0344424 seconds >> [Pause Final Mark (unload classes)Adaptive CSet Selection. Target Free: 3276M, Actual Free: 17876M, Target CSet: [0M, 13407M] >> Collectable Garbage: 2099M (11% of total), 3M CSet, 263 CSet regions >> Immediate Garbage: 15868M (87% of total), 1984 regions >> Free: 18046M, Regions: 2271 mutator, 0 collector >> Pacer for Evacuation. CSet: 3M, Free: 18046M, Non-Taxable: 1804M, Alloc Tax Rate: 1.1x >> , 11.950 ms] >> vmop [threads: total initially_running wait_to_block] [time: spin block sync cleanup vmop] page_trap_count >> 1507.905: ShenandoahFinalMarkStartEvac [ 1074 1 4 ] [ 0 0 0 1 11 ] 0 >> Total time for which application threads were stopped: 0.0146809 seconds, Stopping threads took: 0.0006311 seconds >> [Concurrent cleanup 17G->2442M(20G), 0.566 ms] >> [Concurrent evacuation 2445M->2464M(20G), 3.280 ms] >> >> 2) Too closely spaced STW pauses >> It is the same story as before. This actually got worse It seems that Shenandoah is doing too well on strongly generational workloads like my application is doing (when application-scoped objects are created at the beginning and almost everything created after that is request scoped). This is very extreme with default settings. The JVM takes 13 concurrent threads on the test machine and then the log is full of pathological situations like this: >> >> 1431.134: ShenandoahInitMark [ 1074 0 1 ] [ 0 0 0 1 2 ] 0 >> Total time for which application threads were stopped: 0.0052016 seconds, Stopping threads took: 0.0004466 seconds >> [Concurrent marking (process refs) 17G->17G(20G), 32.542 ms] >> [Concurrent precleaning 17G->17G(20G), 2.180 ms] >> Application time: 0.0367779 seconds >> [Pause Final Mark (process refs)Adaptive CSet Selection. Target Free: 3276M, Actual Free: 18102M, Target CSet: [0M, 13576M] >> Collectable Garbage: 1915M (10% of total), 9M CSet, 241 CSet regions >> Immediate Garbage: 16078M (88% of total), 2011 regions >> Free: 18253M, Regions: 2296 mutator, 0 collector >> Pacer for Evacuation. CSet: 9M, Free: 18253M, Non-Taxable: 1825M, Alloc Tax Rate: 1.1x >> , 4.711 ms] >> vmop [threads: total initially_running wait_to_block] [time: spin block sync cleanup vmop] page_trap_count >> 1431.176: ShenandoahFinalMarkStartEvac [ 1074 4 0 ] [ 0 0 0 1 4 ] 0 >> Total time for which application threads were stopped: 0.0073044 seconds, Stopping threads took: 0.0006198 seconds >> [Concurrent cleanup 17G->2232M(20G), 0.627 ms] >> [Concurrent evacuation 2232M->2274M(20G), 3.539 ms] >> Application time: 0.0043597 seconds >> [Pause Init Update RefsPacer for Update-Refs. Used: 2274M, Free: 18202M, Non-Taxable: 1820M, Alloc Tax Rate: 1.1x >> , 0.272 ms] >> vmop [threads: total initially_running wait_to_block] [time: spin block sync cleanup vmop] page_trap_count >> 1431.188: ShenandoahInitUpdateRefs [ 1074 0 1 ] [ 0 0 0 2 0 ] 0 >> Total time for which application threads were stopped: 0.0029428 seconds, Stopping threads took: 0.0003774 seconds >> [Concurrent update references 2274M->2343M(20G), 29.363 ms] >> Application time: 0.0294687 seconds >> [Pause Final Update RefsFree: 20060M, Regions: 2524 mutator, 0 collector >> , 1.745 ms] >> vmop [threads: total initially_running wait_to_block] [time: spin block sync cleanup vmop] page_trap_count >> 1431.221: ShenandoahFinalUpdateRefs [ 1074 0 1 ] [ 0 0 0 2 1 ] 0 >> Total time for which application threads were stopped: 0.0048456 seconds, Stopping threads took: 0.0005142 seconds >> [Concurrent cleanup 2344M->420M(20G), 1.251 ms] >> >> The effect on the request tail latency observed by the test client during such a STW storm is worse than one larger pause done by G1. >> Again setting Concurrent threads to 1 helps a lot, but even with that especially ShenandoahFinalMarkStartEvac is often so short, that it its STW pause almost joins with the next pause: >> 958.586: ShenandoahInitMark [ 1075 0 0 ] [ 0 0 0 1 2 ] 0 >> Total time for which application threads were stopped: 0.0049878 seconds, Stopping threads took: 0.0004109 seconds >> [Concurrent marking 17G->17G(20G), 94.828 ms] >> Application time: 0.0949659 seconds >> [Pause Final MarkAdaptive CSet Selection. Target Free: 3276M, Actual Free: 18423M, Target CSet: [0M, 13817M] >> Collectable Garbage: 1480M (8% of total), 3M CSet, 186 CSet regions >> Immediate Garbage: 16511M (90% of total), 2064 regions >> Free: 18597M, Regions: 2343 mutator, 0 collector >> Pacer for Evacuation. CSet: 3M, Free: 18597M, Non-Taxable: 1859M, Alloc Tax Rate: 1.1x >> , 5.164 ms] >> vmop [threads: total initially_running wait_to_block] [time: spin block sync cleanup vmop] page_trap_count >> 958.686: ShenandoahFinalMarkStartEvac [ 1075 0 0 ] [ 0 0 0 1 5 ] 0 >> Total time for which application threads were stopped: 0.0076722 seconds, Stopping threads took: 0.0004436 seconds >> [Concurrent cleanup 17G->1896M(20G), 0.684 ms] >> [Concurrent evacuation 1896M->1948M(20G), 7.096 ms] >> Application time: 0.0081824 seconds >> [Pause Init Update RefsPacer for Update-Refs. Used: 1948M, Free: 18526M, Non-Taxable: 1852M, Alloc Tax Rate: 1.1x >> , 0.290 ms] >> vmop [threads: total initially_running wait_to_block] [time: spin block sync cleanup vmop] page_trap_count >> 958.702: ShenandoahInitUpdateRefs [ 1075 0 0 ] [ 0 0 0 1 0 ] 0 >> Total time for which application threads were stopped: 0.0027895 seconds, Stopping threads took: 0.0004562 seconds >> [Concurrent update references 1948M->2170M(20G), 131.651 ms] >> Application time: 0.1317581 seconds >> [Pause Final Update RefsFree: 19793M, Regions: 2499 mutator, 0 collector >> , 1.593 ms] >> vmop [threads: total initially_running wait_to_block] [time: spin block sync cleanup vmop] page_trap_count >> 958.836: ShenandoahFinalUpdateRefs [ 1075 0 0 ] [ 0 0 0 1 1 ] 0 >> Total time for which application threads were stopped: 0.0039250 seconds, Stopping threads took: 0.0004161 seconds >> [Concurrent cleanup 2170M->704M(20G), 4.958 ms] >> >> >> >> If you need some more statistics or rerunning the workload with different setting, don?t hesitate to ask. >> >> >> Petr >> >> >> >>> On 9 May 2018, at 09:36, Aleksey Shipilev wrote: >>> >>> On 05/09/2018 07:53 AM, Roman Kennke wrote: >>>> Would it be possible to run the same experiments with a newer build, >>>> e.g. one from here: >>>> >>>> https://builds.shipilev.net/ >>> >>> More precisely, this one for 8u: >>> https://builds.shipilev.net/openjdk-shenandoah-jdk8/ >>> >>> >>>>> I would suggest mentioning somewhere in the user guide the fact, that the class unloading >>>>> feature can significantly prolong GC pauses. Also the GC logging could mention that the class >>>>> unloading is going on (yes, you can see it with class unloading logging on, but most people >>>>> usually don?t have it on, when trying to fix GC issues). >>> It does mention it in recent builds, like this: >>> >>> [Pause Init Mark (unload classes), 3.463 ms] >>> [Concurrent marking (unload classes) 557M->557M(8192M), 53.294 ms] >>> [Pause Final Mark (unload classes), 15.750 ms] >>> [Concurrent cleanup 557M->543M(8192M), 0.288 ms] >>> >>> Thanks, >>> -Aleksey >>> >> > > From rkennke at redhat.com Thu May 31 16:25:39 2018 From: rkennke at redhat.com (Roman Kennke) Date: Thu, 31 May 2018 18:25:39 +0200 Subject: RFC: Make Traversal GC default in dev? In-Reply-To: References: <734F726E-7768-4AE8-A186-C256B1A65CC5@redhat.com> Message-ID: <04478df0-bd09-c8cd-4877-98eebe816871@redhat.com> Am 23.05.2018 um 11:40 schrieb Aleksey Shipilev: > On 05/23/2018 11:04 AM, Roman Kennke wrote: >> What speaks against making Traversal GC the default mode in dev branch? It seems to equal or >> exceed performance and latency in most cases, sometimes dramatically, it provides better >> footprint properties due to incremental-updatish algorithm, a simpler barrier story, etc. Early >> testers have uncovered some bugs, but now seem happy with it. What's holding it back? > > From the top of my head: > > 1) Throughput is not necessarily better: Compiler.* is ~4% slower, Derby is ~2% slower > > 2) There is no traversal in sh/jdk9 and sh/jdk8, and most of our adopters are on sh/jdk8, so not > only this move would split our adopter user base, depending on what version they are running, but it > also provides us no substantial exposure benefits. > > 3) Recent C2 barrier work have not been ported/verified for traversal? > > I believe traversal is the future going forward, but there are also engineering things we need to > complete before we consider it to be default. So how about including it in backports, after Roland got the C2 enqueue barriers in shape? That should make it easier to give it some more exposure to early testers, and also make your backporting life easier? Roman From shade at redhat.com Thu May 31 16:27:45 2018 From: shade at redhat.com (Aleksey Shipilev) Date: Thu, 31 May 2018 18:27:45 +0200 Subject: RFC: Make Traversal GC default in dev? In-Reply-To: <04478df0-bd09-c8cd-4877-98eebe816871@redhat.com> References: <734F726E-7768-4AE8-A186-C256B1A65CC5@redhat.com> <04478df0-bd09-c8cd-4877-98eebe816871@redhat.com> Message-ID: <8975a941-df21-8d50-15f4-0b615d05cbcb@redhat.com> On 05/31/2018 06:25 PM, Roman Kennke wrote: > Am 23.05.2018 um 11:40 schrieb Aleksey Shipilev: >> On 05/23/2018 11:04 AM, Roman Kennke wrote: >>> What speaks against making Traversal GC the default mode in dev branch? It seems to equal or >>> exceed performance and latency in most cases, sometimes dramatically, it provides better >>> footprint properties due to incremental-updatish algorithm, a simpler barrier story, etc. Early >>> testers have uncovered some bugs, but now seem happy with it. What's holding it back? >> >> From the top of my head: >> >> 1) Throughput is not necessarily better: Compiler.* is ~4% slower, Derby is ~2% slower >> >> 2) There is no traversal in sh/jdk9 and sh/jdk8, and most of our adopters are on sh/jdk8, so not >> only this move would split our adopter user base, depending on what version they are running, but it >> also provides us no substantial exposure benefits. >> >> 3) Recent C2 barrier work have not been ported/verified for traversal? >> >> I believe traversal is the future going forward, but there are also engineering things we need to >> complete before we consider it to be default. > > So how about including it in backports, after Roland got the C2 enqueue > barriers in shape? That should make it easier to give it some more > exposure to early testers, and also make your backporting life easier? It is already in sh/jdk10. Backporting the whole shebang to sh/jdk8u would mean backporting partial/matrix stuff too, which is problematic. -Aleksey From rkennke at redhat.com Thu May 31 16:41:25 2018 From: rkennke at redhat.com (Roman Kennke) Date: Thu, 31 May 2018 18:41:25 +0200 Subject: RFR: Upstream merge Message-ID: I intend to merge from upsteam up to changeset: changeset: 50192:ac916fea6ec7 user: vromero date: Tue Apr 24 12:20:10 2018 -0700 summary: 8202157: remove the use of string keys at InapplicableMethodException This pulled in without significant conflicts. After this comes "8200303: C2 should leverage profiling for lookupswitch/tableswitch", which will require some work. List of changesets: http://cr.openjdk.java.net/~rkennke/upstream-merge-2018-05-31/outgoing.txt Testing is ongoing, but looking good. Ok? Roman From shade at redhat.com Thu May 31 16:51:15 2018 From: shade at redhat.com (Aleksey Shipilev) Date: Thu, 31 May 2018 18:51:15 +0200 Subject: RFR: Upstream merge In-Reply-To: References: Message-ID: <7482368d-201b-fff0-c21c-55b9cecdf624@redhat.com> On 05/31/2018 06:41 PM, Roman Kennke wrote: > I intend to merge from upsteam up to changeset: > > changeset: 50192:ac916fea6ec7 > user: vromero > date: Tue Apr 24 12:20:10 2018 -0700 > summary: 8202157: remove the use of string keys at > InapplicableMethodException > > This pulled in without significant conflicts. > > After this comes "8200303: C2 should leverage profiling for > lookupswitch/tableswitch", which will require some work. > > List of changesets: > http://cr.openjdk.java.net/~rkennke/upstream-merge-2018-05-31/outgoing.txt > > Testing is ongoing, but looking good. > > Ok? OK, as long as there are no changes in Shenandoah -- there should not be with this list? -Aleksey From rkennke at redhat.com Thu May 31 17:48:01 2018 From: rkennke at redhat.com (Roman Kennke) Date: Thu, 31 May 2018 19:48:01 +0200 Subject: RFR: Upstream merge In-Reply-To: <7482368d-201b-fff0-c21c-55b9cecdf624@redhat.com> References: <7482368d-201b-fff0-c21c-55b9cecdf624@redhat.com> Message-ID: <75c840e7-7192-d39b-418c-8dab4c37f05d@redhat.com> Am 31.05.2018 um 18:51 schrieb Aleksey Shipilev: > On 05/31/2018 06:41 PM, Roman Kennke wrote: >> I intend to merge from upsteam up to changeset: >> >> changeset: 50192:ac916fea6ec7 >> user: vromero >> date: Tue Apr 24 12:20:10 2018 -0700 >> summary: 8202157: remove the use of string keys at >> InapplicableMethodException >> >> This pulled in without significant conflicts. >> >> After this comes "8200303: C2 should leverage profiling for >> lookupswitch/tableswitch", which will require some work. >> >> List of changesets: >> http://cr.openjdk.java.net/~rkennke/upstream-merge-2018-05-31/outgoing.txt >> >> Testing is ongoing, but looking good. >> >> Ok? > > OK, as long as there are no changes in Shenandoah -- there should not be with this list? Only some very minor changes like added includes and forward decls due to upstream include changes I think. Roman From shade at redhat.com Thu May 31 17:48:32 2018 From: shade at redhat.com (Aleksey Shipilev) Date: Thu, 31 May 2018 19:48:32 +0200 Subject: RFR: Upstream merge In-Reply-To: <75c840e7-7192-d39b-418c-8dab4c37f05d@redhat.com> References: <7482368d-201b-fff0-c21c-55b9cecdf624@redhat.com> <75c840e7-7192-d39b-418c-8dab4c37f05d@redhat.com> Message-ID: <7c434b1e-e66a-d52f-4f7f-dd16f3a4745d@redhat.com> On 05/31/2018 07:48 PM, Roman Kennke wrote: > Am 31.05.2018 um 18:51 schrieb Aleksey Shipilev: >> On 05/31/2018 06:41 PM, Roman Kennke wrote: >>> I intend to merge from upsteam up to changeset: >>> >>> changeset: 50192:ac916fea6ec7 >>> user: vromero >>> date: Tue Apr 24 12:20:10 2018 -0700 >>> summary: 8202157: remove the use of string keys at >>> InapplicableMethodException >>> >>> This pulled in without significant conflicts. >>> >>> After this comes "8200303: C2 should leverage profiling for >>> lookupswitch/tableswitch", which will require some work. >>> >>> List of changesets: >>> http://cr.openjdk.java.net/~rkennke/upstream-merge-2018-05-31/outgoing.txt >>> >>> Testing is ongoing, but looking good. >>> >>> Ok? >> >> OK, as long as there are no changes in Shenandoah -- there should not be with this list? > > Only some very minor changes like added includes and forward decls due > to upstream include changes I think. Fine then. -Aleksey From roman at kennke.org Thu May 31 17:50:11 2018 From: roman at kennke.org (roman at kennke.org) Date: Thu, 31 May 2018 17:50:11 +0000 Subject: hg: shenandoah/jdk: 77 new changesets Message-ID: <201805311750.w4VHoGM6024215@aojmv0008.oracle.com> Changeset: 466d4df248a6 Author: dnsimon Date: 2018-04-18 11:11 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/466d4df248a6 8187490: HotSpotGraalMBean should be moved to Graal management module Reviewed-by: alanb, mchung, iveresov ! make/common/Modules.gmk ! src/java.management/share/classes/module-info.java ! src/jdk.internal.vm.compiler.management/share/classes/module-info.java - src/jdk.internal.vm.compiler.management/share/classes/org/graalvm/compiler/hotspot/jmx/GraalMBeans.java Changeset: 8ac08fa69f00 Author: alanb Date: 2018-04-18 10:20 +0100 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/8ac08fa69f00 8201315: (se) Allow SelectableChannel.register to be invoked while selection operation is in progress Reviewed-by: bpb ! src/java.base/share/classes/java/nio/channels/SelectableChannel.java ! src/java.base/share/classes/java/nio/channels/SelectionKey.java ! src/java.base/share/classes/java/nio/channels/Selector.java ! src/java.base/share/classes/java/nio/channels/spi/AbstractSelectableChannel.java ! src/java.base/share/classes/sun/nio/ch/SelectorImpl.java + test/jdk/java/nio/channels/Selector/RegisterDuringSelect.java Changeset: 14518ac8df87 Author: tschatzl Date: 2018-04-18 11:36 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/14518ac8df87 8178105: Switch mark bitmaps during Remark Reviewed-by: sjohanss, sangheki ! src/hotspot/share/gc/g1/g1ConcurrentMark.cpp ! src/hotspot/share/gc/g1/g1ConcurrentMark.hpp ! src/hotspot/share/gc/g1/g1RemSet.cpp Changeset: 7593b16d0d20 Author: tschatzl Date: 2018-04-18 11:36 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/7593b16d0d20 8154528: Reclaim regions emptied by marking in Remark pause Reviewed-by: shade, sjohanss ! src/hotspot/share/gc/g1/g1ConcurrentMark.cpp ! src/hotspot/share/gc/g1/g1ConcurrentMark.hpp Changeset: 1ccbcd88f66c Author: tschatzl Date: 2018-04-18 11:36 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/1ccbcd88f66c 8200723: Suppress rs_length and predicted_cards sampling during mixed gcs Summary: Due to the impact of these measurements on pause time, their high difference to other collections during mixed collections, and their non-use during mixed collections, do not use rs_length and predicted_cards measurements done during mixed gc for the predictor. This avoids the young gen sizing after the mixed phase to be negatively affected by mixed collections. Reviewed-by: kbarrett, sjohanss ! src/hotspot/share/gc/g1/g1Policy.cpp Changeset: 2d62570a615c Author: tschatzl Date: 2018-04-18 11:36 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/2d62570a615c 8200426: Make G1 code use _g1h members Summary: Consistently use _g1h member names for cached G1CollectedHeap* variables. Reviewed-by: sangheki, sjohanss ! src/hotspot/share/gc/g1/collectionSetChooser.cpp ! src/hotspot/share/gc/g1/g1Allocator.cpp ! src/hotspot/share/gc/g1/g1CollectedHeap.cpp ! src/hotspot/share/gc/g1/g1CollectedHeap.hpp ! src/hotspot/share/gc/g1/g1CollectedHeap.inline.hpp ! src/hotspot/share/gc/g1/g1CollectionSet.cpp ! src/hotspot/share/gc/g1/g1CollectionSet.hpp ! src/hotspot/share/gc/g1/g1ConcurrentMark.cpp ! src/hotspot/share/gc/g1/g1ConcurrentMark.hpp ! src/hotspot/share/gc/g1/g1EvacFailure.cpp ! src/hotspot/share/gc/g1/g1HeapSizingPolicy.cpp ! src/hotspot/share/gc/g1/g1HeapSizingPolicy.hpp ! src/hotspot/share/gc/g1/g1HeapSizingPolicy_ext.cpp ! src/hotspot/share/gc/g1/g1MonitoringSupport.cpp ! src/hotspot/share/gc/g1/g1MonitoringSupport.hpp ! src/hotspot/share/gc/g1/g1OopClosures.cpp ! src/hotspot/share/gc/g1/g1OopClosures.hpp ! src/hotspot/share/gc/g1/g1OopClosures.inline.hpp ! src/hotspot/share/gc/g1/g1Policy.cpp ! src/hotspot/share/gc/g1/g1Policy.hpp ! src/hotspot/share/gc/g1/g1RemSet.cpp ! src/hotspot/share/gc/g1/g1RemSet.hpp ! src/hotspot/share/gc/g1/heapRegion.cpp ! src/hotspot/share/gc/g1/heapRegionRemSet.cpp ! src/hotspot/share/prims/whitebox.cpp Changeset: fe4156ef739b Author: tschatzl Date: 2018-04-18 11:36 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/fe4156ef739b 8200730: Fix debug=gc+phases time tracking in Remark and Cleanup Summary: Timing in Remark and Cleanup pauses did not use instance variables for the scoped timing objects, so these durations were always zero. Reviewed-by: sangheki, sjohanss ! src/hotspot/share/gc/g1/g1ConcurrentMark.cpp Changeset: f1dcdc3cd6b7 Author: tschatzl Date: 2018-04-18 11:36 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/f1dcdc3cd6b7 8201487: Do not rebalance reference processing queues if not doing parallel reference processing Reviewed-by: sangheki, kbarrett ! src/hotspot/share/gc/shared/referenceProcessor.cpp ! test/hotspot/jtreg/gc/logging/TestPrintReferences.java Changeset: ef5220d644e3 Author: tschatzl Date: 2018-04-18 11:36 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/ef5220d644e3 8201490: Improve concurrent mark keep alive closure performance Summary: Avoid doing marking work unless absolutely required. Reviewed-by: sjohanss, kbarrett ! src/hotspot/share/gc/g1/g1ConcurrentMark.cpp ! src/hotspot/share/gc/g1/g1ConcurrentMark.hpp ! src/hotspot/share/gc/g1/g1ConcurrentMark.inline.hpp Changeset: b5d5e53232ce Author: tschatzl Date: 2018-04-18 11:36 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/b5d5e53232ce 8201596: java.lang.ref.Reference processing total time logging broken Summary: Fix "Reference Processing" and add "Weak Processing" time Reviewed-by: kbarrett, sangheki ! src/hotspot/share/gc/g1/g1CollectedHeap.cpp ! src/hotspot/share/gc/g1/g1GCPhaseTimes.cpp ! src/hotspot/share/gc/g1/g1GCPhaseTimes.hpp ! test/hotspot/jtreg/gc/g1/TestGCLogMessages.java Changeset: bfba4712d4ff Author: tschatzl Date: 2018-04-18 11:36 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/bfba4712d4ff 8201172: Parallelize Remset Tracking Update Before Rebuild phase Reviewed-by: sangheki, sjohanss ! src/hotspot/share/gc/g1/g1ConcurrentMark.cpp ! src/hotspot/share/gc/g1/g1ConcurrentMark.hpp Changeset: 0c2ceb50783e Author: shade Date: 2018-04-18 15:05 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/0c2ceb50783e 8201799: Build failures after JDK-8195099 (Concurrent safe-memory-reclamation mechanism) Reviewed-by: dholmes, tschatzl, eosterlund ! src/hotspot/share/utilities/globalCounter.inline.hpp Changeset: 97984a163b55 Author: glaubitz Date: 2018-04-18 15:12 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/97984a163b55 8201616: Hotspot crashes on linux-sparc after 8189941 Reviewed-by: kvn, stuefe ! src/hotspot/os_cpu/linux_sparc/os_linux_sparc.cpp Changeset: 43159a6174fa Author: ksrini Date: 2018-04-16 16:52 -0700 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/43159a6174fa 8198793: Add launcher support for preview features Reviewed-by: mchung, sundar ! src/java.base/share/classes/sun/launcher/resources/launcher.properties Changeset: 76e3bcb9bee1 Author: dnsimon Date: 2018-04-18 15:57 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/76e3bcb9bee1 8201794: [Graal] fix regressions from JDK-8187490 Reviewed-by: alanb, mchung + src/jdk.internal.vm.compiler.management/share/classes/org.graalvm.compiler.hotspot.management/src/org/graalvm/compiler/hotspot/management/HotSpotGraalManagement.java ! test/jdk/jdk/modules/etc/UpgradeableModules.java Changeset: a3e79f97e86b Author: coleenp Date: 2018-04-18 10:39 -0400 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/a3e79f97e86b 8200555: OopHandle should use Access API Summary: Add RootAccess<> to OopHandle.resolve() in runtime and interpreter code. Add comments for compiler code for later. Reviewed-by: eosterlund, stefank ! src/hotspot/cpu/aarch64/gc/g1/g1BarrierSetAssembler_aarch64.cpp ! src/hotspot/cpu/aarch64/interp_masm_aarch64.cpp ! src/hotspot/cpu/aarch64/interp_masm_aarch64.hpp ! src/hotspot/cpu/aarch64/macroAssembler_aarch64.cpp ! src/hotspot/cpu/aarch64/macroAssembler_aarch64.hpp ! src/hotspot/cpu/sparc/interp_masm_sparc.cpp ! src/hotspot/cpu/sparc/interp_masm_sparc.hpp ! src/hotspot/cpu/sparc/macroAssembler_sparc.cpp ! src/hotspot/cpu/sparc/macroAssembler_sparc.hpp ! src/hotspot/cpu/sparc/templateInterpreterGenerator_sparc.cpp ! src/hotspot/cpu/sparc/templateTable_sparc.cpp ! src/hotspot/cpu/x86/interp_masm_x86.cpp ! src/hotspot/cpu/x86/interp_masm_x86.hpp ! src/hotspot/cpu/x86/macroAssembler_x86.cpp ! src/hotspot/cpu/x86/macroAssembler_x86.hpp ! src/hotspot/share/classfile/classLoaderData.cpp ! src/hotspot/share/classfile/moduleEntry.cpp ! src/hotspot/share/classfile/moduleEntry.hpp ! src/hotspot/share/code/compiledMethod.inline.hpp ! src/hotspot/share/oops/constantPool.inline.hpp ! src/hotspot/share/oops/cpCache.hpp ! src/hotspot/share/oops/cpCache.inline.hpp ! src/hotspot/share/oops/klass.cpp ! src/hotspot/share/oops/methodData.hpp ! src/hotspot/share/oops/oopHandle.hpp + src/hotspot/share/oops/oopHandle.inline.hpp ! src/hotspot/share/opto/library_call.cpp ! src/hotspot/share/opto/memnode.cpp ! src/hotspot/share/opto/phaseX.cpp ! src/hotspot/share/opto/subnode.cpp ! src/hotspot/share/prims/jvmtiEnvBase.cpp ! src/hotspot/share/prims/jvmtiEnvBase.hpp ! src/hotspot/share/runtime/javaFrameAnchor.hpp ! src/hotspot/share/runtime/safepoint.hpp Changeset: a838e3707f3a Author: clanger Date: 2018-04-16 12:50 +0530 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/a838e3707f3a 8201369: Inet4AddressImpl_getLocalHostName reverse lookup on Solaris only Reviewed-by: clanger, chegar Contributed-by: sshamaia at in.ibm.com ! src/java.base/unix/native/libnet/Inet4AddressImpl.c Changeset: e57e6addb978 Author: coleenp Date: 2018-04-18 12:06 -0400 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/e57e6addb978 8201505: Use WeakHandle for ProtectionDomainCacheTable and ResolvedMethodTable 8193524: Redefining a method that removes use of 1 or more lambda expressions causes the JVM to hang Summary: Remove oop pointers from runtime data structures. Reviewed-by: lfoltan, stefank Contributed-by: coleen.phillimore at oracle.com, lois.foltan at oracle.com ! src/hotspot/share/classfile/classLoaderData.cpp ! src/hotspot/share/classfile/classLoaderData.hpp ! src/hotspot/share/classfile/dictionary.cpp ! src/hotspot/share/classfile/dictionary.hpp ! src/hotspot/share/classfile/protectionDomainCache.cpp ! src/hotspot/share/classfile/protectionDomainCache.hpp ! src/hotspot/share/classfile/systemDictionary.cpp ! src/hotspot/share/gc/g1/g1CollectedHeap.cpp ! src/hotspot/share/oops/weakHandle.hpp ! src/hotspot/share/prims/resolvedMethodTable.cpp ! src/hotspot/share/prims/resolvedMethodTable.hpp ! src/hotspot/share/runtime/mutex.hpp ! src/hotspot/share/runtime/mutexLocker.cpp ! src/hotspot/share/utilities/hashtable.cpp ! test/hotspot/jtreg/runtime/MemberName/MemberNameLeak.java Changeset: 3cdebcdc8ec0 Author: tschatzl Date: 2018-04-18 19:00 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/3cdebcdc8ec0 8201527: Bump default value of G1RefProcDrainInterval Summary: Due to high startup cost of marking, lower the frequency of draining the mark stack generated by reference processing. Reviewed-by: sangheki, sjohanss ! src/hotspot/share/gc/g1/g1ConcurrentMark.cpp ! src/hotspot/share/gc/g1/g1_globals.hpp Changeset: 663f5d90f0e8 Author: darcy Date: 2018-04-18 10:03 -0700 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/663f5d90f0e8 8201766: Mark TimSortStackSize2.java as intermittently failing Reviewed-by: dholmes ! test/jdk/TEST.groups ! test/jdk/java/util/Arrays/TimSortStackSize2.java Changeset: 02c08e20d66c Author: coleenp Date: 2018-04-18 13:37 -0400 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/02c08e20d66c 8201537: Remove is_alive closure from Klass::is_loader_alive() Summary: remove is_alive closure from callers of Klass::is_loader_alive so that cleaning metadata doesn't require GC closure. Reviewed-by: adinn, stefank ! src/hotspot/share/classfile/loaderConstraints.cpp ! src/hotspot/share/classfile/resolutionErrors.cpp ! src/hotspot/share/code/compiledMethod.cpp ! src/hotspot/share/code/compiledMethod.hpp ! src/hotspot/share/code/nmethod.cpp ! src/hotspot/share/gc/cms/concurrentMarkSweepGeneration.cpp ! src/hotspot/share/gc/g1/g1CollectedHeap.cpp ! src/hotspot/share/gc/parallel/psMarkSweep.cpp ! src/hotspot/share/gc/parallel/psParallelCompact.cpp ! src/hotspot/share/gc/serial/genMarkSweep.cpp ! src/hotspot/share/oops/compiledICHolder.hpp ! src/hotspot/share/oops/instanceKlass.cpp ! src/hotspot/share/oops/instanceKlass.hpp ! src/hotspot/share/oops/klass.cpp ! src/hotspot/share/oops/klass.hpp ! src/hotspot/share/oops/methodData.cpp ! src/hotspot/share/oops/methodData.hpp ! src/hotspot/share/prims/whitebox.cpp Changeset: 53aae0c219e6 Author: vromero Date: 2018-04-18 16:02 -0400 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/53aae0c219e6 8196433: use the new error diagnostic approach at javac.Main Reviewed-by: jjg ! make/langtools/tools/propertiesparser/parser/MessageType.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/api/JavacTaskImpl.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/main/Arguments.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/main/Main.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/main/Option.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/main/OptionHelper.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/resources/compiler.properties ! src/jdk.compiler/share/classes/com/sun/tools/javac/resources/javac.properties ! src/jdk.compiler/share/classes/com/sun/tools/javac/util/AbstractDiagnosticFormatter.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/util/JavacMessages.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/util/Log.java ! test/langtools/jdk/javadoc/tool/BadOptionsTest.java - test/langtools/tools/javac/6410653/T6410653.java - test/langtools/tools/javac/T8009640/CheckRejectProfileBCPOptionsIfUsedTogetherTest.java ! test/langtools/tools/javac/diags/CheckResourceKeys.java ! test/langtools/tools/javac/diags/examples.not-yet.txt ! test/langtools/tools/javac/diags/examples/DirPathElementNotDirectory/DirPathElementNotDirectory.java ! test/langtools/tools/javac/doclint/DocLintTest.java ! test/langtools/tools/javac/doclint/IncludePackagesTest.java ! test/langtools/tools/javac/modules/AddExportsTest.java ! test/langtools/tools/javac/modules/AddLimitMods.java ! test/langtools/tools/javac/modules/AddModulesTest.java ! test/langtools/tools/javac/modules/AddReadsTest.java ! test/langtools/tools/javac/modules/LimitModulesTest.java ! test/langtools/tools/javac/modules/ModuleSourcePathTest.java ! test/langtools/tools/javac/modules/PatchModulesTest.java - test/langtools/tools/javac/options/release/ReleaseOptionClashes.java + test/langtools/tools/javac/options/smokeTests/OptionSmokeTest.java ! test/langtools/tools/javac/platform/PlatformProviderTest.java ! test/langtools/tools/javadoc/BadOptionsTest.java ! test/langtools/tools/lib/toolbox/JavacTask.java Changeset: af4b57a556be Author: vtheeyarath Date: 2018-04-18 10:30 -0700 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/af4b57a556be 8184693: add Pattern.isEmpty Summary: added method Pattern.isEmpty Reviewed-by: forax, chegar, smarks, psandoz, rriggs ! src/java.base/share/classes/java/util/Optional.java ! src/java.base/share/classes/java/util/OptionalDouble.java ! src/java.base/share/classes/java/util/OptionalInt.java ! src/java.base/share/classes/java/util/OptionalLong.java ! test/jdk/java/util/Optional/Basic.java ! test/jdk/java/util/Optional/BasicDouble.java ! test/jdk/java/util/Optional/BasicInt.java ! test/jdk/java/util/Optional/BasicLong.java Changeset: e242740a92b8 Author: coleenp Date: 2018-04-18 18:43 -0400 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/e242740a92b8 8201556: Disallow reading oops in ClassLoaderData if unloading Summary: Move class_loader oop to an OopHandle, and assert that holder is alive when getting class_loader. Reviewed-by: kbarrett, adinn ! src/hotspot/share/classfile/classLoaderData.cpp ! src/hotspot/share/classfile/classLoaderData.hpp ! src/hotspot/share/classfile/classLoaderData.inline.hpp ! src/hotspot/share/classfile/classLoaderStats.cpp ! src/hotspot/share/classfile/moduleEntry.cpp ! src/hotspot/share/classfile/placeholders.cpp ! src/hotspot/share/classfile/systemDictionaryShared.cpp ! src/hotspot/share/classfile/systemDictionaryShared.hpp ! src/hotspot/share/gc/g1/g1MonitoringSupport.cpp ! src/hotspot/share/gc/parallel/parallelScavengeHeap.cpp ! src/hotspot/share/gc/shared/genCollectedHeap.cpp ! src/hotspot/share/memory/heapInspection.cpp ! src/hotspot/share/memory/universe.cpp ! src/hotspot/share/oops/instanceKlass.cpp ! src/hotspot/share/oops/klass.cpp ! src/hotspot/share/oops/oopHandle.hpp ! src/hotspot/share/oops/weakHandle.cpp ! src/hotspot/share/prims/jvmtiGetLoadedClasses.cpp ! src/hotspot/share/runtime/vmStructs.cpp ! src/hotspot/share/services/classLoadingService.cpp ! src/hotspot/share/trace/traceStream.cpp ! src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/classfile/ClassLoaderData.java Changeset: f909f09569ca Author: lucy Date: 2018-04-18 21:10 -0700 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/f909f09569ca 8200450: Root cause analysis for JDK-8200366 Summary: add safeguard checks to make sure CodeBlob if fully initialized Reviewed-by: kvn ! src/hotspot/share/code/codeHeapState.cpp ! src/hotspot/share/code/codeHeapState.hpp ! src/hotspot/share/services/diagnosticCommand.cpp Changeset: ad1a5f49b8ae Author: sjohanss Date: 2018-04-19 09:15 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/ad1a5f49b8ae 8196071: Change G1 Full GC heap and thread sizing ergonomics Reviewed-by: tschatzl, sangheki ! src/hotspot/share/gc/g1/g1FullCollector.cpp ! src/hotspot/share/gc/g1/g1FullCollector.hpp ! src/hotspot/share/gc/shared/adaptiveSizePolicy.hpp Changeset: a4672513d6e3 Author: pliden Date: 2018-04-19 07:54 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/a4672513d6e3 8201646: Introduce ReferenceDiscoverer interface Reviewed-by: stefank, tschatzl, rkennke ! src/hotspot/share/gc/cms/cmsOopClosures.hpp ! src/hotspot/share/gc/cms/concurrentMarkSweepGeneration.cpp ! src/hotspot/share/gc/g1/g1CollectedHeap.cpp ! src/hotspot/share/gc/g1/g1FullGCOopClosures.hpp ! src/hotspot/share/gc/g1/g1OopClosures.hpp ! src/hotspot/share/gc/g1/g1ParScanThreadState.hpp ! src/hotspot/share/gc/serial/markSweep.cpp ! src/hotspot/share/gc/serial/markSweep.hpp ! src/hotspot/share/gc/shared/genOopClosures.hpp + src/hotspot/share/gc/shared/referenceDiscoverer.hpp ! src/hotspot/share/gc/shared/referenceProcessor.hpp ! src/hotspot/share/memory/iterator.hpp ! src/hotspot/share/oops/instanceRefKlass.inline.hpp Changeset: ee3555b4a130 Author: pliden Date: 2018-04-19 07:54 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/ee3555b4a130 8201647: Make initial clearing of CHeapBitMap optional Reviewed-by: stefank, kbarrett, tschatzl, smonteith ! src/hotspot/share/utilities/bitMap.cpp ! src/hotspot/share/utilities/bitMap.hpp Changeset: 19b137cb2d42 Author: pliden Date: 2018-04-19 07:54 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/19b137cb2d42 8201800: Add support for adjusting heap addresses in a TLAB Reviewed-by: shade, stefank ! src/hotspot/share/gc/shared/threadLocalAllocBuffer.hpp Changeset: ac761df837c7 Author: shade Date: 2018-04-19 12:02 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/ac761df837c7 8201785: Make ModRefBarrierSetAssembler abstract on all platforms Reviewed-by: eosterlund, pliden, mdoerr ! src/hotspot/cpu/aarch64/gc/shared/modRefBarrierSetAssembler_aarch64.cpp ! src/hotspot/cpu/aarch64/gc/shared/modRefBarrierSetAssembler_aarch64.hpp ! src/hotspot/cpu/ppc/gc/shared/modRefBarrierSetAssembler_ppc.cpp ! src/hotspot/cpu/ppc/gc/shared/modRefBarrierSetAssembler_ppc.hpp ! src/hotspot/cpu/s390/gc/shared/modRefBarrierSetAssembler_s390.cpp ! src/hotspot/cpu/s390/gc/shared/modRefBarrierSetAssembler_s390.hpp Changeset: 81e8cdf31b5a Author: clanger Date: 2018-04-19 12:12 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/81e8cdf31b5a 8202000: AIX build broken after JDK-8195099 Reviewed-by: goetz, stuefe, mbaesken ! test/hotspot/gtest/utilities/test_globalCounter.cpp Changeset: 9c52da3b7819 Author: simonis Date: 2018-04-16 14:29 +0530 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/9c52da3b7819 8201540: [AIX] Extend the set of supported charsets in java.base Reviewed-by: alanb, sherman, simonis Contributed-by: bhamaram at in.ibm.com ! make/data/charsetmapping/charsets ! make/data/charsetmapping/stdcs-aix ! make/jdk/src/classes/build/tools/charsetmapping/SPI.java - src/jdk.charsets/share/classes/sun/nio/cs/ext/IBM942C.java + src/jdk.charsets/share/classes/sun/nio/cs/ext/IBM942C.java.template - src/jdk.charsets/share/classes/sun/nio/cs/ext/IBM943C.java + src/jdk.charsets/share/classes/sun/nio/cs/ext/IBM943C.java.template Changeset: 06a6ae39d892 Author: igerasim Date: 2018-04-19 09:36 -0700 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/06a6ae39d892 8201510: Merge TwoStacksPlainSocketImpl into DualStackPlainSocketImpl [win] Reviewed-by: chegar ! src/java.base/windows/classes/java/net/DualStackPlainSocketImpl.java ! src/java.base/windows/classes/java/net/PlainSocketImpl.java - src/java.base/windows/classes/java/net/TwoStacksPlainSocketImpl.java ! src/java.base/windows/native/libnet/DualStackPlainSocketImpl.c - src/java.base/windows/native/libnet/TwoStacksPlainSocketImpl.c + test/jdk/java/net/Socket/RejectIPv6.java ! test/jdk/java/net/Socket/setReuseAddress/Basic.java ! test/jdk/java/net/Socket/setReuseAddress/Restart.java Changeset: 99644c75eaed Author: sherman Date: 2018-04-19 10:33 -0700 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/99644c75eaed 6341887: java.util.zip: Add ByteBuffer methods to Inflater/Deflater Reviewed-by: alanb Contributed-by: david.lloyd at redhat.com ! src/java.base/share/classes/java/util/zip/Deflater.java ! src/java.base/share/classes/java/util/zip/Inflater.java ! src/java.base/share/classes/java/util/zip/ZipUtils.java ! src/java.base/share/native/libzip/Deflater.c ! src/java.base/share/native/libzip/Inflater.c ! test/jdk/java/util/zip/DeInflate.java ! test/jdk/java/util/zip/FlaterTest.java Changeset: 485677a0016f Author: lana Date: 2018-04-19 18:07 +0000 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/485677a0016f Added tag jdk-11+10 for changeset 69d7398038c5 ! .hgtags Changeset: f7e69d07138d Author: iignatyev Date: 2018-04-19 15:31 -0700 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/f7e69d07138d 8202037: Split slow ctw_1 tests Reviewed-by: kvn ! test/hotspot/jtreg/TEST.groups Changeset: 32ba0c867a46 Author: dlong Date: 2018-04-19 16:28 -0700 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/32ba0c867a46 8200196: [Graal] implement Object.notify/notifyAll intrinsics Reviewed-by: iveresov ! src/hotspot/share/aot/aotCodeHeap.cpp ! src/hotspot/share/jvmci/jvmciRuntime.cpp ! src/hotspot/share/jvmci/jvmciRuntime.hpp ! src/hotspot/share/jvmci/vmStructs_jvmci.cpp ! src/jdk.aot/share/classes/jdk.tools.jaotc.binformat/src/jdk/tools/jaotc/binformat/BinaryContainer.java Changeset: b37e0785ce0b Author: mikael Date: 2018-04-19 17:13 -0700 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/b37e0785ce0b 8202052: Disable warnings when building libawt with VS2017 Reviewed-by: erikj, prr ! make/lib/Awt2dLibraries.gmk Changeset: dd5db907ab7e Author: kvn Date: 2018-04-19 18:11 -0700 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/dd5db907ab7e 8178825: unused variable threadObj in jvmci_counters_include Reviewed-by: ccheung ! src/hotspot/share/runtime/thread.cpp Changeset: 799e6e42b95f Author: mli Date: 2018-04-20 15:16 +0800 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/799e6e42b95f 8161991: java/nio/channels/AsynchronousSocketChannel/Basic.java failed due to RuntimeException: WritePendingException expected 8171404: java/nio/channels/AsynchronousSocketChannel/Basic.java failed with "AsynchronousCloseException expected" 8201520: AsynchronousSocketChannel/Basic.java timeout intermitently Reviewed-by: alanb ! test/jdk/java/nio/channels/AsynchronousSocketChannel/Basic.java Changeset: b39ba7ae45cc Author: sgehwolf Date: 2018-04-19 17:43 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/b39ba7ae45cc 8201788: Number of make jobs wrong for bootcycle-images target Reviewed-by: erikj, ihse ! make/Init.gmk Changeset: 8c1a4628b2f0 Author: clanger Date: 2018-04-17 15:54 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/8c1a4628b2f0 8201649: Remove dubious call_jio_print in ostream.cpp Reviewed-by: stuefe, dholmes ! src/hotspot/share/prims/jvm.cpp ! src/hotspot/share/utilities/ostream.cpp Changeset: e0af66d6e968 Author: mbaesken Date: 2018-04-10 08:38 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/e0af66d6e968 8201226: missing JNIEXPORT / JNICALL at some places in function declarations/implementations Reviewed-by: ihse, mdoerr Contributed-by: matthias.baesken at sap.com, alexey.ivanov at oracle.com ! src/hotspot/share/classfile/classLoader.cpp ! src/java.base/share/native/launcher/main.c ! src/java.base/share/native/libjimage/jimage.cpp ! src/java.base/share/native/libjimage/jimage.hpp ! src/java.base/share/native/libzip/CRC32.c ! src/java.base/share/native/libzip/zip_util.c ! src/java.base/share/native/libzip/zip_util.h ! src/java.desktop/share/native/common/awt/medialib/mlib_ImageCreate.c ! src/java.desktop/share/native/libmlib_image/mlib_ImageAffine.c ! src/java.desktop/share/native/libmlib_image/mlib_ImageConvKernelConvert.c ! src/java.desktop/share/native/libmlib_image/mlib_ImageConvMxN.c ! src/java.desktop/share/native/libmlib_image/mlib_c_ImageLookUp.c ! src/java.desktop/share/native/libsplashscreen/splashscreen_impl.h ! src/java.desktop/windows/native/libsplashscreen/splashscreen_sys.c ! src/jdk.pack/share/native/unpack200/main.cpp Changeset: fa6f8bce6490 Author: lucy Date: 2018-04-20 14:25 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/fa6f8bce6490 8202079: [s390]: Build failure w/o precompiled headers Reviewed-by: stuefe, shade ! src/hotspot/cpu/s390/gc/shared/barrierSetAssembler_s390.cpp Changeset: c508fda31759 Author: aph Date: 2018-04-16 16:21 +0100 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/c508fda31759 8201597: AArch64: Update relocs for CompiledDirectStaticCall Reviewed-by: adinn ! src/hotspot/cpu/aarch64/nativeInst_aarch64.cpp Changeset: a24f067a02dc Author: ihse Date: 2018-04-20 21:54 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/a24f067a02dc 8201536: configure fails compiler check due to bad -m32 flag Reviewed-by: erikj ! make/autoconf/flags.m4 Changeset: f22c0b4caad7 Author: kvn Date: 2018-04-20 14:30 -0700 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/f22c0b4caad7 8201850: [AOT] vm crash when run test compiler/aot/fingerprint/SelfChangedCDS.java Summary: set AOT specific compressed oop shift value before CDS archive load Reviewed-by: iklam, jiangli ! src/hotspot/share/aot/aotLoader.cpp ! src/hotspot/share/aot/aotLoader.hpp ! src/hotspot/share/memory/universe.cpp ! test/hotspot/jtreg/compiler/aot/fingerprint/CDSDumper.java ! test/hotspot/jtreg/compiler/aot/fingerprint/SelfChangedCDS.java Changeset: fcd5df7aa235 Author: mdoerr Date: 2018-04-18 11:19 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/fcd5df7aa235 8198756: Lazy allocation of compiler threads Reviewed-by: kvn ! src/hotspot/share/compiler/compileBroker.cpp ! src/hotspot/share/compiler/compileBroker.hpp ! src/hotspot/share/runtime/globals.hpp ! src/hotspot/share/runtime/thread.cpp ! src/hotspot/share/runtime/thread.hpp ! test/hotspot/jtreg/runtime/whitebox/WBStackSize.java Changeset: 2aa32bb6f3dc Author: shade Date: 2018-04-23 12:16 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/2aa32bb6f3dc 8202134: Non-PCH build for arm32 fails Reviewed-by: stefank ! src/hotspot/cpu/arm/methodHandles_arm.cpp ! src/hotspot/cpu/arm/relocInfo_arm.cpp Changeset: e286fa159ff1 Author: redestad Date: 2018-04-23 13:32 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/e286fa159ff1 6805750: Improve handling of Attributes.Name Reviewed-by: sherman ! src/java.base/share/classes/java/util/jar/Attributes.java Changeset: 9082914ccaf2 Author: stefank Date: 2018-04-23 11:25 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/9082914ccaf2 8202081: Introduce CollectedHeap::is_oop() Reviewed-by: eosterlund, rkennke ! src/hotspot/share/gc/shared/collectedHeap.cpp ! src/hotspot/share/gc/shared/collectedHeap.hpp ! src/hotspot/share/oops/oop.cpp Changeset: 4d3218e5f170 Author: stuefe Date: 2018-04-23 16:25 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/4d3218e5f170 8202073: MetaspaceAllocationTest gtest shall lock during space creation Reviewed-by: coleenp ! src/hotspot/share/memory/metaspace.cpp ! test/hotspot/gtest/memory/test_metaspace_allocation.cpp Changeset: 08829995db7c Author: iklam Date: 2018-04-23 07:51 -0700 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/08829995db7c 8188105: Make -Xshare:auto the default for server VM Reviewed-by: dholmes, lfoltan, acorn, mseledtsov, jiangli ! src/hotspot/share/runtime/arguments.cpp ! test/hotspot/jtreg/runtime/CDSCompressedKPtrs/XShareAuto.java ! test/hotspot/jtreg/runtime/CompressedOops/CompressedClassPointers.java Changeset: 0724da162227 Author: igerasim Date: 2018-04-23 08:36 -0700 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/0724da162227 8202091: Rename DualStackPlainSocketImpl to PlainSocketImpl [win] Reviewed-by: clanger, chegar - src/java.base/windows/classes/java/net/DualStackPlainSocketImpl.java ! src/java.base/windows/classes/java/net/PlainSocketImpl.java - src/java.base/windows/native/libnet/DualStackPlainSocketImpl.c + src/java.base/windows/native/libnet/PlainSocketImpl.c Changeset: 3739e9a5b6b5 Author: hannesw Date: 2018-04-23 17:45 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/3739e9a5b6b5 8201466: Nashorn: defineProperty setters/getters on prototype object ignored with numeric property names Reviewed-by: sundar, jlaskey ! src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/runtime/ScriptObject.java + test/nashorn/script/basic/JDK-8201466.js Changeset: 5f63af8f9d7f Author: rfield Date: 2018-04-23 09:01 -0700 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/5f63af8f9d7f 8199193: jshell tool: Add support for preview features Reviewed-by: sundar ! src/jdk.jshell/share/classes/jdk/internal/jshell/tool/JShellTool.java ! src/jdk.jshell/share/classes/jdk/internal/jshell/tool/resources/l10n.properties ! src/jdk.jshell/share/classes/jdk/jshell/TaskFactory.java + test/langtools/jdk/jshell/ToolEnablePreviewTest.java Changeset: 31e07291ae29 Author: gziemski Date: 2018-04-23 10:59 -0500 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/31e07291ae29 8081519: Split globals.hpp to factor out the Flag class Summary: Factored out Flag out go globals, renamed to JVMFlag Reviewed-by: coleenp, dholmes, kvn ! src/hotspot/cpu/aarch64/methodHandles_aarch64.cpp ! src/hotspot/cpu/sparc/macroAssembler_sparc.cpp ! src/hotspot/cpu/sparc/methodHandles_sparc.cpp ! src/hotspot/cpu/x86/macroAssembler_x86.cpp ! src/hotspot/cpu/x86/methodHandles_x86.cpp ! src/hotspot/share/code/dependencies.cpp ! src/hotspot/share/code/nmethod.cpp ! src/hotspot/share/code/relocInfo.cpp - src/hotspot/share/gc/cms/commandLineFlagConstraintsCMS.cpp - src/hotspot/share/gc/cms/commandLineFlagConstraintsCMS.hpp ! src/hotspot/share/gc/cms/concurrentMarkSweepGeneration.cpp + src/hotspot/share/gc/cms/jvmFlagConstraintsCMS.cpp + src/hotspot/share/gc/cms/jvmFlagConstraintsCMS.hpp - src/hotspot/share/gc/g1/commandLineFlagConstraintsG1.cpp - src/hotspot/share/gc/g1/commandLineFlagConstraintsG1.hpp ! src/hotspot/share/gc/g1/g1CollectedHeap.cpp + src/hotspot/share/gc/g1/jvmFlagConstraintsG1.cpp + src/hotspot/share/gc/g1/jvmFlagConstraintsG1.hpp - src/hotspot/share/gc/parallel/commandLineFlagConstraintsParallel.cpp - src/hotspot/share/gc/parallel/commandLineFlagConstraintsParallel.hpp + src/hotspot/share/gc/parallel/jvmFlagConstraintsParallel.cpp + src/hotspot/share/gc/parallel/jvmFlagConstraintsParallel.hpp ! src/hotspot/share/gc/parallel/psMarkSweep.cpp - src/hotspot/share/gc/shared/commandLineFlagConstraintsGC.cpp - src/hotspot/share/gc/shared/commandLineFlagConstraintsGC.hpp ! src/hotspot/share/gc/shared/genCollectedHeap.cpp + src/hotspot/share/gc/shared/jvmFlagConstraintsGC.cpp + src/hotspot/share/gc/shared/jvmFlagConstraintsGC.hpp ! src/hotspot/share/jvmci/jvmciCompilerToVM.cpp ! src/hotspot/share/jvmci/jvmciCompilerToVMInit.cpp ! src/hotspot/share/jvmci/vmStructs_jvmci.cpp ! src/hotspot/share/memory/universe.cpp ! src/hotspot/share/oops/klassVtable.cpp ! src/hotspot/share/precompiled/precompiled.hpp ! src/hotspot/share/prims/whitebox.cpp ! src/hotspot/share/runtime/arguments.cpp ! src/hotspot/share/runtime/arguments.hpp - src/hotspot/share/runtime/commandLineFlagConstraintList.cpp - src/hotspot/share/runtime/commandLineFlagConstraintList.hpp - src/hotspot/share/runtime/commandLineFlagConstraintsCompiler.cpp - src/hotspot/share/runtime/commandLineFlagConstraintsCompiler.hpp - src/hotspot/share/runtime/commandLineFlagConstraintsRuntime.cpp - src/hotspot/share/runtime/commandLineFlagConstraintsRuntime.hpp - src/hotspot/share/runtime/commandLineFlagRangeList.cpp - src/hotspot/share/runtime/commandLineFlagRangeList.hpp - src/hotspot/share/runtime/commandLineFlagWriteableList.cpp - src/hotspot/share/runtime/commandLineFlagWriteableList.hpp + src/hotspot/share/runtime/flags/flagSetting.hpp + src/hotspot/share/runtime/flags/jvmFlag.cpp + src/hotspot/share/runtime/flags/jvmFlag.hpp + src/hotspot/share/runtime/flags/jvmFlagConstraintList.cpp + src/hotspot/share/runtime/flags/jvmFlagConstraintList.hpp + src/hotspot/share/runtime/flags/jvmFlagConstraintsCompiler.cpp + src/hotspot/share/runtime/flags/jvmFlagConstraintsCompiler.hpp + src/hotspot/share/runtime/flags/jvmFlagConstraintsRuntime.cpp + src/hotspot/share/runtime/flags/jvmFlagConstraintsRuntime.hpp + src/hotspot/share/runtime/flags/jvmFlagRangeList.cpp + src/hotspot/share/runtime/flags/jvmFlagRangeList.hpp + src/hotspot/share/runtime/flags/jvmFlagWriteableList.cpp + src/hotspot/share/runtime/flags/jvmFlagWriteableList.hpp ! src/hotspot/share/runtime/globals.cpp ! src/hotspot/share/runtime/globals.hpp ! src/hotspot/share/runtime/globals_ext.hpp ! src/hotspot/share/runtime/globals_extension.hpp ! src/hotspot/share/runtime/handshake.hpp ! src/hotspot/share/runtime/init.cpp ! src/hotspot/share/runtime/java.cpp ! src/hotspot/share/runtime/mutexLocker.hpp ! src/hotspot/share/runtime/thread.cpp ! src/hotspot/share/runtime/vmStructs.cpp ! src/hotspot/share/services/attachListener.cpp ! src/hotspot/share/services/diagnosticCommand.cpp ! src/hotspot/share/services/dtraceAttacher.cpp ! src/hotspot/share/services/management.cpp ! src/hotspot/share/services/writeableFlags.cpp ! src/hotspot/share/services/writeableFlags.hpp ! src/hotspot/share/utilities/debug.cpp ! src/hotspot/share/utilities/globalDefinitions.hpp ! src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/runtime/VM.java ! test/hotspot/gtest/gc/shared/test_collectorPolicy.cpp ! test/hotspot/gtest/runtime/test_globals.cpp Changeset: 56923ee4f07e Author: hannesw Date: 2018-04-23 18:14 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/56923ee4f07e 8198816: AbstractScriptEngine.getScriptContext creation of SimpleScriptContext is inefficient Reviewed-by: sundar, jlaskey ! src/java.scripting/share/classes/javax/script/AbstractScriptEngine.java ! src/java.scripting/share/classes/javax/script/CompiledScript.java ! src/java.scripting/share/classes/javax/script/SimpleScriptContext.java Changeset: 62d18722a58d Author: ksrini Date: 2018-04-23 11:37 -0700 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/62d18722a58d 8201259: Fix warning with VS2017 in jdk.pack Reviewed-by: erikj ! make/launcher/Launcher-jdk.pack.gmk ! make/lib/Lib-jdk.pack.gmk ! src/jdk.pack/share/native/common-unpack/utils.h Changeset: ca5216a2a2cc Author: gziemski Date: 2018-04-23 14:51 -0500 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/ca5216a2a2cc 8202151: [BACKOUT] Split globals.hpp to factor out the Flag class Summary: Backed out JDK-8081519 Reviewed-by: kvn ! src/hotspot/cpu/aarch64/methodHandles_aarch64.cpp ! src/hotspot/cpu/sparc/macroAssembler_sparc.cpp ! src/hotspot/cpu/sparc/methodHandles_sparc.cpp ! src/hotspot/cpu/x86/macroAssembler_x86.cpp ! src/hotspot/cpu/x86/methodHandles_x86.cpp ! src/hotspot/share/code/dependencies.cpp ! src/hotspot/share/code/nmethod.cpp ! src/hotspot/share/code/relocInfo.cpp + src/hotspot/share/gc/cms/commandLineFlagConstraintsCMS.cpp + src/hotspot/share/gc/cms/commandLineFlagConstraintsCMS.hpp ! src/hotspot/share/gc/cms/concurrentMarkSweepGeneration.cpp - src/hotspot/share/gc/cms/jvmFlagConstraintsCMS.cpp - src/hotspot/share/gc/cms/jvmFlagConstraintsCMS.hpp + src/hotspot/share/gc/g1/commandLineFlagConstraintsG1.cpp + src/hotspot/share/gc/g1/commandLineFlagConstraintsG1.hpp ! src/hotspot/share/gc/g1/g1CollectedHeap.cpp - src/hotspot/share/gc/g1/jvmFlagConstraintsG1.cpp - src/hotspot/share/gc/g1/jvmFlagConstraintsG1.hpp + src/hotspot/share/gc/parallel/commandLineFlagConstraintsParallel.cpp + src/hotspot/share/gc/parallel/commandLineFlagConstraintsParallel.hpp - src/hotspot/share/gc/parallel/jvmFlagConstraintsParallel.cpp - src/hotspot/share/gc/parallel/jvmFlagConstraintsParallel.hpp ! src/hotspot/share/gc/parallel/psMarkSweep.cpp + src/hotspot/share/gc/shared/commandLineFlagConstraintsGC.cpp + src/hotspot/share/gc/shared/commandLineFlagConstraintsGC.hpp ! src/hotspot/share/gc/shared/genCollectedHeap.cpp - src/hotspot/share/gc/shared/jvmFlagConstraintsGC.cpp - src/hotspot/share/gc/shared/jvmFlagConstraintsGC.hpp ! src/hotspot/share/jvmci/jvmciCompilerToVM.cpp ! src/hotspot/share/jvmci/jvmciCompilerToVMInit.cpp ! src/hotspot/share/jvmci/vmStructs_jvmci.cpp ! src/hotspot/share/memory/universe.cpp ! src/hotspot/share/oops/klassVtable.cpp ! src/hotspot/share/precompiled/precompiled.hpp ! src/hotspot/share/prims/whitebox.cpp ! src/hotspot/share/runtime/arguments.cpp ! src/hotspot/share/runtime/arguments.hpp + src/hotspot/share/runtime/commandLineFlagConstraintList.cpp + src/hotspot/share/runtime/commandLineFlagConstraintList.hpp + src/hotspot/share/runtime/commandLineFlagConstraintsCompiler.cpp + src/hotspot/share/runtime/commandLineFlagConstraintsCompiler.hpp + src/hotspot/share/runtime/commandLineFlagConstraintsRuntime.cpp + src/hotspot/share/runtime/commandLineFlagConstraintsRuntime.hpp + src/hotspot/share/runtime/commandLineFlagRangeList.cpp + src/hotspot/share/runtime/commandLineFlagRangeList.hpp + src/hotspot/share/runtime/commandLineFlagWriteableList.cpp + src/hotspot/share/runtime/commandLineFlagWriteableList.hpp - src/hotspot/share/runtime/flags/flagSetting.hpp - src/hotspot/share/runtime/flags/jvmFlag.cpp - src/hotspot/share/runtime/flags/jvmFlag.hpp - src/hotspot/share/runtime/flags/jvmFlagConstraintList.cpp - src/hotspot/share/runtime/flags/jvmFlagConstraintList.hpp - src/hotspot/share/runtime/flags/jvmFlagConstraintsCompiler.cpp - src/hotspot/share/runtime/flags/jvmFlagConstraintsCompiler.hpp - src/hotspot/share/runtime/flags/jvmFlagConstraintsRuntime.cpp - src/hotspot/share/runtime/flags/jvmFlagConstraintsRuntime.hpp - src/hotspot/share/runtime/flags/jvmFlagRangeList.cpp - src/hotspot/share/runtime/flags/jvmFlagRangeList.hpp - src/hotspot/share/runtime/flags/jvmFlagWriteableList.cpp - src/hotspot/share/runtime/flags/jvmFlagWriteableList.hpp ! src/hotspot/share/runtime/globals.cpp ! src/hotspot/share/runtime/globals.hpp ! src/hotspot/share/runtime/globals_ext.hpp ! src/hotspot/share/runtime/globals_extension.hpp ! src/hotspot/share/runtime/handshake.hpp ! src/hotspot/share/runtime/init.cpp ! src/hotspot/share/runtime/java.cpp ! src/hotspot/share/runtime/mutexLocker.hpp ! src/hotspot/share/runtime/thread.cpp ! src/hotspot/share/runtime/vmStructs.cpp ! src/hotspot/share/services/attachListener.cpp ! src/hotspot/share/services/diagnosticCommand.cpp ! src/hotspot/share/services/dtraceAttacher.cpp ! src/hotspot/share/services/management.cpp ! src/hotspot/share/services/writeableFlags.cpp ! src/hotspot/share/services/writeableFlags.hpp ! src/hotspot/share/utilities/debug.cpp ! src/hotspot/share/utilities/globalDefinitions.hpp ! src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/runtime/VM.java ! test/hotspot/gtest/gc/shared/test_collectorPolicy.cpp ! test/hotspot/gtest/runtime/test_globals.cpp Changeset: b0c100aaede6 Author: kbarrett Date: 2018-04-23 16:00 -0400 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/b0c100aaede6 8201826: G1: Don't invoke WeakProcessor if mark stack has overflowed Summary: Move WeakProcessor invocation after overflow check Reviewed-by: stefank, tschatzl ! src/hotspot/share/gc/g1/g1ConcurrentMark.cpp Changeset: 8ee949103fb8 Author: joehw Date: 2017-10-31 11:35 -0700 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/8ee949103fb8 8190227: Forward port 8188880 to JDK10CPU Reviewed-by: dfuchs, lancea, rriggs ! src/java.xml/share/classes/com/sun/org/apache/xerces/internal/impl/xs/traversers/SchemaContentHandler.java ! src/java.xml/share/classes/com/sun/org/apache/xerces/internal/impl/xs/traversers/XSDHandler.java Changeset: 4c448e31754d Author: igerasim Date: 2017-12-07 11:21 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/4c448e31754d 8187496: Possible memory leak in java.apple.security.KeychainStore.addItemToKeychain Reviewed-by: weijun, mullan, ahgross ! src/java.base/macosx/native/libosxsecurity/KeystoreImpl.m Changeset: 1dcd0716a178 Author: igerasim Date: 2017-12-07 12:25 -0800 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/1dcd0716a178 8192789: Avoid using AtomicReference in sun.security.provider.PolicyFile Reviewed-by: mullan, ahgross ! src/java.base/share/classes/sun/security/provider/PolicyFile.java Changeset: 14b48f47528b Author: henryjen Date: 2018-04-23 14:23 -0700 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/14b48f47528b Merge - src/hotspot/share/gc/cms/jvmFlagConstraintsCMS.cpp - src/hotspot/share/gc/cms/jvmFlagConstraintsCMS.hpp - src/hotspot/share/gc/g1/jvmFlagConstraintsG1.cpp - src/hotspot/share/gc/g1/jvmFlagConstraintsG1.hpp - src/hotspot/share/gc/parallel/jvmFlagConstraintsParallel.cpp - src/hotspot/share/gc/parallel/jvmFlagConstraintsParallel.hpp - src/hotspot/share/gc/shared/jvmFlagConstraintsGC.cpp - src/hotspot/share/gc/shared/jvmFlagConstraintsGC.hpp - src/hotspot/share/runtime/flags/flagSetting.hpp - src/hotspot/share/runtime/flags/jvmFlag.cpp - src/hotspot/share/runtime/flags/jvmFlag.hpp - src/hotspot/share/runtime/flags/jvmFlagConstraintList.cpp - src/hotspot/share/runtime/flags/jvmFlagConstraintList.hpp - src/hotspot/share/runtime/flags/jvmFlagConstraintsCompiler.cpp - src/hotspot/share/runtime/flags/jvmFlagConstraintsCompiler.hpp - src/hotspot/share/runtime/flags/jvmFlagConstraintsRuntime.cpp - src/hotspot/share/runtime/flags/jvmFlagConstraintsRuntime.hpp - src/hotspot/share/runtime/flags/jvmFlagRangeList.cpp - src/hotspot/share/runtime/flags/jvmFlagRangeList.hpp - src/hotspot/share/runtime/flags/jvmFlagWriteableList.cpp - src/hotspot/share/runtime/flags/jvmFlagWriteableList.hpp Changeset: aa629b168667 Author: cjplummer Date: 2018-04-23 15:19 -0700 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/aa629b168667 8202155: quarantine test com/sun/jdi/JdbExprTest.sh on all platforms Summary: quarantined test Reviewed-by: dholmes ! test/jdk/ProblemList.txt Changeset: 9689de1ea3a7 Author: lucy Date: 2018-04-23 16:10 -0700 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/9689de1ea3a7 8202070: Cleanup code after JDK-8200450, JDK-8200366 Reviewed-by: kvn ! src/hotspot/share/code/codeHeapState.cpp Changeset: d5cecd70fc0f Author: mikael Date: 2018-04-23 18:04 -0700 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/d5cecd70fc0f 8202060: Add javax/net/ssl/DTLS/CipherSuite.java to ProblemList Reviewed-by: xuelei ! test/jdk/ProblemList.txt Changeset: c71f40e37583 Author: stuefe Date: 2018-04-20 09:44 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/c71f40e37583 8202074: Metaspace: If humongous chunk is added to SpaceManager, previous current chunk may not get retired correctly. Reviewed-by: coleenp, asiebenborn, goetz ! src/hotspot/share/memory/metaspace.cpp Changeset: 1da3a463a499 Author: roland Date: 2018-04-24 09:35 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/1da3a463a499 8200477: Integer dot product no longer autovectorised Reviewed-by: kvn ! src/hotspot/share/opto/superword.cpp Changeset: 3325ee1c0fc4 Author: aph Date: 2018-04-23 19:32 +0100 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/3325ee1c0fc4 8200556: AArch64: assertion failure in slowdebug builds Reviewed-by: adinn ! src/hotspot/cpu/aarch64/nativeInst_aarch64.cpp Changeset: 0798eab12791 Author: vromero Date: 2018-04-24 08:13 -0700 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/0798eab12791 8201281: Truncated error message with Incompatible : null Reviewed-by: mcimadamore ! src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Infer.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Resolve.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/resources/compiler.properties ! test/langtools/tools/javac/Diagnostics/6722234/T6722234d_1.out ! test/langtools/tools/javac/Diagnostics/6722234/T6722234d_2.out ! test/langtools/tools/javac/Diagnostics/6799605/T6799605.out ! test/langtools/tools/javac/T8171325/NPEClearingLocalClassNameIndexesTest.out + test/langtools/tools/javac/T8201281/NullInErrorMessageTest.java + test/langtools/tools/javac/T8201281/NullInErrorMessageTest.out ! test/langtools/tools/javac/diags/examples.not-yet.txt ! test/langtools/tools/javac/diags/examples/CantApplyDiamond1.java ! test/langtools/tools/javac/diags/examples/IncompatibleEqUpperBounds.java ! test/langtools/tools/javac/diags/examples/InferredDoNotConformToEq.java ! test/langtools/tools/javac/diags/examples/InferredDoNotConformToUpper.java ! test/langtools/tools/javac/diags/examples/WhereTypeVar2.java ! test/langtools/tools/javac/generics/UnsoundInference.out ! test/langtools/tools/javac/generics/diamond/neg/Neg06.out ! test/langtools/tools/javac/generics/diamond/neg/Neg07.out ! test/langtools/tools/javac/generics/inference/4941882/T4941882.out ! test/langtools/tools/javac/generics/inference/6315770/T6315770.out ! test/langtools/tools/javac/generics/inference/6611449/T6611449.out ! test/langtools/tools/javac/generics/inference/6638712/T6638712b.out ! test/langtools/tools/javac/generics/inference/6638712/T6638712d.out ! test/langtools/tools/javac/generics/inference/6638712/T6638712e.out ! test/langtools/tools/javac/generics/inference/6650759/T6650759m.out ! test/langtools/tools/javac/generics/inference/7177306/T7177306b.out ! test/langtools/tools/javac/generics/inference/7177306/T7177306e.out ! test/langtools/tools/javac/generics/inference/8019824/T8019824.out ! test/langtools/tools/javac/generics/inference/8062977/T8062977.out ! test/langtools/tools/javac/generics/inference/EagerReturnTypeResolution/PrimitiveTypeBoxingTest.out ! test/langtools/tools/javac/generics/odersky/BadTest3.out ! test/langtools/tools/javac/generics/wildcards/6762569/T6762569b.out ! test/langtools/tools/javac/lambda/8016177/T8016177g.out ! test/langtools/tools/javac/lambda/MethodReference41.out ! test/langtools/tools/javac/lambda/MethodReference42.out ! test/langtools/tools/javac/lambda/MethodReference43.out ! test/langtools/tools/javac/lambda/MethodReference44.out ! test/langtools/tools/javac/lambda/MethodReference46.out ! test/langtools/tools/javac/lambda/MethodReference58.out ! test/langtools/tools/javac/lambda/MethodReference68.out ! test/langtools/tools/javac/lambda/TargetType02.out ! test/langtools/tools/javac/lambda/TargetType14.out ! test/langtools/tools/javac/lambda/TargetType28.out Changeset: 26ebfe8ce852 Author: dlong Date: 2018-04-24 09:04 -0700 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/26ebfe8ce852 8199755: Update Graal Reviewed-by: kvn ! make/CompileJavaModules.gmk ! make/CompileToolsHotspot.gmk ! src/jdk.aot/share/classes/jdk.tools.jaotc/src/jdk/tools/jaotc/AOTCompilationTask.java ! src/jdk.aot/share/classes/jdk.tools.jaotc/src/jdk/tools/jaotc/GraalFilters.java ! src/jdk.aot/share/classes/jdk.tools.jaotc/src/jdk/tools/jaotc/Main.java ! src/jdk.internal.vm.compiler.management/share/classes/org.graalvm.compiler.hotspot.management/src/org/graalvm/compiler/hotspot/management/HotSpotGraalManagement.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.management/share/classes/org.graalvm.compiler.hotspot.management/src/org/graalvm/compiler/hotspot/management/JMXServiceProvider.java + src/jdk.internal.vm.compiler.management/share/classes/org.graalvm.compiler.hotspot.management/src/org/graalvm/compiler/hotspot/management/package-info.java + src/jdk.internal.vm.compiler/share/classes/jdk.internal.vm.compiler.collections.test/src/jdk/internal/vm/compiler/collections/test/EconomicMapImplTest.java + src/jdk.internal.vm.compiler/share/classes/jdk.internal.vm.compiler.collections.test/src/jdk/internal/vm/compiler/collections/test/EconomicMapLargeTest.java + src/jdk.internal.vm.compiler/share/classes/jdk.internal.vm.compiler.collections.test/src/jdk/internal/vm/compiler/collections/test/EconomicMapTest.java + src/jdk.internal.vm.compiler/share/classes/jdk.internal.vm.compiler.collections.test/src/jdk/internal/vm/compiler/collections/test/EconomicSetTest.java + src/jdk.internal.vm.compiler/share/classes/jdk.internal.vm.compiler.collections.test/src/jdk/internal/vm/compiler/collections/test/EquivalenceTest.java + src/jdk.internal.vm.compiler/share/classes/jdk.internal.vm.compiler.collections.test/src/jdk/internal/vm/compiler/collections/test/PairTest.java + src/jdk.internal.vm.compiler/share/classes/jdk.internal.vm.compiler.collections/src/jdk/internal/vm/compiler/collections/EconomicMap.java + src/jdk.internal.vm.compiler/share/classes/jdk.internal.vm.compiler.collections/src/jdk/internal/vm/compiler/collections/EconomicMapImpl.java + src/jdk.internal.vm.compiler/share/classes/jdk.internal.vm.compiler.collections/src/jdk/internal/vm/compiler/collections/EconomicSet.java + src/jdk.internal.vm.compiler/share/classes/jdk.internal.vm.compiler.collections/src/jdk/internal/vm/compiler/collections/Equivalence.java + src/jdk.internal.vm.compiler/share/classes/jdk.internal.vm.compiler.collections/src/jdk/internal/vm/compiler/collections/MapCursor.java + src/jdk.internal.vm.compiler/share/classes/jdk.internal.vm.compiler.collections/src/jdk/internal/vm/compiler/collections/Pair.java + src/jdk.internal.vm.compiler/share/classes/jdk.internal.vm.compiler.collections/src/jdk/internal/vm/compiler/collections/UnmodifiableEconomicMap.java + src/jdk.internal.vm.compiler/share/classes/jdk.internal.vm.compiler.collections/src/jdk/internal/vm/compiler/collections/UnmodifiableEconomicSet.java + src/jdk.internal.vm.compiler/share/classes/jdk.internal.vm.compiler.collections/src/jdk/internal/vm/compiler/collections/UnmodifiableMapCursor.java + src/jdk.internal.vm.compiler/share/classes/jdk.internal.vm.compiler.collections/src/jdk/internal/vm/compiler/collections/package-info.java + src/jdk.internal.vm.compiler/share/classes/jdk.internal.vm.compiler.word/src/jdk/internal/vm/compiler/word/ComparableWord.java + src/jdk.internal.vm.compiler/share/classes/jdk.internal.vm.compiler.word/src/jdk/internal/vm/compiler/word/LocationIdentity.java + src/jdk.internal.vm.compiler/share/classes/jdk.internal.vm.compiler.word/src/jdk/internal/vm/compiler/word/Pointer.java + src/jdk.internal.vm.compiler/share/classes/jdk.internal.vm.compiler.word/src/jdk/internal/vm/compiler/word/PointerBase.java + src/jdk.internal.vm.compiler/share/classes/jdk.internal.vm.compiler.word/src/jdk/internal/vm/compiler/word/SignedWord.java + src/jdk.internal.vm.compiler/share/classes/jdk.internal.vm.compiler.word/src/jdk/internal/vm/compiler/word/UnsignedWord.java + src/jdk.internal.vm.compiler/share/classes/jdk.internal.vm.compiler.word/src/jdk/internal/vm/compiler/word/WordBase.java + src/jdk.internal.vm.compiler/share/classes/jdk.internal.vm.compiler.word/src/jdk/internal/vm/compiler/word/WordFactory.java + src/jdk.internal.vm.compiler/share/classes/jdk.internal.vm.compiler.word/src/jdk/internal/vm/compiler/word/impl/WordBoxFactory.java + src/jdk.internal.vm.compiler/share/classes/jdk.internal.vm.compiler.word/src/jdk/internal/vm/compiler/word/impl/WordFactoryOpcode.java + src/jdk.internal.vm.compiler/share/classes/jdk.internal.vm.compiler.word/src/jdk/internal/vm/compiler/word/impl/WordFactoryOperation.java + src/jdk.internal.vm.compiler/share/classes/jdk.internal.vm.compiler.word/src/jdk/internal/vm/compiler/word/package-info.java ! src/jdk.internal.vm.compiler/share/classes/module-info.java - src/jdk.internal.vm.compiler/share/classes/org.graalvm.collections.test/src/org/graalvm/collections/test/EconomicMapImplTest.java - src/jdk.internal.vm.compiler/share/classes/org.graalvm.collections.test/src/org/graalvm/collections/test/EconomicMapLargeTest.java - src/jdk.internal.vm.compiler/share/classes/org.graalvm.collections.test/src/org/graalvm/collections/test/EconomicMapTest.java - src/jdk.internal.vm.compiler/share/classes/org.graalvm.collections.test/src/org/graalvm/collections/test/EconomicSetTest.java - src/jdk.internal.vm.compiler/share/classes/org.graalvm.collections.test/src/org/graalvm/collections/test/EquivalenceTest.java - src/jdk.internal.vm.compiler/share/classes/org.graalvm.collections.test/src/org/graalvm/collections/test/PairTest.java - src/jdk.internal.vm.compiler/share/classes/org.graalvm.collections/src/org/graalvm/collections/EconomicMap.java - src/jdk.internal.vm.compiler/share/classes/org.graalvm.collections/src/org/graalvm/collections/EconomicMapImpl.java - src/jdk.internal.vm.compiler/share/classes/org.graalvm.collections/src/org/graalvm/collections/EconomicSet.java - src/jdk.internal.vm.compiler/share/classes/org.graalvm.collections/src/org/graalvm/collections/Equivalence.java - src/jdk.internal.vm.compiler/share/classes/org.graalvm.collections/src/org/graalvm/collections/MapCursor.java - src/jdk.internal.vm.compiler/share/classes/org.graalvm.collections/src/org/graalvm/collections/Pair.java - src/jdk.internal.vm.compiler/share/classes/org.graalvm.collections/src/org/graalvm/collections/UnmodifiableEconomicMap.java - src/jdk.internal.vm.compiler/share/classes/org.graalvm.collections/src/org/graalvm/collections/UnmodifiableEconomicSet.java - src/jdk.internal.vm.compiler/share/classes/org.graalvm.collections/src/org/graalvm/collections/UnmodifiableMapCursor.java - src/jdk.internal.vm.compiler/share/classes/org.graalvm.collections/src/org/graalvm/collections/package-info.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.asm.aarch64.test/src/org/graalvm/compiler/asm/aarch64/test/TestProtectedAssembler.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.asm.aarch64/src/org/graalvm/compiler/asm/aarch64/AArch64Assembler.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.code/src/org/graalvm/compiler/code/CompilationResult.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.code/src/org/graalvm/compiler/code/SourceStackTraceBailoutException.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.core.aarch64/src/org/graalvm/compiler/core/aarch64/AArch64LIRGenerator.java + src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.core.aarch64/src/org/graalvm/compiler/core/aarch64/AArch64ReadNode.java + src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.core.aarch64/src/org/graalvm/compiler/core/aarch64/AArch64ReadReplacementPhase.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.core.aarch64/src/org/graalvm/compiler/core/aarch64/AArch64SuitesCreator.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.core.amd64/src/org/graalvm/compiler/core/amd64/AMD64MoveFactoryBase.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.core.common/src/org/graalvm/compiler/core/common/GraalOptions.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.core.common/src/org/graalvm/compiler/core/common/PermanentBailoutException.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.core.common/src/org/graalvm/compiler/core/common/alloc/RegisterAllocationConfig.java + src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.core.common/src/org/graalvm/compiler/core/common/doc-files/TraceInliningHelp.txt ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.core.common/src/org/graalvm/compiler/core/common/spi/ForeignCallsProvider.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.core.common/src/org/graalvm/compiler/core/common/util/FrequencyEncoder.java - src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.core.common/src/org/graalvm/compiler/core/common/util/ModuleAPI.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.core.match.processor/src/org/graalvm/compiler/core/match/processor/MatchProcessor.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/DumpPathTest.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.core.test/src/org/graalvm/compiler/core/test/GraphResetDebugTest.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.core.test/src/org/graalvm/compiler/core/test/InfopointReasonTest.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.core.test/src/org/graalvm/compiler/core/test/MarkUnsafeAccessTest.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.core.test/src/org/graalvm/compiler/core/test/ReferenceGetLoopTest.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.core.test/src/org/graalvm/compiler/core/test/ReflectionOptionDescriptors.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.core.test/src/org/graalvm/compiler/core/test/StampMemoryAccessTest.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.test/src/org/graalvm/compiler/core/test/inlining/InliningTest.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.core.test/src/org/graalvm/compiler/core/test/inlining/NestedLoopEffectsPhaseComplexityTest.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.core/src/org/graalvm/compiler/core/CompilationPrinter.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/GraalCompiler.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.core/src/org/graalvm/compiler/core/gen/DebugInfoBuilder.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.core/src/org/graalvm/compiler/core/gen/NodeLIRBuilder.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.core/src/org/graalvm/compiler/core/match/MatchContext.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.core/src/org/graalvm/compiler/core/match/MatchRuleRegistry.java + src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.core/src/org/graalvm/compiler/core/phases/CommunityCompilerConfiguration.java - src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.core/src/org/graalvm/compiler/core/phases/CoreCompilerConfiguration.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.core/src/org/graalvm/compiler/core/phases/EconomyCompilerConfiguration.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.core/src/org/graalvm/compiler/core/phases/GraphChangeMonitoringPhase.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.core/src/org/graalvm/compiler/core/target/Backend.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.test/src/org/graalvm/compiler/debug/test/TimerKeyTest.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.debug/src/org/graalvm/compiler/debug/CounterKeyImpl.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.debug/src/org/graalvm/compiler/debug/DebugConfigImpl.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.debug/src/org/graalvm/compiler/debug/DebugContext.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.debug/src/org/graalvm/compiler/debug/DebugOptions.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/GlobalMetrics.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.debug/src/org/graalvm/compiler/debug/KeyRegistry.java - src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.debug/src/org/graalvm/compiler/debug/Management.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.debug/src/org/graalvm/compiler/debug/MemUseTrackerKey.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.debug/src/org/graalvm/compiler/debug/MemUseTrackerKeyImpl.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.debug/src/org/graalvm/compiler/debug/MetricKey.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.debug/src/org/graalvm/compiler/debug/TimeSource.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.debug/src/org/graalvm/compiler/debug/TimerKeyImpl.java - src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.graph/.checkstyle_checks.xml ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.graph/src/org/graalvm/compiler/graph/CachedGraph.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.graph/src/org/graalvm/compiler/graph/Graph.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.graph/src/org/graalvm/compiler/graph/Node.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.graph/src/org/graalvm/compiler/graph/NodeClass.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.graph/src/org/graalvm/compiler/graph/NodeMap.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.graph/src/org/graalvm/compiler/graph/NodeSourcePosition.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.graph/src/org/graalvm/compiler/graph/SourceLanguagePosition.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot.aarch64/src/org/graalvm/compiler/hotspot/aarch64/AArch64HotSpotBackend.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot.aarch64/src/org/graalvm/compiler/hotspot/aarch64/AArch64HotSpotBackendFactory.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot.aarch64/src/org/graalvm/compiler/hotspot/aarch64/AArch64HotSpotForeignCallsProvider.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot.aarch64/src/org/graalvm/compiler/hotspot/aarch64/AArch64HotSpotJumpToExceptionHandlerInCallerOp.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot.aarch64/src/org/graalvm/compiler/hotspot/aarch64/AArch64HotSpotRegisterAllocationConfig.java - src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot.aarch64/src/org/graalvm/compiler/hotspot/aarch64/AArch64HotSpotSuitesProvider.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot.amd64/src/org/graalvm/compiler/hotspot/amd64/AMD64HotSpotAddressLowering.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot.amd64/src/org/graalvm/compiler/hotspot/amd64/AMD64HotSpotBackend.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot.amd64/src/org/graalvm/compiler/hotspot/amd64/AMD64HotSpotBackendFactory.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot.amd64/src/org/graalvm/compiler/hotspot/amd64/AMD64HotSpotForeignCallsProvider.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot.amd64/src/org/graalvm/compiler/hotspot/amd64/AMD64HotSpotJumpToExceptionHandlerInCallerOp.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot.sparc/src/org/graalvm/compiler/hotspot/sparc/SPARCHotSpotBackend.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot.sparc/src/org/graalvm/compiler/hotspot/sparc/SPARCHotSpotBackendFactory.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot.sparc/src/org/graalvm/compiler/hotspot/sparc/SPARCHotSpotForeignCallsProvider.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot.test/src/org/graalvm/compiler/hotspot/test/CheckGraalIntrinsics.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/CompileTheWorld.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot.test/src/org/graalvm/compiler/hotspot/test/CompileTheWorldTest.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot.test/src/org/graalvm/compiler/hotspot/test/GraalOSRLockTest.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/GraalOSRTestBase.java - src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot.test/src/org/graalvm/compiler/hotspot/test/HotSpotGraalMBeanTest.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.test/src/org/graalvm/compiler/hotspot/test/HotSpotMethodSubstitutionTest.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot.test/src/org/graalvm/compiler/hotspot/test/HotSpotStampMemoryAccessTest.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot.test/src/org/graalvm/compiler/hotspot/test/TestIntrinsicCompiles.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot.test/src/org/graalvm/compiler/hotspot/test/WriteBarrierVerificationTest.java + src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot.test/src/org/graalvm/compiler/hotspot/test/aaa + src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot/src/org/graalvm/compiler/hotspot/CommunityCompilerConfigurationFactory.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot/src/org/graalvm/compiler/hotspot/CompilationStatistics.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot/src/org/graalvm/compiler/hotspot/CompilationTask.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot/src/org/graalvm/compiler/hotspot/CompilerConfigurationFactory.java - src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot/src/org/graalvm/compiler/hotspot/CoreCompilerConfigurationFactory.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot/src/org/graalvm/compiler/hotspot/EconomyCompilerConfigurationFactory.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot/src/org/graalvm/compiler/hotspot/GraalHotSpotVMConfig.java + src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot/src/org/graalvm/compiler/hotspot/GraalHotSpotVMConfigBase.java + src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot/src/org/graalvm/compiler/hotspot/GraalHotSpotVMConfigVersioned.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/HotSpotCompiledCodeBuilder.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot/src/org/graalvm/compiler/hotspot/HotSpotCounterOp.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot/src/org/graalvm/compiler/hotspot/HotSpotForeignCallLinkage.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot/src/org/graalvm/compiler/hotspot/HotSpotForeignCallLinkageImpl.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/HotSpotGraalCompilerFactory.java - src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot/src/org/graalvm/compiler/hotspot/HotSpotGraalMBean.java + src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot/src/org/graalvm/compiler/hotspot/HotSpotGraalManagementRegistration.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot/src/org/graalvm/compiler/hotspot/HotSpotGraalOptionValues.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot/src/org/graalvm/compiler/hotspot/HotSpotGraalRuntime.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/HotSpotLIRGenerationResult.java + src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot/src/org/graalvm/compiler/hotspot/IsGraalPredicate.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot/src/org/graalvm/compiler/hotspot/PrintStreamOptionKey.java + src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot/src/org/graalvm/compiler/hotspot/WeakClassLoaderSet.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot/src/org/graalvm/compiler/hotspot/meta/AddressLoweringHotSpotSuitesProvider.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot/src/org/graalvm/compiler/hotspot/meta/DefaultHotSpotLoweringProvider.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot/src/org/graalvm/compiler/hotspot/meta/HotSpotForeignCallsProviderImpl.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot/src/org/graalvm/compiler/hotspot/meta/HotSpotGraphBuilderPlugins.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/meta/HotSpotInvocationPlugins.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot/src/org/graalvm/compiler/hotspot/meta/HotSpotUnsafeSubstitutions.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot/src/org/graalvm/compiler/hotspot/meta/HotSpotWordOperationPlugin.java + src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot/src/org/graalvm/compiler/hotspot/meta/IntrinsificationPredicate.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot/src/org/graalvm/compiler/hotspot/nodes/BeginLockScopeNode.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot/src/org/graalvm/compiler/hotspot/nodes/EndLockScopeNode.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot/src/org/graalvm/compiler/hotspot/nodes/StubForeignCallNode.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot/src/org/graalvm/compiler/hotspot/nodes/aot/InitializeKlassNode.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot/src/org/graalvm/compiler/hotspot/nodes/aot/InitializeKlassStubCall.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot/src/org/graalvm/compiler/hotspot/nodes/aot/ResolveDynamicConstantNode.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot/src/org/graalvm/compiler/hotspot/nodes/aot/ResolveDynamicStubCall.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot/src/org/graalvm/compiler/hotspot/phases/OnStackReplacementPhase.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot/src/org/graalvm/compiler/hotspot/phases/WriteBarrierAdditionPhase.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot/src/org/graalvm/compiler/hotspot/phases/aot/AOTInliningPolicy.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot/src/org/graalvm/compiler/hotspot/phases/aot/EliminateRedundantInitializationPhase.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot/src/org/graalvm/compiler/hotspot/phases/aot/ReplaceConstantNodesPhase.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot/src/org/graalvm/compiler/hotspot/replacements/AESCryptSubstitutions.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot/src/org/graalvm/compiler/hotspot/replacements/CRC32CSubstitutions.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot/src/org/graalvm/compiler/hotspot/replacements/CRC32Substitutions.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot/src/org/graalvm/compiler/hotspot/replacements/CipherBlockChainingSubstitutions.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot/src/org/graalvm/compiler/hotspot/replacements/ClassGetHubNode.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot/src/org/graalvm/compiler/hotspot/replacements/HashCodeSnippets.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot/src/org/graalvm/compiler/hotspot/replacements/HotSpotReplacementsUtil.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot/src/org/graalvm/compiler/hotspot/replacements/IdentityHashCodeNode.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot/src/org/graalvm/compiler/hotspot/replacements/LoadExceptionObjectSnippets.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot/src/org/graalvm/compiler/hotspot/replacements/MonitorSnippets.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/replacements/ObjectSubstitutions.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot/src/org/graalvm/compiler/hotspot/replacements/SHA2Substitutions.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot/src/org/graalvm/compiler/hotspot/replacements/SHA5Substitutions.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot/src/org/graalvm/compiler/hotspot/replacements/SHASubstitutions.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot/src/org/graalvm/compiler/hotspot/replacements/StringToBytesSnippets.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot/src/org/graalvm/compiler/hotspot/replacements/ThreadSubstitutions.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot/src/org/graalvm/compiler/hotspot/replacements/WriteBarrierSnippets.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot/src/org/graalvm/compiler/hotspot/replacements/arraycopy/ArrayCopyCallNode.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot/src/org/graalvm/compiler/hotspot/replacements/arraycopy/ArrayCopyNode.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot/src/org/graalvm/compiler/hotspot/replacements/arraycopy/ArrayCopySnippets.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot/src/org/graalvm/compiler/hotspot/replacements/arraycopy/CheckcastArrayCopyCallNode.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot/src/org/graalvm/compiler/hotspot/replacements/arraycopy/GenericArrayCopyCallNode.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot/src/org/graalvm/compiler/hotspot/stubs/CreateExceptionStub.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot/src/org/graalvm/compiler/hotspot/stubs/ExceptionHandlerStub.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot/src/org/graalvm/compiler/hotspot/stubs/ForeignCallStub.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/Stub.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot/src/org/graalvm/compiler/hotspot/stubs/StubUtil.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot/src/org/graalvm/compiler/hotspot/stubs/UnwindExceptionToCallerStub.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot/src/org/graalvm/compiler/hotspot/word/KlassPointer.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot/src/org/graalvm/compiler/hotspot/word/MetaspacePointer.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot/src/org/graalvm/compiler/hotspot/word/MethodPointer.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.java/src/org/graalvm/compiler/java/BytecodeParserOptions.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.java/src/org/graalvm/compiler/java/ComputeLoopFrequenciesClosure.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.java/src/org/graalvm/compiler/java/FrameStateBuilder.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.java/src/org/graalvm/compiler/java/LocalLiveness.java + src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.lir.aarch64/src/org/graalvm/compiler/lir/aarch64/AArch64ArrayCompareToOp.java + src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.lir.aarch64/src/org/graalvm/compiler/lir/aarch64/AArch64AtomicMove.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.lir.aarch64/src/org/graalvm/compiler/lir/aarch64/AArch64Move.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.lir.amd64/src/org/graalvm/compiler/lir/amd64/AMD64ArrayCompareToOp.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.lir.amd64/src/org/graalvm/compiler/lir/amd64/AMD64SaveRegistersOp.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.lir.amd64/src/org/graalvm/compiler/lir/amd64/AMD64ZapRegistersOp.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.lir.sparc/src/org/graalvm/compiler/lir/sparc/SPARCControlFlow.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.lir.sparc/src/org/graalvm/compiler/lir/sparc/SPARCSaveRegistersOp.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.lir.test/src/org/graalvm/compiler/lir/test/alloc/trace/TraceGlobalMoveResolutionMappingTest.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.lir/src/org/graalvm/compiler/lir/LIRIntrospection.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.lir/src/org/graalvm/compiler/lir/RedundantMoveElimination.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.lir/src/org/graalvm/compiler/lir/StandardOp.java + src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.lir/src/org/graalvm/compiler/lir/alloc/RegisterAllocationPhase.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.lir/src/org/graalvm/compiler/lir/alloc/lsra/LinearScan.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.lir/src/org/graalvm/compiler/lir/alloc/lsra/LinearScanLifetimeAnalysisPhase.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.lir/src/org/graalvm/compiler/lir/alloc/lsra/LinearScanPhase.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.lir/src/org/graalvm/compiler/lir/alloc/lsra/LinearScanRegisterAllocationPhase.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.lir/src/org/graalvm/compiler/lir/alloc/lsra/MoveResolver.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.lir/src/org/graalvm/compiler/lir/alloc/trace/TraceRegisterAllocationPhase.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.lir/src/org/graalvm/compiler/lir/asm/CompilationResultBuilder.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.lir/src/org/graalvm/compiler/lir/gen/LIRGenerationResult.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.lir/src/org/graalvm/compiler/lir/gen/PhiResolver.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.lir/src/org/graalvm/compiler/lir/phases/AllocationStage.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.lir/src/org/graalvm/compiler/lir/phases/EconomyAllocationStage.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.lir/src/org/graalvm/compiler/lir/stackslotalloc/FixPointIntervalBuilder.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.lir/src/org/graalvm/compiler/lir/stackslotalloc/LSStackSlotAllocator.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.lir/src/org/graalvm/compiler/lir/util/GenericValueMap.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.loop/src/org/graalvm/compiler/loop/CountedLoopInfo.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.loop/src/org/graalvm/compiler/loop/LoopEx.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.loop/src/org/graalvm/compiler/loop/LoopFragment.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.loop/src/org/graalvm/compiler/loop/LoopFragmentInside.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.loop/src/org/graalvm/compiler/loop/LoopFragmentWhole.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.loop/src/org/graalvm/compiler/loop/LoopsData.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.nodes/src/org/graalvm/compiler/nodes/EncodedGraph.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.nodes/src/org/graalvm/compiler/nodes/FieldLocationIdentity.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.nodes/src/org/graalvm/compiler/nodes/GraphDecoder.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/GraphSpeculationLog.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.nodes/src/org/graalvm/compiler/nodes/IfNode.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.nodes/src/org/graalvm/compiler/nodes/InliningLog.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.nodes/src/org/graalvm/compiler/nodes/Invokable.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.nodes/src/org/graalvm/compiler/nodes/InvokeNode.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.nodes/src/org/graalvm/compiler/nodes/InvokeWithExceptionNode.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.nodes/src/org/graalvm/compiler/nodes/KillingBeginNode.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.nodes/src/org/graalvm/compiler/nodes/LoopExitNode.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.nodes/src/org/graalvm/compiler/nodes/NamedLocationIdentity.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.nodes/src/org/graalvm/compiler/nodes/StartNode.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/cfg/Block.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.nodes/src/org/graalvm/compiler/nodes/cfg/HIRLoop.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.nodes/src/org/graalvm/compiler/nodes/cfg/LocationSet.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.nodes/src/org/graalvm/compiler/nodes/debug/StringToBytesNode.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.nodes/src/org/graalvm/compiler/nodes/extended/BytecodeExceptionNode.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.nodes/src/org/graalvm/compiler/nodes/extended/ForeignCallNode.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.nodes/src/org/graalvm/compiler/nodes/extended/GuardedUnsafeLoadNode.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.nodes/src/org/graalvm/compiler/nodes/extended/JavaReadNode.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.nodes/src/org/graalvm/compiler/nodes/extended/JavaWriteNode.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.nodes/src/org/graalvm/compiler/nodes/extended/MembarNode.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.nodes/src/org/graalvm/compiler/nodes/extended/RawLoadNode.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.nodes/src/org/graalvm/compiler/nodes/extended/RawStoreNode.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.nodes/src/org/graalvm/compiler/nodes/extended/UnsafeAccessNode.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.nodes/src/org/graalvm/compiler/nodes/extended/UnsafeCopyNode.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.nodes/src/org/graalvm/compiler/nodes/extended/UnsafeMemoryLoadNode.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.nodes/src/org/graalvm/compiler/nodes/extended/UnsafeMemoryStoreNode.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.nodes/src/org/graalvm/compiler/nodes/graphbuilderconf/InvocationPlugins.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.nodes/src/org/graalvm/compiler/nodes/java/AbstractCompareAndSwapNode.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.nodes/src/org/graalvm/compiler/nodes/java/AtomicReadAndAddNode.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.nodes/src/org/graalvm/compiler/nodes/java/AtomicReadAndWriteNode.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.nodes/src/org/graalvm/compiler/nodes/java/ExceptionObjectNode.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.nodes/src/org/graalvm/compiler/nodes/java/LogicCompareAndSwapNode.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.nodes/src/org/graalvm/compiler/nodes/java/LoweredAtomicReadAndWriteNode.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.nodes/src/org/graalvm/compiler/nodes/java/MonitorEnterNode.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.nodes/src/org/graalvm/compiler/nodes/java/MonitorExitNode.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.nodes/src/org/graalvm/compiler/nodes/java/RawMonitorEnterNode.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.nodes/src/org/graalvm/compiler/nodes/java/UnsafeCompareAndSwapNode.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.nodes/src/org/graalvm/compiler/nodes/java/ValueCompareAndSwapNode.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.nodes/src/org/graalvm/compiler/nodes/memory/AbstractWriteNode.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.nodes/src/org/graalvm/compiler/nodes/memory/Access.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.nodes/src/org/graalvm/compiler/nodes/memory/FixedAccessNode.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.nodes/src/org/graalvm/compiler/nodes/memory/FloatableAccessNode.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.nodes/src/org/graalvm/compiler/nodes/memory/FloatingAccessNode.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.nodes/src/org/graalvm/compiler/nodes/memory/FloatingReadNode.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.nodes/src/org/graalvm/compiler/nodes/memory/MemoryAccess.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.nodes/src/org/graalvm/compiler/nodes/memory/MemoryCheckpoint.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.nodes/src/org/graalvm/compiler/nodes/memory/MemoryMap.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.nodes/src/org/graalvm/compiler/nodes/memory/MemoryMapNode.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.nodes/src/org/graalvm/compiler/nodes/memory/MemoryPhiNode.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.nodes/src/org/graalvm/compiler/nodes/memory/ReadNode.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.nodes/src/org/graalvm/compiler/nodes/memory/WriteNode.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.nodes/src/org/graalvm/compiler/nodes/spi/MemoryProxy.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.nodes/src/org/graalvm/compiler/nodes/util/GraphUtil.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.nodes/src/org/graalvm/compiler/nodes/virtual/CommitAllocationNode.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.options.processor/src/org/graalvm/compiler/options/processor/OptionProcessor.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.options.test/src/org/graalvm/compiler/options/test/NestedBooleanOptionKeyTest.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.options.test/src/org/graalvm/compiler/options/test/TestOptionKey.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.options/src/org/graalvm/compiler/options/EnumOptionKey.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.options/src/org/graalvm/compiler/options/ModifiableOptionValues.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.options/src/org/graalvm/compiler/options/OptionDescriptor.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.options/src/org/graalvm/compiler/options/OptionKey.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.options/src/org/graalvm/compiler/options/OptionValues.java - src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.options/src/org/graalvm/compiler/options/OptionValuesAccess.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/AddressLoweringByUsePhase.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.phases.common/src/org/graalvm/compiler/phases/common/CanonicalizerPhase.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/ExpandLogicPhase.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.phases.common/src/org/graalvm/compiler/phases/common/FixReadsPhase.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.phases.common/src/org/graalvm/compiler/phases/common/FloatingReadPhase.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.phases.common/src/org/graalvm/compiler/phases/common/FrameStateAssignmentPhase.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.phases.common/src/org/graalvm/compiler/phases/common/LoweringPhase.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.phases.common/src/org/graalvm/compiler/phases/common/PropagateDeoptimizeProbabilityPhase.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/inlining/info/AbstractInlineInfo.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.phases.common/src/org/graalvm/compiler/phases/common/inlining/info/AssumptionInlineInfo.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.phases.common/src/org/graalvm/compiler/phases/common/inlining/info/ExactInlineInfo.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.phases.common/src/org/graalvm/compiler/phases/common/inlining/info/InlineInfo.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.phases.common/src/org/graalvm/compiler/phases/common/inlining/info/MultiTypeGuardInlineInfo.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.phases.common/src/org/graalvm/compiler/phases/common/inlining/info/TypeGuardInlineInfo.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.phases.common/src/org/graalvm/compiler/phases/common/inlining/policy/GreedyInliningPolicy.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.phases.common/src/org/graalvm/compiler/phases/common/inlining/policy/InlineEverythingPolicy.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.phases.common/src/org/graalvm/compiler/phases/common/inlining/policy/InlineMethodSubstitutionsPolicy.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.phases.common/src/org/graalvm/compiler/phases/common/inlining/policy/InliningPolicy.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.phases.common/src/org/graalvm/compiler/phases/common/inlining/walker/CallsiteHolderExplorable.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.phases.common/src/org/graalvm/compiler/phases/common/inlining/walker/ComputeInliningRelevance.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.phases.common/src/org/graalvm/compiler/phases/common/inlining/walker/InliningData.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.phases.common/src/org/graalvm/compiler/phases/common/util/HashSetNodeEventListener.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.phases/src/org/graalvm/compiler/phases/graph/FixedNodeProbabilityCache.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.phases/src/org/graalvm/compiler/phases/graph/PostOrderNodeIterator.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.phases/src/org/graalvm/compiler/phases/graph/ReentrantBlockIterator.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.phases/src/org/graalvm/compiler/phases/graph/ReentrantNodeIterator.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.phases/src/org/graalvm/compiler/phases/graph/SinglePassNodeIterator.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.phases/src/org/graalvm/compiler/phases/schedule/MemoryScheduleVerification.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.phases/src/org/graalvm/compiler/phases/schedule/SchedulePhase.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.phases/src/org/graalvm/compiler/phases/tiers/Suites.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.phases/src/org/graalvm/compiler/phases/util/GraphOrder.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.phases/src/org/graalvm/compiler/phases/verify/VerifyCallerSensitiveMethods.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.phases/src/org/graalvm/compiler/phases/verify/VerifyGraphAddUsage.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.printer/src/org/graalvm/compiler/printer/BinaryGraphPrinter.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.printer/src/org/graalvm/compiler/printer/CFGPrinter.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.printer/src/org/graalvm/compiler/printer/GraphPrinter.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.printer/src/org/graalvm/compiler/printer/GraphPrinterDumpHandler.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.replacements.aarch64/src/org/graalvm/compiler/replacements/aarch64/AArch64GraphBuilderPlugins.java - src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.replacements.aarch64/src/org/graalvm/compiler/replacements/aarch64/AArch64ReadNode.java - src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.replacements.aarch64/src/org/graalvm/compiler/replacements/aarch64/AArch64ReadReplacementPhase.java + src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.replacements.aarch64/src/org/graalvm/compiler/replacements/aarch64/AArch64StringLatin1Substitutions.java + src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.replacements.aarch64/src/org/graalvm/compiler/replacements/aarch64/AArch64StringUTF16Substitutions.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.replacements.amd64/src/org/graalvm/compiler/replacements/amd64/AMD64GraphBuilderPlugins.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.replacements.amd64/src/org/graalvm/compiler/replacements/amd64/AMD64StringIndexOfNode.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.replacements.amd64/src/org/graalvm/compiler/replacements/amd64/AMD64StringSubstitutions.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.replacements.test/src/org/graalvm/compiler/replacements/test/NestedExceptionHandlerTest.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.replacements.test/src/org/graalvm/compiler/replacements/test/ObjectAccessTest.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.test/src/org/graalvm/compiler/replacements/test/PointerTest.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.replacements.test/src/org/graalvm/compiler/replacements/test/ReplacementsParseTest.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.replacements.test/src/org/graalvm/compiler/replacements/test/StringCompareToTest.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.replacements.test/src/org/graalvm/compiler/replacements/test/WordTest.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.replacements.test/src/org/graalvm/compiler/replacements/test/classfile/ClassfileBytecodeProviderTest.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/DefaultJavaLoweringProvider.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.replacements/src/org/graalvm/compiler/replacements/GraphKit.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.replacements/src/org/graalvm/compiler/replacements/MethodHandlePlugin.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/SnippetCounterNode.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.replacements/src/org/graalvm/compiler/replacements/SnippetLowerableMemoryNode.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/StandardGraphBuilderPlugins.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.replacements/src/org/graalvm/compiler/replacements/classfile/ClassfileBytecodeProvider.java + src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.replacements/src/org/graalvm/compiler/replacements/classfile/D ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.replacements/src/org/graalvm/compiler/replacements/nodes/ArrayCompareToNode.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.replacements/src/org/graalvm/compiler/replacements/nodes/ArrayEqualsNode.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.replacements/src/org/graalvm/compiler/replacements/nodes/BasicArrayCopyNode.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.compiler.replacements/src/org/graalvm/compiler/replacements/nodes/MacroStateSplitNode.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.serviceprovider/src/org/graalvm/compiler/serviceprovider/GraalServices.java - src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.serviceprovider/src/org/graalvm/compiler/serviceprovider/JDK9Method.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.test/src/org/graalvm/compiler/test/GraalTest.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.test/src/org/graalvm/compiler/test/SubprocessUtil.java - src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.virtual.bench/.checkstyle.exclude ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.virtual/src/org/graalvm/compiler/virtual/phases/ea/EffectsBlockState.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.virtual/src/org/graalvm/compiler/virtual/phases/ea/EffectsClosure.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.virtual/src/org/graalvm/compiler/virtual/phases/ea/EffectsPhase.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.virtual/src/org/graalvm/compiler/virtual/phases/ea/PEReadEliminationBlockState.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.virtual/src/org/graalvm/compiler/virtual/phases/ea/PEReadEliminationClosure.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.virtual/src/org/graalvm/compiler/virtual/phases/ea/PartialEscapeClosure.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.virtual/src/org/graalvm/compiler/virtual/phases/ea/PartialEscapePhase.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.virtual/src/org/graalvm/compiler/virtual/phases/ea/ReadEliminationBlockState.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.virtual/src/org/graalvm/compiler/virtual/phases/ea/ReadEliminationClosure.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.virtual/src/org/graalvm/compiler/virtual/phases/ea/VirtualUtil.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.word/src/org/graalvm/compiler/word/BarrieredAccess.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.word/src/org/graalvm/compiler/word/ObjectAccess.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.word/src/org/graalvm/compiler/word/Word.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.word/src/org/graalvm/compiler/word/WordOperationPlugin.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.word/src/org/graalvm/compiler/word/WordTypes.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.graphio/src/org/graalvm/graphio/GraphElements.java + src/jdk.internal.vm.compiler/share/classes/org.graalvm.graphio/src/org/graalvm/graphio/GraphLocations.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.graphio/src/org/graalvm/graphio/GraphOutput.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.graphio/src/org/graalvm/graphio/GraphProtocol.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.graphio/src/org/graalvm/graphio/ProtocolImpl.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.util.test/src/org/graalvm/util/test/CollectionSizeTest.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.util/src/org/graalvm/util/ObjectSizeEstimate.java - src/jdk.internal.vm.compiler/share/classes/org.graalvm.word/.checkstyle_checks.xml - src/jdk.internal.vm.compiler/share/classes/org.graalvm.word/src/org/graalvm/word/ComparableWord.java - src/jdk.internal.vm.compiler/share/classes/org.graalvm.word/src/org/graalvm/word/LocationIdentity.java - src/jdk.internal.vm.compiler/share/classes/org.graalvm.word/src/org/graalvm/word/Pointer.java - src/jdk.internal.vm.compiler/share/classes/org.graalvm.word/src/org/graalvm/word/PointerBase.java - src/jdk.internal.vm.compiler/share/classes/org.graalvm.word/src/org/graalvm/word/SignedWord.java - src/jdk.internal.vm.compiler/share/classes/org.graalvm.word/src/org/graalvm/word/UnsignedWord.java - src/jdk.internal.vm.compiler/share/classes/org.graalvm.word/src/org/graalvm/word/WordBase.java - src/jdk.internal.vm.compiler/share/classes/org.graalvm.word/src/org/graalvm/word/WordFactory.java Changeset: 9e64b13a7fcb Author: kvn Date: 2018-04-24 10:26 -0700 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/9e64b13a7fcb 8202075: Crash when running compiler/codecache/OverflowCodeCacheTest.java Summary: add missing null check in WhiteBox::allocate_code_blob() Reviewed-by: thartmann ! src/hotspot/share/prims/whitebox.cpp Changeset: 6d1f26b1ddfd Author: roland Date: 2018-04-10 17:07 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/6d1f26b1ddfd 8201368: IfNode::fold_compares() may lead to incorrect execution Reviewed-by: neliasso, kvn ! src/hotspot/share/opto/cfgnode.hpp ! src/hotspot/share/opto/ifnode.cpp + test/hotspot/jtreg/compiler/uncommontrap/FoldedIfNonDomMidIf.java Changeset: ac916fea6ec7 Author: vromero Date: 2018-04-24 12:20 -0700 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/ac916fea6ec7 8202157: remove the use of string keys at InapplicableMethodException Reviewed-by: mcimadamore ! src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Infer.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Resolve.java Changeset: 13807aa618ca Author: rkennke Date: 2018-05-31 18:34 +0200 URL: http://hg.openjdk.java.net/shenandoah/jdk/rev/13807aa618ca Merge ! src/hotspot/cpu/aarch64/gc/g1/g1BarrierSetAssembler_aarch64.cpp ! src/hotspot/cpu/aarch64/interp_masm_aarch64.cpp ! src/hotspot/cpu/aarch64/macroAssembler_aarch64.cpp ! src/hotspot/cpu/aarch64/macroAssembler_aarch64.hpp ! src/hotspot/cpu/aarch64/methodHandles_aarch64.cpp ! src/hotspot/cpu/x86/interp_masm_x86.cpp ! src/hotspot/cpu/x86/macroAssembler_x86.cpp ! src/hotspot/cpu/x86/macroAssembler_x86.hpp ! src/hotspot/cpu/x86/methodHandles_x86.cpp ! src/hotspot/share/classfile/classLoaderData.cpp ! src/hotspot/share/classfile/classLoaderData.hpp ! src/hotspot/share/classfile/dictionary.cpp ! src/hotspot/share/classfile/protectionDomainCache.cpp ! src/hotspot/share/classfile/systemDictionary.cpp ! src/hotspot/share/code/dependencies.cpp ! src/hotspot/share/code/nmethod.cpp ! src/hotspot/share/code/relocInfo.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/commandLineFlagConstraintsGC.cpp ! src/hotspot/share/gc/shared/commandLineFlagConstraintsGC.hpp ! src/hotspot/share/gc/shared/parallelCleaning.cpp ! src/hotspot/share/gc/shared/referenceProcessor.cpp ! src/hotspot/share/gc/shared/referenceProcessor.hpp ! src/hotspot/share/gc/shared/threadLocalAllocBuffer.hpp ! src/hotspot/share/gc/shenandoah/shenandoahHeap.hpp ! src/hotspot/share/gc/shenandoah/shenandoahMonitoringSupport.cpp ! src/hotspot/share/jvmci/jvmciCompilerToVM.cpp ! src/hotspot/share/memory/universe.cpp ! src/hotspot/share/oops/instanceKlass.cpp ! src/hotspot/share/oops/klass.cpp ! src/hotspot/share/oops/klassVtable.cpp ! src/hotspot/share/oops/methodData.hpp ! src/hotspot/share/opto/cfgnode.hpp ! src/hotspot/share/opto/ifnode.cpp ! src/hotspot/share/opto/library_call.cpp ! src/hotspot/share/opto/memnode.cpp ! src/hotspot/share/opto/phaseX.cpp ! src/hotspot/share/opto/subnode.cpp ! src/hotspot/share/opto/superword.cpp ! src/hotspot/share/prims/jvm.cpp ! src/hotspot/share/prims/resolvedMethodTable.cpp ! src/hotspot/share/prims/whitebox.cpp ! src/hotspot/share/runtime/arguments.cpp ! src/hotspot/share/runtime/arguments.hpp ! src/hotspot/share/runtime/commandLineFlagConstraintList.cpp ! src/hotspot/share/runtime/commandLineFlagConstraintList.hpp ! src/hotspot/share/runtime/commandLineFlagConstraintsCompiler.cpp ! src/hotspot/share/runtime/commandLineFlagConstraintsCompiler.hpp ! src/hotspot/share/runtime/commandLineFlagConstraintsRuntime.cpp ! src/hotspot/share/runtime/commandLineFlagConstraintsRuntime.hpp ! src/hotspot/share/runtime/commandLineFlagRangeList.cpp ! src/hotspot/share/runtime/commandLineFlagRangeList.hpp ! src/hotspot/share/runtime/commandLineFlagWriteableList.cpp ! src/hotspot/share/runtime/commandLineFlagWriteableList.hpp ! src/hotspot/share/runtime/globals.cpp ! src/hotspot/share/runtime/globals.hpp ! src/hotspot/share/runtime/globals_extension.hpp ! src/hotspot/share/runtime/mutexLocker.cpp ! src/hotspot/share/runtime/thread.cpp ! src/hotspot/share/runtime/thread.hpp ! src/hotspot/share/runtime/vmStructs.cpp ! src/hotspot/share/services/attachListener.cpp ! src/hotspot/share/services/diagnosticCommand.cpp ! src/hotspot/share/utilities/bitMap.cpp ! src/hotspot/share/utilities/bitMap.hpp ! src/hotspot/share/utilities/globalDefinitions.hpp - src/java.base/windows/classes/java/net/DualStackPlainSocketImpl.java - src/java.base/windows/classes/java/net/TwoStacksPlainSocketImpl.java - src/java.base/windows/native/libnet/DualStackPlainSocketImpl.c - src/java.base/windows/native/libnet/TwoStacksPlainSocketImpl.c - src/jdk.charsets/share/classes/sun/nio/cs/ext/IBM942C.java - src/jdk.charsets/share/classes/sun/nio/cs/ext/IBM943C.java - src/jdk.internal.vm.compiler.management/share/classes/org/graalvm/compiler/hotspot/jmx/GraalMBeans.java - src/jdk.internal.vm.compiler/share/classes/org.graalvm.collections.test/src/org/graalvm/collections/test/EconomicMapImplTest.java - src/jdk.internal.vm.compiler/share/classes/org.graalvm.collections.test/src/org/graalvm/collections/test/EconomicMapLargeTest.java - src/jdk.internal.vm.compiler/share/classes/org.graalvm.collections.test/src/org/graalvm/collections/test/EconomicMapTest.java - src/jdk.internal.vm.compiler/share/classes/org.graalvm.collections.test/src/org/graalvm/collections/test/EconomicSetTest.java - src/jdk.internal.vm.compiler/share/classes/org.graalvm.collections.test/src/org/graalvm/collections/test/EquivalenceTest.java - src/jdk.internal.vm.compiler/share/classes/org.graalvm.collections.test/src/org/graalvm/collections/test/PairTest.java - src/jdk.internal.vm.compiler/share/classes/org.graalvm.collections/src/org/graalvm/collections/EconomicMap.java - src/jdk.internal.vm.compiler/share/classes/org.graalvm.collections/src/org/graalvm/collections/EconomicMapImpl.java - src/jdk.internal.vm.compiler/share/classes/org.graalvm.collections/src/org/graalvm/collections/EconomicSet.java - src/jdk.internal.vm.compiler/share/classes/org.graalvm.collections/src/org/graalvm/collections/Equivalence.java - src/jdk.internal.vm.compiler/share/classes/org.graalvm.collections/src/org/graalvm/collections/MapCursor.java - src/jdk.internal.vm.compiler/share/classes/org.graalvm.collections/src/org/graalvm/collections/Pair.java - src/jdk.internal.vm.compiler/share/classes/org.graalvm.collections/src/org/graalvm/collections/UnmodifiableEconomicMap.java - src/jdk.internal.vm.compiler/share/classes/org.graalvm.collections/src/org/graalvm/collections/UnmodifiableEconomicSet.java - src/jdk.internal.vm.compiler/share/classes/org.graalvm.collections/src/org/graalvm/collections/UnmodifiableMapCursor.java - src/jdk.internal.vm.compiler/share/classes/org.graalvm.collections/src/org/graalvm/collections/package-info.java - src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.core.common/src/org/graalvm/compiler/core/common/util/ModuleAPI.java - src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.core/src/org/graalvm/compiler/core/phases/CoreCompilerConfiguration.java - src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.debug/src/org/graalvm/compiler/debug/Management.java - src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.graph/.checkstyle_checks.xml - src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot.aarch64/src/org/graalvm/compiler/hotspot/aarch64/AArch64HotSpotSuitesProvider.java - src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot.test/src/org/graalvm/compiler/hotspot/test/HotSpotGraalMBeanTest.java - src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot/src/org/graalvm/compiler/hotspot/CoreCompilerConfigurationFactory.java - src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot/src/org/graalvm/compiler/hotspot/HotSpotGraalMBean.java - src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.options/src/org/graalvm/compiler/options/OptionValuesAccess.java - src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.replacements.aarch64/src/org/graalvm/compiler/replacements/aarch64/AArch64ReadNode.java - src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.replacements.aarch64/src/org/graalvm/compiler/replacements/aarch64/AArch64ReadReplacementPhase.java - src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.serviceprovider/src/org/graalvm/compiler/serviceprovider/JDK9Method.java - src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.virtual.bench/.checkstyle.exclude - src/jdk.internal.vm.compiler/share/classes/org.graalvm.word/.checkstyle_checks.xml - src/jdk.internal.vm.compiler/share/classes/org.graalvm.word/src/org/graalvm/word/ComparableWord.java - src/jdk.internal.vm.compiler/share/classes/org.graalvm.word/src/org/graalvm/word/LocationIdentity.java - src/jdk.internal.vm.compiler/share/classes/org.graalvm.word/src/org/graalvm/word/Pointer.java - src/jdk.internal.vm.compiler/share/classes/org.graalvm.word/src/org/graalvm/word/PointerBase.java - src/jdk.internal.vm.compiler/share/classes/org.graalvm.word/src/org/graalvm/word/SignedWord.java - src/jdk.internal.vm.compiler/share/classes/org.graalvm.word/src/org/graalvm/word/UnsignedWord.java - src/jdk.internal.vm.compiler/share/classes/org.graalvm.word/src/org/graalvm/word/WordBase.java - src/jdk.internal.vm.compiler/share/classes/org.graalvm.word/src/org/graalvm/word/WordFactory.java ! test/hotspot/jtreg/TEST.groups ! test/hotspot/jtreg/runtime/MemberName/MemberNameLeak.java - test/langtools/tools/javac/6410653/T6410653.java - test/langtools/tools/javac/T8009640/CheckRejectProfileBCPOptionsIfUsedTogetherTest.java - test/langtools/tools/javac/options/release/ReleaseOptionClashes.java From zgu at redhat.com Thu May 31 19:45:44 2018 From: zgu at redhat.com (Zhengyu Gu) Date: Thu, 31 May 2018 15:45:44 -0400 Subject: RFR: SA is broken during recent code reshuffling Message-ID: <0facdd49-548f-6888-f60c-c69d0c55c56a@redhat.com> There are two changes that break Shenandoah SA - Upstream code reshuffling that moved GC vmStructs under gc/shared, Shenandoah vmStructs went missed during this change. - Converted ShenandoahHeap::_regions from region set to region array, but SA was not updated. Borrowed a SA test to make sure this won't happen again. Webrev: http://cr.openjdk.java.net/~zgu/shenandoah/sa-fix/webrev.00/ Test: hotspot_gc_shenandoah (release and fastdebug) Thanks, -Zhengyu From rkennke at redhat.com Thu May 31 20:14:20 2018 From: rkennke at redhat.com (Roman Kennke) Date: Thu, 31 May 2018 22:14:20 +0200 Subject: RFR: SA is broken during recent code reshuffling In-Reply-To: <0facdd49-548f-6888-f60c-c69d0c55c56a@redhat.com> References: <0facdd49-548f-6888-f60c-c69d0c55c56a@redhat.com> Message-ID: Am 31.05.2018 um 21:45 schrieb Zhengyu Gu: > There are two changes that break Shenandoah SA > > - Upstream code reshuffling that moved GC vmStructs under gc/shared, > Shenandoah vmStructs went missed during this change. > > - Converted ShenandoahHeap::_regions from region set to region array, > but SA was not updated. > > Borrowed a SA test to make sure this won't happen again. > > Webrev: http://cr.openjdk.java.net/~zgu/shenandoah/sa-fix/webrev.00/ > > > Test: > > ? hotspot_gc_shenandoah (release and fastdebug) > > Patch is ok. Thanks!! Roman From rkennke at redhat.com Thu May 31 22:55:00 2018 From: rkennke at redhat.com (Roman Kennke) Date: Fri, 1 Jun 2018 00:55:00 +0200 Subject: Feedback from experiments on production application In-Reply-To: References: <02f08fe4-a1fe-de17-dc46-b7ab607ef375@redhat.com> <4BF631F5-B5B6-48A5-8CB8-AC27E66902AE@gmail.com> <5a4a1e79-5f03-3f0b-fa67-bdfd6faaba88@redhat.com> <4E14A9F9-41F7-404E-9E87-5CD356853626@gmail.com> <649f4249-7e87-35c3-946c-c259db5130f1@redhat.com> Message-ID: <9d0881a9-46c3-c9a0-6638-aedcc246245b@redhat.com> Hello Petr, thank you so much for trying this out! Can you quantify throughput and/or latency? How does it relate to, e.g., G1, CMS or parallel GC? Is throughput any different between traversal and adaptive (e.g. default heuristics)? The stats show that you have at least one ~430ms pause, that is caused by out-of-memory followed by degenerated GC. Any idea what is going on there? It should be possible to find the corresponding cycle in the log. BTW, we disabled concurrent class unloading in the meantime. Classes will still get unloaded at full-gc, if that every happens (either triggered by out-of-memory or by System.gc() ). This seems to be the better compromise until we implement concurrent class loader data scanning and don't hurt pause times by this. Users who need/want concurrent class unloading can still turn it on by passing -XX:+ClassUnloadingWithConcurrentMark in the cmd line. Thanks again, Roman > Hi everyone, > > sorry for the late response. I wanted to provide JDK11 results in the reply, but migration to JDK11 was much harder nut to crack than expected (many major libraries are not JDK11 ready yet and very sad about the changes in Unsafe ;)). > > I used build 11-internal+0-nightly-sobornost-builds.shipilev.net-shenandoah-jdkX-b109 > > I found behaviour with heuristic=tranversal without class unloading quite nice. It gave me nice throughput with occasional 6-8ms pause. Given that the default heuristics would give 6-8ms Final mark pause anyway, there was no increase in max pause with ?traversal?. It definitely solved the "pause spacing? problem I experienced with the default heuristics. > With class unloading turned on, the final traversal pause increased by 10ms to 16-18ms. > > I did not register any difference in behaviour from JDK8 when using the default heuristic. > > There are extracts of typical GC cycles from the logs, in case you find them useful: > > 1) ?traversal? without class unloading: > > =================== > [847.319s][info ][gc,ergo ] Free set: Used: 18313M of 20155M, Regions: 249 mutator, 0 collector > [847.319s][info ][gc,ergo ] Free set: Mutator view: Max regular: 8192K, Max humongous: 1515520K, External frag: 20%, Internal frag: 7% > [847.319s][info ][gc,ergo ] Free set: Collector view: Max regular: 0K > [847.326s][info ][gc ] GC(40) Pause Init Traversal 5.109ms > [847.326s][info ][gc,start ] GC(40) Concurrent traversal > [847.405s][debug][gc,ref,start ] GC(40) Preclean SoftReferences > [847.405s][debug][gc,ref ] GC(40) Preclean SoftReferences 0.097ms > [847.405s][debug][gc,ref,start ] GC(40) Preclean WeakReferences > [847.408s][debug][gc,ref ] GC(40) Preclean WeakReferences 3.010ms > [847.408s][debug][gc,ref,start ] GC(40) Preclean FinalReferences > [847.408s][debug][gc,ref ] GC(40) Preclean FinalReferences 0.141ms > [847.408s][debug][gc,ref,start ] GC(40) Preclean PhantomReferences > [847.408s][debug][gc,ref ] GC(40) Preclean PhantomReferences 0.478ms > [847.408s][info ][gc ] GC(40) Concurrent traversal 18638M->18781M(20480M) 82.012ms > [847.410s][info ][gc,start ] GC(40) Pause Final Traversal > [847.416s][debug][gc,phases,ref ] GC(40) Reference Processing: 0.2ms > [847.416s][debug][gc,phases,ref ] GC(40) SoftReference: 0.0ms > [847.416s][debug][gc,phases,ref ] GC(40) Balance queues: 0.0ms > [847.416s][debug][gc,phases,ref ] GC(40) Phase1: 0.0ms > [847.416s][debug][gc,phases,ref ] GC(40) Phase2: 0.0ms > [847.416s][debug][gc,phases,ref ] GC(40) Phase3: 0.0ms > [847.416s][debug][gc,phases,ref ] GC(40) Discovered: 0 > [847.416s][debug][gc,phases,ref ] GC(40) Cleared: 0 > [847.416s][debug][gc,phases,ref ] GC(40) WeakReference: 0.2ms > [847.416s][debug][gc,phases,ref ] GC(40) Balance queues: 0.0ms > [847.416s][debug][gc,phases,ref ] GC(40) Phase2: 0.2ms > [847.416s][debug][gc,phases,ref ] GC(40) Phase3: 0.0ms > [847.416s][debug][gc,phases,ref ] GC(40) Discovered: 20 > [847.416s][debug][gc,phases,ref ] GC(40) Cleared: 20 > [847.416s][debug][gc,phases,ref ] GC(40) FinalReference: 0.0ms > [847.416s][debug][gc,phases,ref ] GC(40) Balance queues: 0.0ms > [847.416s][debug][gc,phases,ref ] GC(40) Phase2: 0.0ms > [847.416s][debug][gc,phases,ref ] GC(40) Phase3: 0.0ms > [847.416s][debug][gc,phases,ref ] GC(40) Discovered: 0 > [847.416s][debug][gc,phases,ref ] GC(40) Cleared: 0 > [847.416s][debug][gc,phases,ref ] GC(40) PhantomReference: 0.0ms > [847.416s][debug][gc,phases,ref ] GC(40) Balance queues: 0.0ms > [847.416s][debug][gc,phases,ref ] GC(40) Phase2: 0.0ms > [847.416s][debug][gc,phases,ref ] GC(40) Phase3: 0.0ms > [847.416s][debug][gc,phases,ref ] GC(40) Discovered: 0 > [847.416s][debug][gc,phases,ref ] GC(40) Cleared: 0 > [847.416s][debug][gc,phases,ref ] GC(40) Reference Enqueuing 0.1ms > [847.416s][debug][gc,phases,ref ] GC(40) Reference Counts: Soft: 0 Weak: 0 Final: 0 Phantom: 0 > [847.416s][info ][gc,ergo ] GC(40) Free: 20161M, Regions: 2538 mutator, 0 collector > [847.417s][info ][gc ] GC(40) Pause Final Traversal 6.247ms > [847.417s][info ][gc,start ] GC(40) Concurrent cleanup > [847.418s][info ][gc ] GC(40) Concurrent cleanup 18781M->351M(20480M) 1.547ms > [847.419s][info ][gc,ergo ] Free set: Used: 47M of 20161M, Regions: 2533 mutator, 0 collector > [847.419s][info ][gc,ergo ] Free set: Mutator view: Max regular: 8192K, Max humongous: 18702336K, External frag: 10%, Internal frag: 0% > [847.419s][info ][gc,ergo ] Free set: Collector view: Max regular: 0K > [847.419s][info ][gc,ergo ] Pacer for Idle. Initial: 409M, Alloc Tax Rate: 1.0x > =================== > > 2) ?traversal? with class unloading: > > =================== > [197.504s][info ][gc,ergo ] Free set: Used: 18396M of 20237M, Regions: 241 mutator, 0 collector > [197.505s][info ][gc,ergo ] Free set: Mutator view: Max regular: 8192K, Max humongous: 1687552K, External frag: 11%, Internal frag: 4% > [197.505s][info ][gc,ergo ] Free set: Collector view: Max regular: 0K > [197.507s][info ][gc,start ] GC(9) Pause Init Traversal > [197.507s][info ][gc,ergo ] GC(9) Free: 1838M, Regions: 240 mutator, 0 collector > [197.507s][info ][gc,ergo ] GC(9) Got 2315 collection set regions and 0 root set regions > [197.508s][info ][gc,ergo ] GC(9) Pacer for Traversal. Used: 18637M, Free: 1838M, Non-Taxable: 183M, Alloc Tax Rate: 12.4x > [197.508s][info ][gc ] GC(9) Pause Init Traversal 1.577ms > [197.508s][info ][gc,start ] GC(9) Concurrent traversal > [197.584s][debug][gc,ref,start ] GC(9) Preclean SoftReferences > [197.584s][debug][gc,ref ] GC(9) Preclean SoftReferences 0.100ms > [197.584s][debug][gc,ref,start ] GC(9) Preclean WeakReferences > [197.587s][debug][gc,ref ] GC(9) Preclean WeakReferences 2.513ms > [197.587s][debug][gc,ref,start ] GC(9) Preclean FinalReferences > [197.587s][debug][gc,ref ] GC(9) Preclean FinalReferences 0.102ms > [197.587s][debug][gc,ref,start ] GC(9) Preclean PhantomReferences > [197.588s][debug][gc,ref ] GC(9) Preclean PhantomReferences 0.659ms > [197.588s][info ][gc ] GC(9) Concurrent traversal 18638M->18779M(20480M) 79.340ms > [197.590s][info ][gc,start ] GC(9) Pause Final Traversal > [197.592s][debug][gc,phases,ref ] GC(9) Reference Processing: 0.2ms > [197.592s][debug][gc,phases,ref ] GC(9) SoftReference: 0.0ms > [197.592s][debug][gc,phases,ref ] GC(9) Balance queues: 0.0ms > [197.592s][debug][gc,phases,ref ] GC(9) Phase1: 0.0ms > [197.592s][debug][gc,phases,ref ] GC(9) Phase2: 0.0ms > [197.592s][debug][gc,phases,ref ] GC(9) Phase3: 0.0ms > [197.592s][debug][gc,phases,ref ] GC(9) Discovered: 0 > [197.592s][debug][gc,phases,ref ] GC(9) Cleared: 0 > [197.592s][debug][gc,phases,ref ] GC(9) WeakReference: 0.2ms > [197.592s][debug][gc,phases,ref ] GC(9) Balance queues: 0.0ms > [197.592s][debug][gc,phases,ref ] GC(9) Phase2: 0.2ms > [197.592s][debug][gc,phases,ref ] GC(9) Phase3: 0.0ms > [197.592s][debug][gc,phases,ref ] GC(9) Discovered: 20 > [197.592s][debug][gc,phases,ref ] GC(9) Cleared: 20 > [197.592s][debug][gc,phases,ref ] GC(9) FinalReference: 0.0ms > [197.592s][debug][gc,phases,ref ] GC(9) Balance queues: 0.0ms > [197.592s][debug][gc,phases,ref ] GC(9) Phase2: 0.0ms > [197.592s][debug][gc,phases,ref ] GC(9) Phase3: 0.0ms > [197.592s][debug][gc,phases,ref ] GC(9) Discovered: 0 > [197.592s][debug][gc,phases,ref ] GC(9) Cleared: 0 > [197.592s][debug][gc,phases,ref ] GC(9) PhantomReference: 0.0ms > [197.592s][debug][gc,phases,ref ] GC(9) Balance queues: 0.0ms > [197.592s][debug][gc,phases,ref ] GC(9) Phase2: 0.0ms > [197.592s][debug][gc,phases,ref ] GC(9) Phase3: 0.0ms > [197.592s][debug][gc,phases,ref ] GC(9) Discovered: 0 > [197.592s][debug][gc,phases,ref ] GC(9) Cleared: 0 > [197.592s][debug][gc,phases,ref ] GC(9) Reference Enqueuing 0.1ms > [197.592s][debug][gc,phases,ref ] GC(9) Reference Counts: Soft: 0 Weak: 0 Final: 0 Phantom: 0 > [197.592s][debug][gc,phases,start ] GC(9) SystemDictionary WeakHandle cleaning > [197.592s][debug][gc,phases ] GC(9) SystemDictionary WeakHandle cleaning 0.103ms > [197.592s][debug][gc,phases,start ] GC(9) ClassLoaderData > [197.593s][debug][gc,phases ] GC(9) ClassLoaderData 0.377ms > [197.593s][debug][gc,phases,start ] GC(9) ProtectionDomainCacheTable > [197.593s][debug][gc,phases ] GC(9) ProtectionDomainCacheTable 0.017ms > [197.602s][info ][gc,stringtable ] GC(9) Cleaned string and symbol table, strings: 49649 processed, 0 removed, symbols: 261650 processed, 0 removed > [197.606s][info ][gc,ergo ] GC(9) Free: 20221M, Regions: 2539 mutator, 0 collector > [197.607s][info ][gc ] GC(9) Pause Final Traversal 16.951ms > [197.607s][info ][gc,start ] GC(9) Concurrent cleanup > [197.609s][info ][gc ] GC(9) Concurrent cleanup 18780M->287M(20480M) 1.964ms > [197.609s][info ][gc,ergo ] Free set: Used: 28M of 20221M, Regions: 2536 mutator, 0 collector > [197.609s][info ][gc,ergo ] Free set: Mutator view: Max regular: 8192K, Max humongous: 18800640K, External frag: 10%, Internal frag: 0% > [197.609s][info ][gc,ergo ] Free set: Collector view: Max regular: 0K > [197.609s][info ][gc,ergo ] Pacer for Idle. Initial: 409M, Alloc Tax Rate: 1.0x > =================== > > 3) default heuristic (without class unloading) > > ================== > [237.113s][info ][gc,ergo ] Concurrent marking triggered. Free: 3070M, Free Threshold: 3072M; Allocated: 15906M, Alloc Threshold: 0M > [237.113s][info ][gc,ergo ] Free set: Used: 15745M of 18814M, Regions: 393 mutator, 0 collector > [237.113s][info ][gc,ergo ] Free set: Mutator view: Max regular: 8192K, Max humongous: 2850816K, External frag: 10%, Internal frag: 2% > [237.113s][info ][gc,ergo ] Free set: Collector view: Max regular: 0K > [237.114s][info ][gc,start ] GC(13) Pause Init Mark > [237.114s][debug][gc,tlab ] GC(13) TLAB totals: thrds: 113 refills: 16041 max: 518 slow allocs: 12 max 12 waste: 0.1% gc: 57826960B max: 1048536B slow: 12558848B max: 418592B fast: 0B max: 0B > [237.118s][info ][gc,ergo ] GC(13) Pacer for Mark. Used: 17409M, Free: 3069M, Non-Taxable: 306M, Alloc Tax Rate: 20.8x > [237.118s][info ][gc ] GC(13) Pause Init Mark 3.605ms > [237.118s][info ][gc,start ] GC(13) Concurrent marking > [237.212s][info ][gc ] GC(13) Concurrent marking 17409M->17549M(20480M) 94.486ms > [237.214s][info ][gc,start ] GC(13) Pause Final Mark > [237.218s][info ][gc,ergo ] GC(13) Adaptive CSet Selection. Target Free: 4096M, Actual Free: 18553M, Target CSet: [0M, 13915M] > [237.218s][info ][gc,ergo ] GC(13) Collectable Garbage: 1661M (9% of total), 2M CSet, 208 CSet regions > [237.218s][info ][gc,ergo ] GC(13) Immediate Garbage: 15649M (90% of total), 1957 regions > [237.218s][info ][gc,ergo ] GC(13) Free: 18579M, Regions: 2332 mutator, 0 collector > [237.221s][info ][gc,ergo ] GC(13) Pacer for Evacuation. CSet: 2M, Free: 18577M, Non-Taxable: 1857M, Alloc Tax Rate: 1.1x > [237.221s][info ][gc ] GC(13) Pause Final Mark 7.270ms > [237.221s][info ][gc,start ] GC(13) Concurrent cleanup > [237.222s][info ][gc ] GC(13) Concurrent cleanup 17551M->1925M(20480M) 0.676ms > [237.222s][info ][gc,start ] GC(13) Concurrent evacuation > [237.230s][info ][gc ] GC(13) Concurrent evacuation 1925M->1992M(20480M) 8.243ms > [237.232s][info ][gc,start ] GC(13) Pause Init Update Refs > [237.232s][debug][gc,plab ] GC(13) Shenandoah mutator GCLAB stats PLAB allocation: allocated: 60088B, wasted: 552B, unused: 42664B, used: 16872B, undo waste: 0B, > [237.232s][debug][gc,plab ] GC(13) Shenandoah mutator GCLAB stats sizing: calculated: 5624B, actual: 9704B > [237.232s][debug][gc,plab ] GC(13) Shenandoah collector GCLAB stats PLAB allocation: allocated: 5003416B, wasted: 2584B, unused: 2358784B, used: 2642048B, undo waste: 0B, > [237.232s][debug][gc,plab ] GC(13) Shenandoah collector GCLAB stats sizing: calculated: 1321024B, actual: 1616200B > [237.232s][info ][gc,ergo ] GC(13) Pacer for Update-Refs. Used: 1992M, Free: 18487M, Non-Taxable: 1848M, Alloc Tax Rate: 1.1x > [237.232s][info ][gc ] GC(13) Pause Init Update Refs 0.403ms > [237.232s][info ][gc,start ] GC(13) Concurrent update references > [237.410s][info ][gc ] GC(13) Concurrent update references 1992M->2243M(20480M) 177.690ms > [237.412s][info ][gc,start ] GC(13) Pause Final Update Refs > [237.413s][info ][gc,ergo ] GC(13) Free: 19900M, Regions: 2499 mutator, 0 collector > [237.413s][info ][gc ] GC(13) Pause Final Update Refs 1.539ms > [237.413s][info ][gc,start ] GC(13) Concurrent cleanup > [237.419s][info ][gc ] GC(13) Concurrent cleanup 2243M->591M(20480M) 6.196ms > [237.420s][info ][gc,ergo ] GC(13) Capacity: 20480M, Peak Occupancy: 17549M, Lowest Free: 2930M, Free Threshold: 2048M > [237.420s][info ][gc,ergo ] Free set: Used: 12M of 19900M, Regions: 2498 mutator, 0 collector > [237.420s][info ][gc,ergo ] Free set: Mutator view: Max regular: 8192K, Max humongous: 15130624K, External frag: 26%, Internal frag: 0% > [237.420s][info ][gc,ergo ] Free set: Collector view: Max regular: 0K > [237.420s][info ][gc,ergo ] Pacer for Idle. Initial: 409M, Alloc Tax Rate: 1.0x > [252.318s][info ][gc,ergo ] Concurrent marking triggered. Free: 3071M, Free Threshold: 3072M; Allocated: 17320M, Alloc Threshold: 0M > [252.318s][info ][gc,ergo ] Free set: Used: 16828M of 19900M, Regions: 394 mutator, 0 collector > [252.318s][info ][gc,ergo ] Free set: Mutator view: Max regular: 8192K, Max humongous: 3022848K, External frag: 4%, Internal frag: 2% > [252.318s][info ][gc,ergo ] Free set: Collector view: Max regular: 0K > [252.320s][info ][gc,start ] GC(14) Pause Init Mark > [252.320s][debug][gc,tlab ] GC(14) TLAB totals: thrds: 124 refills: 18378 max: 1037 slow allocs: 1 max 1 waste: 0.1% gc: 51629888B max: 1048536B slow: 14297192B max: 803248B fast: 0B max: 0B > [252.322s][info ][gc,ergo ] GC(14) Pacer for Mark. Used: 17407M, Free: 3071M, Non-Taxable: 307M, Alloc Tax Rate: 20.8x > [252.322s][info ][gc ] GC(14) Pause Init Mark 2.432ms > [252.322s][info ][gc,start ] GC(14) Concurrent marking > [252.422s][info ][gc ] GC(14) Concurrent marking 17407M->17557M(20480M) 99.549ms > [252.423s][info ][gc,start ] GC(14) Pause Final Mark > [252.425s][info ][gc,ergo ] GC(14) Immediate Garbage: 16511M (95% of total), 2064 regions > [252.425s][info ][gc,ergo ] GC(14) Free: 19434M, Regions: 2439 mutator, 0 collector > [252.425s][info ][gc,ergo ] GC(14) Pacer for Evacuation. CSet: 0M, Free: 19434M, Non-Taxable: 1943M, Alloc Tax Rate: 1.1x > [252.425s][info ][gc ] GC(14) Pause Final Mark 1.522ms > [252.425s][info ][gc,start ] GC(14) Concurrent cleanup > [252.426s][info ][gc ] GC(14) Concurrent cleanup 17557M->1068M(20480M) 1.028ms > [252.426s][info ][gc,ergo ] GC(14) Capacity: 20480M, Peak Occupancy: 17557M, Lowest Free: 2922M, Free Threshold: 2048M > [252.426s][info ][gc,ergo ] Free set: Used: 23M of 19434M, Regions: 2437 mutator, 0 collector > [252.426s][info ][gc,ergo ] Free set: Mutator view: Max regular: 8192K, Max humongous: 2867200K, External frag: 86%, Internal frag: 0% > [252.426s][info ][gc,ergo ] Free set: Collector view: Max regular: 0K > [252.426s][info ][gc,ergo ] Pacer for Idle. Initial: 409M, Alloc Tax Rate: 1.0x > ================== > > 4) GC statistics for ?traversal? without class unloading (different run than the log above, but the observed behaviour was exactly the same) > ================== > [503.616s][debug][gc,metaspace,freelist] ChunkManager::chunk_freelist_allocate: 0x00007f055419fdf0 chunk 0x00007f02784fb400 size 128 count 0 Free chunk total 3072 count 6 > [503.645s][info ][gc ] Cancelling GC: Stopping VM > [503.646s][info ][gc,heap,exit ] Heap > [503.646s][info ][gc,heap,exit ] Shenandoah Heap > [503.646s][info ][gc,heap,exit ] 20971520K total, 19513344K committed, 13436610K used > [503.646s][info ][gc,heap,exit ] 2560 x 8192K regions > [503.646s][info ][gc,heap,exit ] Status: cancelled > [503.646s][info ][gc,heap,exit ] Reserved region: > [503.646s][info ][gc,heap,exit ] - [0x00000002c0000000, 0x00000007c0000000) > [503.646s][info ][gc,stats ] > [503.646s][info ][gc,stats ] GC STATISTICS: > [503.646s][info ][gc,stats ] "(G)" (gross) pauses include VM time: time to notify and block threads, do the pre- > [503.646s][info ][gc,stats ] and post-safepoint housekeeping. Use -XX:+PrintSafepointStatistics to dissect. > [503.646s][info ][gc,stats ] "(N)" (net) pauses are the times spent in the actual GC code. > [503.646s][info ][gc,stats ] "a" is average time for each phase, look at levels to see if average makes sense. > [503.646s][info ][gc,stats ] "lvls" are quantiles: 0% (minimum), 25%, 50% (median), 75%, 100% (maximum). > [503.646s][info ][gc,stats ] > [503.646s][info ][gc,stats ] Total Pauses (G) = 0.87 s (a = 17368 us) (n = 50) (lvls, us = 7578, 8105, 8887, 9609, 430654) > [503.646s][info ][gc,stats ] Total Pauses (N) = 0.75 s (a = 15007 us) (n = 50) (lvls, us = 5410, 5898, 6602, 7168, 421706) > [503.646s][info ][gc,stats ] Weak References = 0.02 s (a = 914 us) (n = 25) (lvls, us = 459, 479, 502, 547, 8559) > [503.646s][info ][gc,stats ] Process = 0.02 s (a = 608 us) (n = 25) (lvls, us = 361, 371, 396, 459, 3317) > [503.646s][info ][gc,stats ] Enqueue = 0.01 s (a = 299 us) (n = 25) (lvls, us = 72, 81, 93, 99, 5231) > [503.646s][info ][gc,stats ] Pause Degenerated GC (G) = 0.43 s (a = 430643 us) (n = 1) (lvls, us = 429688, 429688, 429688, 429688, 430643) > [503.646s][info ][gc,stats ] Pause Degenerated GC (N) = 0.42 s (a = 421705 us) (n = 1) (lvls, us = 419922, 419922, 419922, 419922, 421705) > [503.646s][info ][gc,stats ] Pause Init Traversal (G) = 0.21 s (a = 8358 us) (n = 25) (lvls, us = 7578, 7793, 8105, 8164, 16517) > [503.646s][info ][gc,stats ] Pause Init Traversal (N) = 0.15 s (a = 6183 us) (n = 25) (lvls, us = 5410, 5645, 5898, 5957, 14575) > [503.646s][info ][gc,stats ] Prepare = 0.01 s (a = 515 us) (n = 25) (lvls, us = 447, 465, 480, 498, 717) > [503.646s][info ][gc,stats ] Work = 0.14 s (a = 5503 us) (n = 25) (lvls, us = 4824, 4941, 5273, 5332, 13030) > [503.646s][info ][gc,stats ] TI: Thread Roots = 0.01 s (a = 509 us) (n = 25) (lvls, us = 414, 471, 484, 498, 1088) > [503.646s][info ][gc,stats ] TI: Code Cache Roots = 0.06 s (a = 2298 us) (n = 25) (lvls, us = 1934, 1973, 2168, 2207, 6487) > [503.646s][info ][gc,stats ] TI: String Table Roots = 0.02 s (a = 666 us) (n = 25) (lvls, us = 551, 615, 629, 639, 1605) > [503.646s][info ][gc,stats ] TI: Universe Roots = 0.00 s (a = 2 us) (n = 25) (lvls, us = 1, 1, 2, 2, 9) > [503.646s][info ][gc,stats ] TI: JNI Roots = 0.00 s (a = 3 us) (n = 25) (lvls, us = 2, 2, 2, 3, 9) > [503.646s][info ][gc,stats ] TI: Synchronizer Roots = 0.00 s (a = 0 us) (n = 25) (lvls, us = 0, 0, 0, 0, 0) > [503.646s][info ][gc,stats ] TI: Management Roots = 0.00 s (a = 2 us) (n = 25) (lvls, us = 2, 2, 2, 2, 4) > [503.646s][info ][gc,stats ] TI: System Dict Roots = 0.01 s (a = 306 us) (n = 25) (lvls, us = 162, 170, 191, 314, 1661) > [503.646s][info ][gc,stats ] TI: CLDG Roots = 0.02 s (a = 727 us) (n = 25) (lvls, us = 551, 662, 676, 701, 1772) > [503.646s][info ][gc,stats ] TI: JVMTI Roots = 0.00 s (a = 1 us) (n = 25) (lvls, us = 1, 1, 1, 1, 1) > [503.646s][info ][gc,stats ] Pause Final Traversal (G) = 0.23 s (a = 9530 us) (n = 24) (lvls, us = 8887, 9062, 9336, 9805, 10682) > [503.646s][info ][gc,stats ] Pause Final Traversal (N) = 0.17 s (a = 7252 us) (n = 24) (lvls, us = 6582, 6836, 7148, 7461, 8415) > [503.646s][info ][gc,stats ] Work = 0.34 s (a = 13730 us) (n = 25) (lvls, us = 5547, 5801, 6016, 6309, 196072) > [503.646s][info ][gc,stats ] TF: Thread Roots = 0.02 s (a = 626 us) (n = 25) (lvls, us = 447, 473, 496, 521, 3577) > [503.646s][info ][gc,stats ] TF: Code Cache Roots = 0.05 s (a = 2129 us) (n = 25) (lvls, us = 1914, 1992, 2168, 2207, 2280) > [503.646s][info ][gc,stats ] TF: String Table Roots = 0.01 s (a = 379 us) (n = 25) (lvls, us = 361, 367, 371, 387, 397) > [503.646s][info ][gc,stats ] TF: Universe Roots = 0.00 s (a = 1 us) (n = 25) (lvls, us = 1, 1, 1, 1, 2) > [503.646s][info ][gc,stats ] TF: JNI Roots = 0.00 s (a = 2 us) (n = 25) (lvls, us = 2, 2, 2, 3, 3) > [503.646s][info ][gc,stats ] TF: Synchronizer Roots = 0.00 s (a = 0 us) (n = 25) (lvls, us = 0, 0, 0, 0, 0) > [503.646s][info ][gc,stats ] TF: Management Roots = 0.00 s (a = 2 us) (n = 25) (lvls, us = 1, 2, 2, 3, 3) > [503.646s][info ][gc,stats ] TF: System Dict Roots = 0.01 s (a = 217 us) (n = 25) (lvls, us = 135, 148, 244, 244, 274) > [503.646s][info ][gc,stats ] TF: CLDG Roots = 0.02 s (a = 604 us) (n = 25) (lvls, us = 486, 551, 596, 627, 838) > [503.646s][info ][gc,stats ] TF: JVMTI Roots = 0.00 s (a = 1 us) (n = 25) (lvls, us = 1, 1, 1, 1, 1) > [503.646s][info ][gc,stats ] TF: Finish Queues = 0.18 s (a = 7384 us) (n = 25) (lvls, us = 312, 563, 621, 686, 169584) > [503.646s][info ][gc,stats ] Cleanup = 0.00 s (a = 103 us) (n = 25) (lvls, us = 95, 96, 99, 105, 121) > [503.646s][info ][gc,stats ] Concurrent Cleanup = 0.07 s (a = 2967 us) (n = 24) (lvls, us = 1094, 1621, 1836, 2109, 26448) > [503.646s][info ][gc,stats ] Recycle = 0.04 s (a = 1588 us) (n = 25) (lvls, us = 262, 494, 688, 727, 24130) > [503.646s][info ][gc,stats ] Reset Bitmaps = 0.25 s (a = 9837 us) (n = 25) (lvls, us = 623, 895, 1035, 1484, 215718) > [503.646s][info ][gc,stats ] Concurrent Traversal = 5.10 s (a = 204183 us) (n = 25) (lvls, us = 84375, 87109, 88477, 92383, 2872023) > [503.646s][info ][gc,stats ] > [503.646s][info ][gc,stats ] > [503.646s][info ][gc,stats ] Under allocation pressure, concurrent cycles may cancel, and either continue cycle > [503.646s][info ][gc,stats ] under stop-the-world pause or result in stop-the-world Full GC. Increase heap size, > [503.646s][info ][gc,stats ] tune GC heuristics, set more aggressive pacing delay, or lower allocation rate > [503.647s][info ][gc,stats ] to avoid Degenerated and Full GC cycles. > [503.647s][info ][gc,stats ] > [503.647s][info ][gc,stats ] 24 successful concurrent GCs > [503.647s][info ][gc,stats ] 0 invoked explicitly > [503.647s][info ][gc,stats ] > [503.647s][info ][gc,stats ] 1 Degenerated GCs > [503.647s][info ][gc,stats ] 1 caused by allocation failure > [503.647s][info ][gc,stats ] 1 happened at Traversal > [503.647s][info ][gc,stats ] 0 upgraded to Full GC > [503.647s][info ][gc,stats ] > [503.647s][info ][gc,stats ] 0 Full GCs > [503.647s][info ][gc,stats ] 0 invoked explicitly > [503.647s][info ][gc,stats ] 0 caused by allocation failure > [503.647s][info ][gc,stats ] 0 upgraded from Degenerated GC > [503.647s][info ][gc,stats ] > [503.647s][info ][gc,stats ] > [503.647s][info ][gc,stats ] ALLOCATION PACING: > [503.647s][info ][gc,stats ] > [503.647s][info ][gc,stats ] Max pacing delay is set for 10 ms. > [503.647s][info ][gc,stats ] > [503.647s][info ][gc,stats ] Higher delay would prevent application outpacing the GC, but it will hide the GC latencies > [503.647s][info ][gc,stats ] from the STW pause times. Pacing affects the individual threads, and so it would also be > [503.647s][info ][gc,stats ] invisible to the usual profiling tools, but would add up to end-to-end application latency. > [503.647s][info ][gc,stats ] Raise max pacing delay with care. > [503.647s][info ][gc,stats ] > [503.647s][info ][gc,stats ] Actual pacing delays histogram: > [503.647s][info ][gc,stats ] > [503.647s][info ][gc,stats ] From - To Count > [503.647s][info ][gc,stats ] 1 ms - 2 ms: 171 > [503.647s][info ][gc,stats ] 2 ms - 4 ms: 166 > [503.647s][info ][gc,stats ] 4 ms - 8 ms: 37 > [503.647s][info ][gc,stats ] 8 ms - 16 ms: 1820 > [503.647s][info ][gc,stats ] 16 ms - 32 ms: 24 > [503.647s][info ][gc,stats ] 32 ms - 64 ms: 0 > [503.647s][info ][gc,stats ] 64 ms - 128 ms: 0 > [503.647s][info ][gc,stats ] 128 ms - 256 ms: 0 > [503.647s][info ][gc,stats ] 256 ms - 512 ms: 1 > [503.647s][info ][gc,stats ] > [503.647s][info ][gc,stats ] > [503.647s][info ][gc,stats ] > [503.647s][info ][gc,stats ] Allocation tracing is disabled, use -XX:+ShenandoahAllocationTrace to enable. > ================== > > If you are interested in experiments with some concrete settings or more statistics, don?t hesitate to ask. Running experiments is extremely easy now, when the application is JDK11 ready. > P. > >> On 9 May 2018, at 22:27, Roman Kennke wrote: >> >> Hi Petr, >> >> thanks for running the experiments with newer builds again. >> >> I guess the class unloading problem can currently only be 'solved' by >> disabling it with -XX:ShenandoahUnloadClassesFrequency=0, which should >> be ok if your application doesn't use much classloaders. However, be >> aware that app servers then to make fairly heavy use of classloaders. >> And then there is also anonymous classes (and related stuff like >> lambdas) which are not obvious but also put pressure on the class unloading. >> >> If it is possible at all for you to run with JDK10 or JDK11, you might >> want to try the latest build of that: >> >> https://builds.shipilev.net/openjdk-shenandoah-jdk/ >> >> and use the traversal heuristics: -XX:ShenandoahGCHeuristics=traversal >> >> that might solve the tightly spaced pauses problem. Explanation: >> Traversal mode only has one concurrent phase to do all of >> marking+evacuation+updating-referenes, book-ended by a pause at each >> end. Classic Shenandoah has 3 concurrent phases, with 4 pauses in total, >> and in your workload it seems that two of the 3 phases are really short, >> and that's why you see the 'STW storm' (nice term!) We shall look into >> improving heuristics to avoid that, e.g. by folding the concurrent >> phases into a single pause if expected concurrent work is too little. >> >> Cheers, Roman >> >> >>> I have tried again with build 25.71-b228 >>> >>> This build seems like an improvement over the one I used before. >>> Just by glancing into the logs it seems that GC pauses got smaller. >>> >>> About the 2 observations I had in previous email: >>> 1) Class unloading >>> Every fifth ShenandoahFinalMarkStartEvac pauses is longer (around 14ms) compared to the ones when it does not try to unload classes (7-8ms). >>> As promised, it really says that it tries to unload the classes now, so the longer pause can be associated with it: >>> >>> Concurrent marking triggered. Free: 2249M, Free Threshold: 2252M; Allocated: 18009M, Alloc Threshold: 0M >>> Free set: Used: 17810M of 20060M, Regions: 298 mutator, 0 collector >>> Free set: Mutator view: Max regular: 8192K, Max humongous: 2048000K, External frag: 12%, Internal frag: 5% >>> Free set: Collector view: Max regular: 0K >>> Application time: 8.4427237 seconds >>> [Pause Init Mark (unload classes)Pacer for Mark. Used: 18226M, Free: 2249M, Non-Taxable: 224M, Alloc Tax Rate: 29.7x >>> , 3.064 ms] >>> vmop [threads: total initially_running wait_to_block] [time: spin block sync cleanup vmop] page_trap_count >>> 1507.865: ShenandoahInitMark [ 1074 0 0 ] [ 0 0 0 1 3 ] 0 >>> Total time for which application threads were stopped: 0.0054101 seconds, Stopping threads took: 0.0004040 seconds >>> [Concurrent marking (unload classes) 17G->17G(20G), 33.855 ms] >>> Application time: 0.0344424 seconds >>> [Pause Final Mark (unload classes)Adaptive CSet Selection. Target Free: 3276M, Actual Free: 17876M, Target CSet: [0M, 13407M] >>> Collectable Garbage: 2099M (11% of total), 3M CSet, 263 CSet regions >>> Immediate Garbage: 15868M (87% of total), 1984 regions >>> Free: 18046M, Regions: 2271 mutator, 0 collector >>> Pacer for Evacuation. CSet: 3M, Free: 18046M, Non-Taxable: 1804M, Alloc Tax Rate: 1.1x >>> , 11.950 ms] >>> vmop [threads: total initially_running wait_to_block] [time: spin block sync cleanup vmop] page_trap_count >>> 1507.905: ShenandoahFinalMarkStartEvac [ 1074 1 4 ] [ 0 0 0 1 11 ] 0 >>> Total time for which application threads were stopped: 0.0146809 seconds, Stopping threads took: 0.0006311 seconds >>> [Concurrent cleanup 17G->2442M(20G), 0.566 ms] >>> [Concurrent evacuation 2445M->2464M(20G), 3.280 ms] >>> >>> 2) Too closely spaced STW pauses >>> It is the same story as before. This actually got worse It seems that Shenandoah is doing too well on strongly generational workloads like my application is doing (when application-scoped objects are created at the beginning and almost everything created after that is request scoped). This is very extreme with default settings. The JVM takes 13 concurrent threads on the test machine and then the log is full of pathological situations like this: >>> >>> 1431.134: ShenandoahInitMark [ 1074 0 1 ] [ 0 0 0 1 2 ] 0 >>> Total time for which application threads were stopped: 0.0052016 seconds, Stopping threads took: 0.0004466 seconds >>> [Concurrent marking (process refs) 17G->17G(20G), 32.542 ms] >>> [Concurrent precleaning 17G->17G(20G), 2.180 ms] >>> Application time: 0.0367779 seconds >>> [Pause Final Mark (process refs)Adaptive CSet Selection. Target Free: 3276M, Actual Free: 18102M, Target CSet: [0M, 13576M] >>> Collectable Garbage: 1915M (10% of total), 9M CSet, 241 CSet regions >>> Immediate Garbage: 16078M (88% of total), 2011 regions >>> Free: 18253M, Regions: 2296 mutator, 0 collector >>> Pacer for Evacuation. CSet: 9M, Free: 18253M, Non-Taxable: 1825M, Alloc Tax Rate: 1.1x >>> , 4.711 ms] >>> vmop [threads: total initially_running wait_to_block] [time: spin block sync cleanup vmop] page_trap_count >>> 1431.176: ShenandoahFinalMarkStartEvac [ 1074 4 0 ] [ 0 0 0 1 4 ] 0 >>> Total time for which application threads were stopped: 0.0073044 seconds, Stopping threads took: 0.0006198 seconds >>> [Concurrent cleanup 17G->2232M(20G), 0.627 ms] >>> [Concurrent evacuation 2232M->2274M(20G), 3.539 ms] >>> Application time: 0.0043597 seconds >>> [Pause Init Update RefsPacer for Update-Refs. Used: 2274M, Free: 18202M, Non-Taxable: 1820M, Alloc Tax Rate: 1.1x >>> , 0.272 ms] >>> vmop [threads: total initially_running wait_to_block] [time: spin block sync cleanup vmop] page_trap_count >>> 1431.188: ShenandoahInitUpdateRefs [ 1074 0 1 ] [ 0 0 0 2 0 ] 0 >>> Total time for which application threads were stopped: 0.0029428 seconds, Stopping threads took: 0.0003774 seconds >>> [Concurrent update references 2274M->2343M(20G), 29.363 ms] >>> Application time: 0.0294687 seconds >>> [Pause Final Update RefsFree: 20060M, Regions: 2524 mutator, 0 collector >>> , 1.745 ms] >>> vmop [threads: total initially_running wait_to_block] [time: spin block sync cleanup vmop] page_trap_count >>> 1431.221: ShenandoahFinalUpdateRefs [ 1074 0 1 ] [ 0 0 0 2 1 ] 0 >>> Total time for which application threads were stopped: 0.0048456 seconds, Stopping threads took: 0.0005142 seconds >>> [Concurrent cleanup 2344M->420M(20G), 1.251 ms] >>> >>> The effect on the request tail latency observed by the test client during such a STW storm is worse than one larger pause done by G1. >>> Again setting Concurrent threads to 1 helps a lot, but even with that especially ShenandoahFinalMarkStartEvac is often so short, that it its STW pause almost joins with the next pause: >>> 958.586: ShenandoahInitMark [ 1075 0 0 ] [ 0 0 0 1 2 ] 0 >>> Total time for which application threads were stopped: 0.0049878 seconds, Stopping threads took: 0.0004109 seconds >>> [Concurrent marking 17G->17G(20G), 94.828 ms] >>> Application time: 0.0949659 seconds >>> [Pause Final MarkAdaptive CSet Selection. Target Free: 3276M, Actual Free: 18423M, Target CSet: [0M, 13817M] >>> Collectable Garbage: 1480M (8% of total), 3M CSet, 186 CSet regions >>> Immediate Garbage: 16511M (90% of total), 2064 regions >>> Free: 18597M, Regions: 2343 mutator, 0 collector >>> Pacer for Evacuation. CSet: 3M, Free: 18597M, Non-Taxable: 1859M, Alloc Tax Rate: 1.1x >>> , 5.164 ms] >>> vmop [threads: total initially_running wait_to_block] [time: spin block sync cleanup vmop] page_trap_count >>> 958.686: ShenandoahFinalMarkStartEvac [ 1075 0 0 ] [ 0 0 0 1 5 ] 0 >>> Total time for which application threads were stopped: 0.0076722 seconds, Stopping threads took: 0.0004436 seconds >>> [Concurrent cleanup 17G->1896M(20G), 0.684 ms] >>> [Concurrent evacuation 1896M->1948M(20G), 7.096 ms] >>> Application time: 0.0081824 seconds >>> [Pause Init Update RefsPacer for Update-Refs. Used: 1948M, Free: 18526M, Non-Taxable: 1852M, Alloc Tax Rate: 1.1x >>> , 0.290 ms] >>> vmop [threads: total initially_running wait_to_block] [time: spin block sync cleanup vmop] page_trap_count >>> 958.702: ShenandoahInitUpdateRefs [ 1075 0 0 ] [ 0 0 0 1 0 ] 0 >>> Total time for which application threads were stopped: 0.0027895 seconds, Stopping threads took: 0.0004562 seconds >>> [Concurrent update references 1948M->2170M(20G), 131.651 ms] >>> Application time: 0.1317581 seconds >>> [Pause Final Update RefsFree: 19793M, Regions: 2499 mutator, 0 collector >>> , 1.593 ms] >>> vmop [threads: total initially_running wait_to_block] [time: spin block sync cleanup vmop] page_trap_count >>> 958.836: ShenandoahFinalUpdateRefs [ 1075 0 0 ] [ 0 0 0 1 1 ] 0 >>> Total time for which application threads were stopped: 0.0039250 seconds, Stopping threads took: 0.0004161 seconds >>> [Concurrent cleanup 2170M->704M(20G), 4.958 ms] >>> >>> >>> >>> If you need some more statistics or rerunning the workload with different setting, don?t hesitate to ask. >>> >>> >>> Petr >>> >>> >>> >>>> On 9 May 2018, at 09:36, Aleksey Shipilev wrote: >>>> >>>> On 05/09/2018 07:53 AM, Roman Kennke wrote: >>>>> Would it be possible to run the same experiments with a newer build, >>>>> e.g. one from here: >>>>> >>>>> https://builds.shipilev.net/ >>>> >>>> More precisely, this one for 8u: >>>> https://builds.shipilev.net/openjdk-shenandoah-jdk8/ >>>> >>>> >>>>>> I would suggest mentioning somewhere in the user guide the fact, that the class unloading >>>>>> feature can significantly prolong GC pauses. Also the GC logging could mention that the class >>>>>> unloading is going on (yes, you can see it with class unloading logging on, but most people >>>>>> usually don?t have it on, when trying to fix GC issues). >>>> It does mention it in recent builds, like this: >>>> >>>> [Pause Init Mark (unload classes), 3.463 ms] >>>> [Concurrent marking (unload classes) 557M->557M(8192M), 53.294 ms] >>>> [Pause Final Mark (unload classes), 15.750 ms] >>>> [Concurrent cleanup 557M->543M(8192M), 0.288 ms] >>>> >>>> Thanks, >>>> -Aleksey >>>> >>> >> >> >