RFR(S): 7068240: G1: Long "parallel other time" and "ext root scanning" when running specific benchmark
john.cuthbertson at oracle.com
Fri Jul 29 17:01:53 UTC 2011
I'm still looking for another review of this webrev.
On 07/20/11 15:45, John Cuthbertson wrote:
> Hi Everyone,
> Can I have a couple of volunteers look over these changes? The webrev
> can be found at: http://cr.openjdk.java.net/~johnc/7068240/webrev.0/
> When running a specific benchmark, it was noticed that the "ext root
> scanning" time was significantly longer for one thread than the others
> - in a good number of the evacuation pauses. Some of these long times
> were caused by the stack depth on an application thread but others
> were caused by the scanning of the reference processor's discovered
> lists. Furthermore the scanning of the discovered lists was taking
> place after RSet updating and scanning, negating any stealing that
> might take place in these parts, and causing longer termination times.
> Also the scan closures were applied directly to the discovered lists
> rather than a BufferingOopClosure being applied. As a result, if any
> copying took place, the time for that copying was being attributed to
> ext. root scanning rather than "object copying".
> Additionally I also removed a couple statistic variables from
> G1CollectorPolicy that were not thread-local but being updated and
> (overwritten) by the parallel worker threads. The only place where
> these statistic variables were being used was in an instrumentation
> block that was executed when G1PolicyVerbose was set appropriately.
> Testing: gc test suite and jprt.
More information about the hotspot-gc-dev