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