src/share/vm/gc_interface/collectedHeap.cpp

Print this page
rev 6072 : 8036703: Add trace event with statistics for the metaspace chunk free lists

@@ -126,14 +126,27 @@
 
 void CollectedHeap::unregister_nmethod(nmethod* nm) {
   assert_locked_or_safepoint(CodeCache_lock);
 }
 
+void CollectedHeap::trace_metaspace_chunk_free_list(GCWhen::Type when, GCTracer* gc_tracer) {
+  MetaspaceChunkFreeListSummary chunk_free_list_summary;
+  for (int i = 0; i < Metaspace::MetadataTypeCount; i++) {
+    Metaspace::MetadataType mdtype = (Metaspace::MetadataType) i;
+    if (MetaspaceAux::has_chunk_free_list(mdtype)) {
+      gc_tracer->report_metaspace_chunk_free_list_summary(when, mdtype,
+        MetaspaceAux::chunk_free_list_summary(mdtype));
+    }
+  }
+}
+
 void CollectedHeap::trace_heap(GCWhen::Type when, GCTracer* gc_tracer) {
   const GCHeapSummary& heap_summary = create_heap_summary();
   const MetaspaceSummary& metaspace_summary = create_metaspace_summary();
   gc_tracer->report_gc_heap_summary(when, heap_summary, metaspace_summary);
+
+  trace_metaspace_chunk_free_list(when, gc_tracer);
 }
 
 void CollectedHeap::trace_heap_before_gc(GCTracer* gc_tracer) {
   trace_heap(GCWhen::BeforeGC, gc_tracer);
 }