Fri, 21 Mar 2014 10:16:35 +0100
8036696: Add metaspace gc threshold to metaspace summary trace event
Reviewed-by: jmasa, stefank, mgerdin
1.1 --- a/src/share/vm/gc_implementation/shared/gcHeapSummary.hpp Mon Mar 24 09:14:14 2014 -0700 1.2 +++ b/src/share/vm/gc_implementation/shared/gcHeapSummary.hpp Fri Mar 21 10:16:35 2014 +0100 1.3 @@ -125,15 +125,17 @@ 1.4 }; 1.5 1.6 class MetaspaceSummary : public StackObj { 1.7 + size_t _capacity_until_GC; 1.8 MetaspaceSizes _meta_space; 1.9 MetaspaceSizes _data_space; 1.10 MetaspaceSizes _class_space; 1.11 1.12 public: 1.13 - MetaspaceSummary() : _meta_space(), _data_space(), _class_space() {} 1.14 - MetaspaceSummary(const MetaspaceSizes& meta_space, const MetaspaceSizes& data_space, const MetaspaceSizes& class_space) : 1.15 - _meta_space(meta_space), _data_space(data_space), _class_space(class_space) { } 1.16 + MetaspaceSummary() : _capacity_until_GC(0), _meta_space(), _data_space(), _class_space() {} 1.17 + MetaspaceSummary(size_t capacity_until_GC, const MetaspaceSizes& meta_space, const MetaspaceSizes& data_space, const MetaspaceSizes& class_space) : 1.18 + _capacity_until_GC(capacity_until_GC), _meta_space(meta_space), _data_space(data_space), _class_space(class_space) { } 1.19 1.20 + size_t capacity_until_GC() const { return _capacity_until_GC; } 1.21 const MetaspaceSizes& meta_space() const { return _meta_space; } 1.22 const MetaspaceSizes& data_space() const { return _data_space; } 1.23 const MetaspaceSizes& class_space() const { return _class_space; }
2.1 --- a/src/share/vm/gc_implementation/shared/gcTraceSend.cpp Mon Mar 24 09:14:14 2014 -0700 2.2 +++ b/src/share/vm/gc_implementation/shared/gcTraceSend.cpp Fri Mar 21 10:16:35 2014 +0100 2.3 @@ -246,6 +246,7 @@ 2.4 if (e.should_commit()) { 2.5 e.set_gcId(_shared_gc_info.id()); 2.6 e.set_when((u1) when); 2.7 + e.set_gcThreshold(meta_space_summary.capacity_until_GC()); 2.8 e.set_metaspace(to_trace_struct(meta_space_summary.meta_space())); 2.9 e.set_dataSpace(to_trace_struct(meta_space_summary.data_space())); 2.10 e.set_classSpace(to_trace_struct(meta_space_summary.class_space()));
3.1 --- a/src/share/vm/gc_interface/collectedHeap.cpp Mon Mar 24 09:14:14 2014 -0700 3.2 +++ b/src/share/vm/gc_interface/collectedHeap.cpp Fri Mar 21 10:16:35 2014 +0100 3.3 @@ -97,7 +97,7 @@ 3.4 MetaspaceAux::allocated_used_bytes(Metaspace::ClassType), 3.5 MetaspaceAux::reserved_bytes(Metaspace::ClassType)); 3.6 3.7 - return MetaspaceSummary(meta_space, data_space, class_space); 3.8 + return MetaspaceSummary(MetaspaceGC::capacity_until_GC(), meta_space, data_space, class_space); 3.9 } 3.10 3.11 void CollectedHeap::print_heap_before_gc() {
4.1 --- a/src/share/vm/trace/trace.xml Mon Mar 24 09:14:14 2014 -0700 4.2 +++ b/src/share/vm/trace/trace.xml Fri Mar 21 10:16:35 2014 +0100 4.3 @@ -193,6 +193,7 @@ 4.4 <event id="MetaspaceSummary" path="vm/gc/heap/metaspace_summary" label="Metaspace Summary" is_instant="true"> 4.5 <value type="UINT" field="gcId" label="GC ID" relation="GC_ID"/> 4.6 <value type="GCWHEN" field="when" label="When" /> 4.7 + <value type="BYTES64" field="gcThreshold" label="GC Threshold" /> 4.8 <structvalue type="MetaspaceSizes" field="metaspace" label="Total"/> 4.9 <structvalue type="MetaspaceSizes" field="dataSpace" label="Data"/> 4.10 <structvalue type="MetaspaceSizes" field="classSpace" label="Class"/>