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 10:23:46 UTC 2018
On 09/04/2018 12:17 PM, Erik Österlund wrote:
> Hi Per,
>
> On 2018-09-04 11:47, Per Liden wrote:
>> 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.
>
> Thanks for the review. Unfortunately it looks like I can't express the
> strong one with the weak one as it has early exit code, and I need to
> change the weak one to return a boolean to make that work. Oh well.
Ah, you're right of course. Ignore that.
/Per
>
> Thanks,
> /Erik
>
>> /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