RFR (S): 8010916: Add tenuring threshold to young garbage collection events
Erik Helin
erik.helin at oracle.com
Mon Apr 1 09:04:08 UTC 2013
Hi all,
this change adds the field "tenuringThreshold" to the
"vm/gc/collector/young_garbage_collection" event.
The code in gcTrace.hpp/cpp have been slightly adjusted to support this.
The hierarchy of tracers is:
G1NewTracer -> YoungGCTracer -> GCTracer
where "->" means "inherits from".
Previously, the method "report_gc_end_impl" was virtual in "GCTracer" to
enable "YoungGCTracer" to send the young GC event when "report_gc_end"
was called on a GCTracer, as in the following:
void GCTracer::report_gc_end(...) {
// do other stuff
report_gc_end_impl(...);
}
void YoungGCTracer::report_gc_end_impl(...) {
// send young gc event here
}
In this change, YoungGCTracer now has a method "report_young_gc_end"
that is virtual and that G1NewTracer overrides. This means that
YoungGCTracer does not need to override the method "report_gc_end_impl"
from GCTracer. This also means that all young collectors now also must
call "report_young_gc_end".
This change was needed, since report_young_gc_end must take the tenuring
threshold as a parameter, something that was not possible to do with
"report_gc_end_impl".
Webrev:
http://cr.openjdk.java.net/~ehelin/8010916/webrev.00/
Bug:
http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=8010916
Testing:
JPRT
Thanks,
Erik
More information about the hotspot-gc-dev
mailing list