RFR (S): 8150629: Initializing all ParScanThreadStates causes significant unaccounted "Other" times

Jon Masamitsu jon.masamitsu at oracle.com
Thu Feb 25 15:46:29 UTC 2016

Change looks good.


On 2/25/2016 5:35 AM, Thomas Schatzl wrote:
> Hi all,
>    some recent measurements on large # threads and large heap machines
> (like hundreds of threads, and high double-digit GB area) showed that
> initializing the ParScanThreadStates takes a few milliseconds of time
> in the VM thread (which only shows as unaccounted "Other" time).
> This is because the work that needs to be done is O(#threads *
> #size(young gen)), which is just getting worse the larger machines we
> run G1 with.
> The fix pursued in this change is to let the worker threads lazily
> allocate and initialize the PSS instances. The way it is implemented,
> it also allows more dynamic use of PSS instances, i.e. ones that are
> not used for some reason are never allocated, initialized, and later
> merged with the global statistics.
> CR:
> https://bugs.openjdk.java.net/browse/JDK-8150629
> Webrev:
> http://cr.openjdk.java.net/~tschatzl/8150629/webrev
> Testing:
> jprt, local benchmark runs
> Thanks,
>    Thomas

More information about the hotspot-gc-dev mailing list