RFR: 8220795: Introduce TimedYield utility to improve time-to-safepoint on Windows

David Holmes david.holmes at oracle.com
Fri Apr 5 08:49:54 UTC 2019


Hi Robin,

On 5/04/2019 6:05 pm, Robin Westberg wrote:
> Hi all,
> 
> Please review the following change that modifies the way safepointing waits for other threads to stop. As part of JDK-8203469, os::naked_short_nanosleep was used for all platforms. However, on Windows, this function has millisecond granularity which is too coarse and caused performance regressions. Instead, we can take advantage of the fact that Windows can tell us if anyone else is waiting to run on the current cpu. For other platforms the original waiting is used.

Can't you just make the new code the implementation of 
os::naked_short_nanosleep on Windows and avoid adding yet another 
sleep/yield abstraction? If Windows nanosleep only has millisecond 
granularity then it's broken.

Thanks,
David
-----

> Various benchmarks (specjbb2015, specjm2008) show better numbers for Windows and no regressions for Linux.
> 
> Issue: https://bugs.openjdk.java.net/browse/JDK-8220795
> Webrev: http://cr.openjdk.java.net/~rwestberg/8220795/webrev.00/
> Testing: tier1
> 
> Best regards,
> Robin
> 


More information about the hotspot-runtime-dev mailing list