src/share/vm/memory/metaspaceTracer.cpp

changeset 6418
bc7714614ad8
parent 6417
daef39043d2c
child 6419
5af31f70a866
     1.1 --- a/src/share/vm/memory/metaspaceTracer.cpp	Fri Mar 21 10:17:47 2014 +0100
     1.2 +++ b/src/share/vm/memory/metaspaceTracer.cpp	Fri Mar 21 10:20:00 2014 +0100
     1.3 @@ -23,6 +23,7 @@
     1.4   */
     1.5  
     1.6  #include "precompiled.hpp"
     1.7 +#include "classfile/classLoaderData.hpp"
     1.8  #include "memory/metaspaceTracer.hpp"
     1.9  #include "trace/tracing.hpp"
    1.10  #include "trace/traceBackend.hpp"
    1.11 @@ -38,3 +39,28 @@
    1.12      event.commit();
    1.13    }
    1.14  }
    1.15 +
    1.16 +void MetaspaceTracer::report_metaspace_allocation_failure(ClassLoaderData *cld,
    1.17 +                                                          size_t word_size,
    1.18 +                                                          MetaspaceObj::Type objtype,
    1.19 +                                                          Metaspace::MetadataType mdtype) const {
    1.20 +  EventMetaspaceAllocationFailure event;
    1.21 +  if (event.should_commit()) {
    1.22 +    if (cld->is_anonymous()) {
    1.23 +      event.set_classLoader(NULL);
    1.24 +      event.set_anonymousClassLoader(true);
    1.25 +    } else {
    1.26 +      if (cld->is_the_null_class_loader_data()) {
    1.27 +        event.set_classLoader((Klass*) NULL);
    1.28 +      } else {
    1.29 +        event.set_classLoader(cld->class_loader()->klass());
    1.30 +      }
    1.31 +      event.set_anonymousClassLoader(false);
    1.32 +    }
    1.33 +
    1.34 +    event.set_size(word_size * BytesPerWord);
    1.35 +    event.set_metadataType((u1) mdtype);
    1.36 +    event.set_metaspaceObjectType((u1) objtype);
    1.37 +    event.commit();
    1.38 +  }
    1.39 +}

mercurial