RFR (S): 7129271 G1: Interference from multiple threads in PrintGC/PrintGCDetails output

John Cuthbertson john.cuthbertson at oracle.com
Thu Jan 12 19:28:49 UTC 2012


Hi Everyone,

Can I have a couple of volunteers review the changes for this CR? The 
webrev can be found at: http://cr.openjdk.java.net/~johnc/7129271/webrev.0/

The issue was that the when PrintGC or PrintGCDetails was enabled, 
during an initial pause, the "concurrent-mark-start" message from the 
ConcurrentMark thread was interfering with the output (by the VM thread) 
from the GC pause. This was adding a randomness and irregularity to the 
output that was making it difficult to parse. It was also seen more 
frequently when the GC logging output was directed to a file rather than 
stdout.

The solution is to move the code that signals the Concurrent Mark thread 
to after when the output from the GC pause is complete.

In the webrev, please ignore the counts of the number of lines changed. 
I added an inner scope and so indented a bunch of code which I think has 
confused the webrev tool. Fortunately the actual web diffs seem to have 
not included the extra whitespace.

Testing: the GC test suite (with a low marking threshold - 2% to create 
lots of marking cycles)

Thanks,

JohnC





More information about the hotspot-gc-dev mailing list