RFR: 8072498: Multi-thread JNI weak reference processing

Kim Barrett kim.barrett at oracle.com
Mon Aug 6 19:56:23 UTC 2018


> On Jul 31, 2018, at 3:23 PM, Kim Barrett <kim.barrett at oracle.com> wrote:
> 
> Please review this change to WeakProcessor to support processing by
> multiple threads in parallel.  This change uses the WorkGang
> infrastructure to provide tasking and thread management.  The number
> of threads to use may be determined ergonomically, based on
> ReferencesPerThread.
> 
> At this time, only G1 makes use of this change.  CMS is deprecated, so
> we're not spending effort on enhancements of it.  ParallelGC doesn't
> use the WorkGang mechanism for parallelism, leading to the same issues
> here as led to not making ParallelGC's j.l.r.Reference processing use
> an ergonomically determined number of threads. We should fix
> JDK-8204951 before trying to make ParallelGC use the parallel form of
> WeakProcessor.
> 
> As part of this, introduced WeakProcessorPhases (to enumerate and
> manipulate the phases) and WeakProcessorPhaseTimes (for collecting and
> reporting timing information for the phases.
> 
> CR:
> https://bugs.openjdk.java.net/browse/JDK-8072498
> 
> Webrev:
> http://cr.openjdk.java.net/~kbarrett/8072498/open.00/
> 
> Testing:
> mach5 tier1-3, hs-tier4-5.
> 
> Local and mach5 testing of TestGCBasherWithG1 and TestSystemGCWithG1,
> with the tests modified to use a smaller non-default value of
> -XX:ReferencesPerThread, to examine the logging output and verify
> multi-threaded execution.

ping?




More information about the hotspot-gc-dev mailing list