RFR(S): 8230422: Convert uninterruptible os::sleep calls to os::naked_short_sleep

Aleksey Shipilev shade at redhat.com
Fri Sep 6 13:33:45 UTC 2019

On 9/6/19 2:42 PM, David Holmes wrote:
> On 6/09/2019 9:16 pm, Aleksey Shipilev wrote:
>> On 9/4/19 11:39 AM, David Holmes wrote:
>>> I'd appreciate it if someone involved with Shenandoah can check the one change in that code.
>> src/hotspot/share/gc/shenandoah/shenandoahPacer.cpp:
>> -    os::sleep(Thread::current(), cur, true);
>> +    os::sleep(JavaThread::current(), cur);
>> Since os::sleep keeps participating in safepoints ("interruptible = true") after this change, this
>> is fine.
> Thanks Aleksey! My only concern here was whether the code was obviously always executed by a
> JavaThread (even though the interruptible=true implies that).

Yes, pacer should be called only on JavaThread (mutator) allocation path. If not, that's the problem
with Shenandoah, and should be fixed there. The patch passes at least hotspot_gc_shenandoah, so
there is no evidence anything dodgy is happening there yet.


More information about the hotspot-dev mailing list