[16] RFR: 8247179: Mechanism for VM operations to not take part in safepoint coalescing
David Holmes
david.holmes at oracle.com
Tue Jun 23 04:45:12 UTC 2020
Hi Erik,
On 23/06/2020 1:16 am, Erik Österlund wrote:
> Hi,
>
> An alternative approach which I am also okay with, is to remove
> safepoint coalescing all together. It's an optimization opportunity that
> almost never kicks in, especially after biased locking has been fixed to
> use handshakes (and soon removed). Yet it has caused several bugs over
> the years where assumptions break when operations are coalesced once in
> a blue moon.
>
> Patch that removes safepoint coalescing instead:
> http://cr.openjdk.java.net/~eosterlund/8247179/webrev.01/
This looks much simpler and cleaner. I added that version of the
coalescing code back in 2006 (under 6409450). :)
Just out of interest I ran some tests to see if we presently encounter
an actual queue of safepoint VM operations. It does still happen but may
be an artefact of the tests involved e.g.
- multiple DeoptimizeAll with DeoptimizeALot
- multiple SuspendThread in a handshake suspend test
but neither of these are a concern.
Thanks,
David
-----
> Thanks,
> /Erik
>
> On 2020-06-12 09:41, Erik Österlund wrote:
>> Hi,
>>
>> When we have a chain of safepoint operations, we coalesce them to run
>> in a single safepoint operation.
>> Today that is fine, but in the near future, there will be a need for
>> certain safepoint operations (my GC safepoints) to not be coalesced to
>> run together with other safepoint operations.
>> The reason relates to concurrent stack scanning, and there are more
>> details about the rationale in the bug comments.
>>
>> I also cleaned up the nested looping when evaluating VM operations in
>> safepoints, to be a single loop. I found it unnecessarily hard to deal
>> with the nested loop logic.
>>
>> Bug:
>> https://bugs.openjdk.java.net/browse/JDK-8247179
>>
>> Webrev:
>> http://cr.openjdk.java.net/~eosterlund/8247179/webrev.00/
>>
>> Thanks,
>> /Erik
>
More information about the hotspot-runtime-dev
mailing list