src/share/vm/memory/metaspaceTracer.cpp
Print this page
rev 6083 : 8036699: Add trace event when a metaspace allocation fails
rev 6084 : 8036699: webrev.00 -> webrev.01
@@ -21,10 +21,11 @@
* questions.
*
*/
#include "precompiled.hpp"
+#include "classfile/classLoaderData.hpp"
#include "memory/metaspaceTracer.hpp"
#include "trace/tracing.hpp"
#include "trace/traceBackend.hpp"
void MetaspaceTracer::report_gc_threshold(size_t old_val,
@@ -36,5 +37,30 @@
event.set_newValue(new_val);
event.set_updater((u1)updater);
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();
+ }
+}