RFR(M): 8220089: G1 wastes a significant amount of space in survivor regions

sangheon.kim at oracle.com sangheon.kim at oracle.com
Tue Apr 30 06:06:48 UTC 2019


Hi all,

I got some comments from Thomas Schatzl, mostly about comment and assert 
changes. He also suggested to investigate combining current 2 steps of 
handling retaining survivor region into 1 step, so I filed JDK-8223106.

Webrev:
http://cr.openjdk.java.net/~sangheki/8220089/webrev.2/
http://cr.openjdk.java.net/~sangheki/8220089/webrev.2_inc/
Testing: hs-tier1

Thanks,
Sangheon


On 4/9/19 9:48 PM, sangheon.kim at oracle.com wrote:
> Hi all,
>
> Please resume the review.
> The review for the blocking issue, JDK-8218049 is finished/pushed.
>
> Previously I requested to hold the review because of JDK-8218049 which 
> addresses the problem of inconsistent data between MemoryUsage.used()  
> and actual used bytes. This CR - 8220089 would change the number of 
> survivor and eden regions which is related to JDK-8218049.
>
> webrev.1 includes:
> 1) JDK-8218049 related changes.
>    - Changed to minimize direct use of G1EdenRegions and 
> G1SurvivorRegions. Instead changed to use 
> G1CollectedHeap::eden_regions_count() and 
> G1CollectedHeap::survivor_regions_count() which reflect the retained 
> region.  G1EdenRegions::length() and G1SurvivorRegions::length() 
> returns only current region count.
> 2) Minor refactoring such as renaming methods and updating comments.
>
> http://cr.openjdk.java.net/~sangheki/8220089/webrev.1
> http://cr.openjdk.java.net/~sangheki/8220089/webrev.1_inc
>
> Testing: hs-tier1 ~ 5, some benchmark tests(specjbb2015, 2005 and 
> specjvm2008) shows no significant difference.
>
> Thanks,
> Sangheon
>
>
> On 3/28/19 12:51 PM, sangheon.kim at oracle.com wrote:
>> Hi all,
>>
>> Please hold reviewing this.
>>
>> During offline discussion with Thomas, he found a problem with 
>> MemoryMXBeans. As proposed patch is changing survivor region to 
>> mutator region, used bytes as survivor region will not count the 
>> retained survivor region. This problem will be addressed by 
>> JDK-8218049 but as this patch also would be affected, I propose to 
>> hold reviewing this.
>>
>> Thanks,
>> Sangheon
>>
>>
>> On 3/27/19 10:49 PM, sangheon.kim at oracle.com wrote:
>>> Hi all,
>>>
>>> Can I have some reviews for the patch that changes to reuse survivor 
>>> region as mutator region?
>>>
>>> Currently survivor region is released at the end of gc and then 
>>> added to the next collection set. This means there would be waste if 
>>> the survivor region has enough free space. As the survivor regions 
>>> are converted to eden at the start of gc, reusing the *last* 
>>> survivor region as a mutator region would maximize the use of heap 
>>> region. This patch suggests to reuse the survivor region as 
>>> described if the remaining free space satisfies a minimum 
>>> threshold(currently, larger than or equal to minimum TLAB).
>>>
>>> Some benchmarks(specjbb2015, specjbb2005, specjvm2008) that I ran 
>>> didn't have noticeable improvement. However, I think this change 
>>> would benefit more with NUMA implementation because the NUMA 
>>> implementation manages survivor region per NUMA node. i.e. more 
>>> wastes on multiple node system.
>>>
>>> CR: https://bugs.openjdk.java.net/browse/JDK-8220089
>>> webrev: http://cr.openjdk.java.net/~sangheki/8220089/webrev.0
>>>              (based on JDK-8218668 webrev.1 which is under review now)
>>> Testing: hs-tier1 ~ 5
>>>
>>> Thanks,
>>> Sangheon
>>
>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mail.openjdk.org/pipermail/hotspot-gc-dev/attachments/20190429/aaba1cfb/attachment.htm>


More information about the hotspot-gc-dev mailing list