diff src/share/vm/memory/metaspaceTracer.cpp @ 17770:5af31f70a866

8036701: Add trace event when a metaspace throws out of memory error Reviewed-by: stefank, mgerdin
author ehelin
date Fri, 21 Mar 2014 10:28:07 +0100
parents bc7714614ad8
children 794399f4f5d9
line wrap: on
line diff
--- a/src/share/vm/memory/metaspaceTracer.cpp	Fri Mar 21 10:20:00 2014 +0100
+++ b/src/share/vm/memory/metaspaceTracer.cpp	Fri Mar 21 10:28:07 2014 +0100
@@ -44,7 +44,22 @@
                                                           size_t word_size,
                                                           MetaspaceObj::Type objtype,
                                                           Metaspace::MetadataType mdtype) const {
-  EventMetaspaceAllocationFailure event;
+  send_allocation_failure_event<EventMetaspaceAllocationFailure>(cld, word_size, objtype, mdtype);
+}
+
+void MetaspaceTracer::report_metadata_oom(ClassLoaderData *cld,
+                                         size_t word_size,
+                                         MetaspaceObj::Type objtype,
+                                         Metaspace::MetadataType mdtype) const {
+  send_allocation_failure_event<EventMetaspaceOOM>(cld, word_size, objtype, mdtype);
+}
+
+template <typename E>
+void MetaspaceTracer::send_allocation_failure_event(ClassLoaderData *cld,
+                                                    size_t word_size,
+                                                    MetaspaceObj::Type objtype,
+                                                    Metaspace::MetadataType mdtype) const {
+  E event;
   if (event.should_commit()) {
     if (cld->is_anonymous()) {
       event.set_classLoader(NULL);