RFR: 8210064: ZGC: Introduce ZConcurrentRootsIterator for scanning a subset of strong IN_NATIVE roots concurrently
Per Liden
per.liden at oracle.com
Tue Sep 4 09:47:05 UTC 2018
Hi Erik,
On 09/04/2018 11:39 AM, Erik Österlund wrote:
> Hi,
>
> Coleen pushed 8210155 before I pushed this. So now I need to wrap the
> CLDG iterations in a CLDG lock.
> I made a patch that adds the lock and relaxes the locking assert
> appropriately so that the thread invoking the worker gang can take the
> lock. This implies that the worker threads will not own the lock, but
> that is okay.
>
> Incremental:
> http://cr.openjdk.java.net/~eosterlund/8210064/webrev.01_02/
>
> Full:
> http://cr.openjdk.java.net/~eosterlund/8210064/webrev.02/
Looks good. Just one small thing. It seems the old
assert_locked_or_safepoint() can now be expressed as
assert_locked_or_safepoint_weak() plus some extra conditions.
/Per
>
> Thanks,
> /Erik
>
> On 2018-08-31 10:37, Erik Österlund wrote:
>> 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