--- old/src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.cpp 2014-03-06 11:45:12.521837026 +0100 +++ new/src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.cpp 2014-03-06 11:45:12.417837021 +0100 @@ -2493,10 +2493,25 @@ GenCollectedHeap* gch = GenCollectedHeap::heap(); _last_heap_summary = gch->create_heap_summary(); _last_metaspace_summary = gch->create_metaspace_summary(); + + for (int i = 0; i < Metaspace::MetadataTypeCount; i++) { + Metaspace::MetadataType mdtype = (Metaspace::MetadataType) i; + if (MetaspaceAux::has_chunk_free_list(mdtype)) { + _last_metaspace_free_list_summaries[i] = MetaspaceAux::chunk_free_list_summary(mdtype); + } + } } void CMSCollector::report_heap_summary(GCWhen::Type when) { _gc_tracer_cm->report_gc_heap_summary(when, _last_heap_summary, _last_metaspace_summary); + + for (int i = 0; i < Metaspace::MetadataTypeCount; i++) { + Metaspace::MetadataType mdtype = (Metaspace::MetadataType) i; + if (MetaspaceAux::has_chunk_free_list(mdtype)) { + _gc_tracer_cm->report_metaspace_chunk_free_list_summary(when, mdtype, + _last_metaspace_free_list_summaries[i]); + } + } } void CMSCollector::collect_in_foreground(bool clear_all_soft_refs, GCCause::Cause cause) {