RFR: 8210064: ZGC: Introduce ZConcurrentRootsIterator for scanning a subset of strong IN_NATIVE roots concurrently

Erik Österlund erik.osterlund at oracle.com
Fri Aug 31 08:37:00 UTC 2018


Hi Per,

On 2018-08-31 09:57, Per Liden wrote:
> Hi Erik,
>
> On 08/30/2018 10:46 AM, Erik Österlund wrote:
>> Hi,
>>
>> We now have enough load barriers to support scanning of CLDs and JNI 
>> handles concurrently. I propose to do that and move these root sets 
>> out from ZRootsIterator, and hence the GC pause. They will be scanned 
>> during concurrent marking (and heap iteration), but no longer during 
>> relocation.
>>
>> I still perform ClassLoaderDataGraph::clear_claimed_marks() in the 
>> pause because it seems cheap. But it can be moved out of the pause 
>> when Coleen gets her new cool CLDG lock in.
>>
>> Webrev:
>> http://cr.openjdk.java.net/~eosterlund/8210064/webrev.00/
>
> I have some minor requests. Instead of listing them all, I attached a 
> patch which addresses those.
>
> The main thing is that I don't think ZDriver should know about 
> "concurrent roots", just that it's doing "mark" or "mark continue", so 
> I suggest we turn that into a "bool initial" argument to mark() 
> instead of exposing a mark_concurrent_roots() function.

Sure, that makes sense.

Thanks for the review!

/Erik

> The other things are minor style adjustments.
> /Per
>
>>
>> Bug:
>> https://bugs.openjdk.java.net/browse/JDK-8210064
>>
>> Tested through hs-tier1-3.
>>
>> Thanks,
>> /Erik




More information about the hotspot-gc-dev mailing list