RFR(S): 7068240: G1: Long "parallel other time" and "ext root scanning" when running specific benchmark

Y. S. Ramakrishna y.s.ramakrishna at oracle.com
Thu Jul 21 00:33:33 UTC 2011


Good catch. The changes look good.

-- ramki

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/
> 
> Description:
> 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.
> 
> Thanks,
> 
> JohnC



More information about the hotspot-gc-dev mailing list