Request for Review (M) - 8150994: UseParallelGC fails with UseDynamicNumberOfGCThreads with specjbb2005
thomas.schatzl at oracle.com
Tue Apr 26 08:12:06 UTC 2016
On Tue, 2016-04-12 at 20:50 -0700, Jon Masamitsu wrote:
> The ParallelGC collector compacts by moving live objects from source
> regions to destination regions. The destination regions are regions
> that have
> been emptied of live objects and the source regions are regions that
> the original locations of the live objects. When a source region is
> it becomes a destination region. At the start of the compaction the
> destination regions are distributed to per thread lists processed by
> the GC
> workers. The original implementation had tasks that drain the
> destination lists and tasks that steal destination regions from other
> GC workers. The draining tasks and stealing tasks shared the per
> lists of destination regions. The bug was that the sharing was not
> synchronized correctly.
> See  for more details.
> The fix is to combine the draining tasks and stealing tasks so that
> sharing of the destination lists is not needed.
>  https://bugs.openjdk.java.net/browse/JDK-8150994
>  http://cr.openjdk.java.net/~jmasa/8150994/webrev.00/
I think this looks good. The unusual qualifier because I am not very
knowledgable about how parallel gc works in that detail.
More information about the hotspot-gc-dev