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