RFR (L): 8230706: Waiting on completion of strong nmethod processing causes long pause times with G1

Stefan Johansson stefan.johansson at oracle.com
Wed Oct 23 07:05:58 UTC 2019


Hi Thomas,

On 2019-10-22 15:45, Thomas Schatzl wrote:
> Hi Kim,
> 
> On 22.10.19 15:44, Kim Barrett wrote:
>>> On Oct 22, 2019, at 6:13 AM, Thomas Schatzl 
>>> <thomas.schatzl at oracle.com> wrote:
>>>
>>> Hi Kim,
>>>
>>>   thanks a lot for taking the time so quickly.
>>>
>>> On 22.10.19 03:20, Kim Barrett wrote:
>>>>> On Oct 19, 2019, at 9:06 AM, Thomas Schatzl 
>>>>> <thomas.schatzl at oracle.com> wrote:
>>>>>
>>>>> Hi all,
>>>>>
>>>>>   there is a new webrev at
>>>>>
>>>>> http://cr.openjdk.java.net/~tschatzl/8230706/webrev.2/ (full only,
>>>>> there is no point in providing a diff)
>>>>>
>>>>> since I like this solution a lot as it removes a lot of additional
>>>>>>> post-processing.
>>>>> [...]
>>>>>
>>>> I'm glad the new state machine worked out, and allowed the extra task
>>>> to be eliminated. Thanks for going the extra mile with the testing.
>>>> And thanks for turning my pseudo-code into something more readable. My
>>>> comments here mostly suggestions for more of that; I don't think I'd
>>>> want to have to decipher this in 6 months without some helpful
>>>> commentary. :)
>>>
>>> I think I addressed all your comments, and thanks for your 
>>> suggestions - I agree about having this tricky code well documented.
>>>
>>> Changes are currently running through hs-tier1-5 with the changes 
>>> that ease reproduction (the webrev.2.testing changes noted in the 
>>> last email). Since there are no significant code changes apart from 
>>> documentation, I am confident there will be no issues.
>>>
>>> Webrevs:
>>> http://cr.openjdk.java.net/~tschatzl/8230706/webrev.2_to_3/ (diff)
>>> http://cr.openjdk.java.net/~tschatzl/8230706/webrev.3/ (full)

This looks good, and well documented :)

One small thing:
src/hotspot/share/gc/g1/g1SharedClosures.hpp
---
  46     _codeblobs(pss->worker_id(), &_oops, Mark == G1MarkFromRoot) {}

What do you think about adding a helper for Mark == G1MarkFromRoot, 
something like need_strong_processing() and a comment explaining that it 
will be true during initial mark.
---

Thanks,
Stefan

>>>
>>> Thanks,
>>>   Thomas
>>
>> Looks good.
>>
> 
>    thanks for your review.
> 
> As expected, the hs-tier1-5 testing found no issues in the meantime.
> 
> Thanks,
>    Thomas



More information about the hotspot-gc-dev mailing list