hotspot/src/share/vm/memory/metaspaceTracer.cpp
changeset 23468 6bb416a59349
parent 23465 14790e4d53ec
child 23469 0a4d02776968
--- a/hotspot/src/share/vm/memory/metaspaceTracer.cpp	Tue Mar 18 06:15:45 2014 +0100
+++ b/hotspot/src/share/vm/memory/metaspaceTracer.cpp	Tue Mar 18 07:00:06 2014 +0100
@@ -23,6 +23,7 @@
  */
 
 #include "precompiled.hpp"
+#include "classfile/classLoaderData.hpp"
 #include "memory/metaspaceTracer.hpp"
 #include "trace/tracing.hpp"
 #include "trace/traceBackend.hpp"
@@ -38,3 +39,28 @@
     event.commit();
   }
 }
+
+void MetaspaceTracer::report_metaspace_allocation_failure(ClassLoaderData *cld,
+                                                          size_t word_size,
+                                                          MetaspaceObj::Type objtype,
+                                                          Metaspace::MetadataType mdtype) const {
+  EventMetaspaceAllocationFailure event;
+  if (event.should_commit()) {
+    if (cld->is_anonymous()) {
+      event.set_classLoader(NULL);
+      event.set_anonymousClassLoader(true);
+    } else {
+      if (cld->is_the_null_class_loader_data()) {
+        event.set_classLoader((Klass*) NULL);
+      } else {
+        event.set_classLoader(cld->class_loader()->klass());
+      }
+      event.set_anonymousClassLoader(false);
+    }
+
+    event.set_size(word_size * BytesPerWord);
+    event.set_metadataType((u1) mdtype);
+    event.set_metaspaceObjectType((u1) objtype);
+    event.commit();
+  }
+}