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

Jon Masamitsu jon.masamitsu at oracle.com
Fri Jul 29 17:48:21 UTC 2011


Looks good. Ship it.


On 7/29/2011 10:01 AM, John Cuthbertson wrote:
> Hi Everyone,
> I'm still looking for another review of this webrev.
> Thanks,
> JohnC
> 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