RFR(M): 8211425: Allocation of old generation of java heap on alternate memory devices - G1 GC
Stefan Johansson
stefan.johansson at oracle.com
Thu Dec 20 14:42:34 UTC 2018
Hi,
On 2018-12-20 15:21, Stefan Johansson wrote:
> Hi,
>
> On 2018-12-20 08:47, Kharbas, Kishor wrote:
>> Hi Stefan, Sangheon,
>>
>> I have a new webrev -
>> http://cr.openjdk.java.net/~kkharbas/8211425/webrev.16
>> http://cr.openjdk.java.net/~kkharbas/8211425/webrev.15_to_16
> I think the solution to never have the bitmaps uncommitted is acceptable
> but I would like us to clean it up going forward. Please create a RFE
> for adding a better abstraction to avoid having to explicitly call
> commit_and_set_special. Basically we know when we are creating the
> mapper for the bitmaps that they need to be pinned and we should be able
> to pass that in as a argument to the constructor.
>
> Otherwise I think this looks ok.
>
>>
>> 1. It incorporates comment about FormatBuffer and has some alignment
>> changes.
> Thanks.
>
>> 2. Provides fix for the tests which fail when feature is turned on.
>> Comments in heterogeneousHeapRegionManager.cpp:52 and
>> heterogeneousHeapRegionManager.cpp:472 describe them.
> I'm still seeing some tests asserting when running with the feature
> turned on, they all hit the same assert:
> Crash: Internal Error
> ...heterogeneousHeapRegionManager.cpp...assert(total_regions_committed()
> <= max_expandable_length()) failed: must be
>
> Tests:
> vmTestbase/vm/gc/concurrent/lp30yp25rp30mr70st0/TestDescription.java
> vmTestbase/vm/gc/concurrent/lp30yp25rp30mr0st300/TestDescription.java
> vmTestbase/vm/gc/compact/Compact_InternedStrings_NonbranchyTree/TestDescription.java
>
> vmTestbase/gc/lock/jniref/jnireflock01/TestDescription.java
> vmTestbase/gc/lock/jni/jnilock001/TestDescription.java
> vmTestbase/gc/lock/jni/jnilock003/TestDescription.java
>
> I have had a hard time reproducing those locally but managed to get the
> first to fail by setting it to use 12 threads. This has to be added in
> the test file, below is a diff I used to make the test fail more
> frequently:
> ---
> diff --git
> a/test/hotspot/jtreg/vmTestbase/vm/gc/concurrent/lp30yp25rp0mr30st300/TestDescription.java
> b/test/hotspot/jtreg/vmTestbase/vm/gc/concurrent/lp30yp25rp0mr30st300/TestDescription.java
>
> ---
> a/test/hotspot/jtreg/vmTestbase/vm/gc/concurrent/lp30yp25rp0mr30st300/TestDescription.java
>
> +++
> b/test/hotspot/jtreg/vmTestbase/vm/gc/concurrent/lp30yp25rp0mr30st300/TestDescription.java
>
> @@ -41,6 +41,7 @@
> * -mr 30
> * -st 300
> * -ms high
> + * -t 12
> * -gp circularList(high)
> * -gp1 nonbranchyTree(low)
> */
> ---
Realized I pasted the wrong diff, this is the test I'm making fail with
the above change:
vmTestbase/vm/gc/concurrent/lp30yp25rp30mr70st0/TestDescription.java
Cheers,
Stefan
>
> Please look into what the cause for this is.
>
> Cheers,
> Stefan
>
>>
>> I am able to successfully re-run the failed tests. I am re-run the
>> whole test suite, will provide status in the morning PST.
>>
>> Thanks
>> Kishor
>>
>>> -----Original Message-----
>>> From: Stefan Johansson [mailto:stefan.johansson at oracle.com]
>>> Sent: Monday, December 17, 2018 3:06 AM
>>> To: Kharbas, Kishor <kishor.kharbas at intel.com>; sangheon.kim at oracle.com
>>> Cc: 'hotspot-gc-dev at openjdk.java.net' <hotspot-gc-dev at openjdk.java.net>;
>>> 'Hotspot dev runtime' <hotspot-runtime-dev at openjdk.java.net>;
>>> Viswanathan, Sandhya <sandhya.viswanathan at intel.com>
>>> Subject: Re: RFR(M): 8211425: Allocation of old generation of java
>>> heap on
>>> alternate memory devices - G1 GC
>>>
>>> Hi Kishor,
>>>
>>> Thanks for addressing my second to last comment :) Unfortunately the
>>> current patch does not build. Instead of using a temp string and
>>> os::snprintf
>>> you should use FromatBuffer::append with the format string.
>>> I've uploaded a patch fixing this at:
>>> http://cr.openjdk.java.net/~sjohanss/8211425/Final-Comment-G1/
>>>
>>> Please incorporate this into your changeset.
>>>
>>> Thanks,
>>> Stefan
>>>
>>> On 2018-12-15 03:04, Kharbas, Kishor wrote:
>>>> Thanks for the review,
>>>>
>>>> New webrev at - http://cr.openjdk.java.net/~kkharbas/8211425/webrev.15
>>>> http://cr.openjdk.java.net/~kkharbas/8211425/webrev.14_to_15
>>>>
>>>> Regards
>>>> Kishor
>>>>
>>>>> -----Original Message-----
>>>>> From: Stefan Johansson [mailto:stefan.johansson at oracle.com]
>>>>> Sent: Friday, December 14, 2018 2:40 AM
>>>>> To: Kharbas, Kishor <kishor.kharbas at intel.com>;
>>>>> sangheon.kim at oracle.com
>>>>> Cc: 'hotspot-gc-dev at openjdk.java.net'
>>>>> <hotspot-gc-dev at openjdk.java.net>;
>>>>> 'Hotspot dev runtime' <hotspot-runtime-dev at openjdk.java.net>;
>>>>> Viswanathan, Sandhya <sandhya.viswanathan at intel.com>
>>>>> Subject: Re: RFR(M): 8211425: Allocation of old generation of java
>>>>> heap on alternate memory devices - G1 GC
>>>>>
>>>>> Hi Kishor,
>>>>>
>>>>> I have one (maybe last) comment on this and it is basically the same
>>>>> thing as I commented on for Parallel. I think you should use
>>>>> FormatBuffer instead of a raw char buffer in the sizing code.
>>>>>
>>>>> Cheers,
>>>>> Stefan
>>>>>
>>>>> On 2018-12-14 08:54, Kharbas, Kishor wrote:
>>>>>> Hi Sangheon, Stefan,
>>>>>>
>>>>>> I have updated webrev at -
>>>>>> http://cr.openjdk.java.net/~kkharbas/8211425/webrev.14/
>>>>>> http://cr.openjdk.java.net/~kkharbas/8211425/webrev.13_to_14
>>>>>>
>>>>>> This webrev works on the latest comments and has some changes in
>>>>>> young
>>>>> generation sizing logs messages.
>>>>>> I am re-running jtreg tests with this patch.
>>>>>>
>>>>>> Thanks,
>>>>>> Kishor
>>>>>>
More information about the hotspot-gc-dev
mailing list