Mercurial > hg > graal-jvmci-8
diff src/share/vm/memory/metaspaceTracer.cpp @ 17769:bc7714614ad8
8036699: Add trace event when a metaspace allocation fails
Reviewed-by: jmasa, stefank
author | ehelin |
---|---|
date | Fri, 21 Mar 2014 10:20:00 +0100 |
parents | daef39043d2c |
children | 5af31f70a866 |
line wrap: on
line diff
--- a/src/share/vm/memory/metaspaceTracer.cpp Fri Mar 21 10:17:47 2014 +0100 +++ b/src/share/vm/memory/metaspaceTracer.cpp Fri Mar 21 10:20:00 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(); + } +}