diff --git a/src/hotspot/share/gc/g1/g1CollectedHeap.cpp b/src/hotspot/share/gc/g1/g1CollectedHeap.cpp index fa92c72ca46..0d651f7340e 100644 --- a/src/hotspot/share/gc/g1/g1CollectedHeap.cpp +++ b/src/hotspot/share/gc/g1/g1CollectedHeap.cpp @@ -2558,16 +2558,17 @@ bool G1CollectedHeap::print_location(outputStream* st, void* addr) const { G1HeapSummary G1CollectedHeap::create_g1_heap_summary() { - size_t eden_used_bytes = _eden.used_bytes(); - size_t survivor_used_bytes = _survivor.used_bytes(); + size_t eden_used_bytes = _monitoring_support->eden_space_used(); + size_t survivor_used_bytes = _monitoring_support->survivor_space_used(); + size_t old_gen_used_bytes = _monitoring_support->old_gen_used(); size_t heap_used = Heap_lock->owned_by_self() ? used() : used_unlocked(); size_t eden_capacity_bytes = (policy()->young_list_target_length() * HeapRegion::GrainBytes) - survivor_used_bytes; VirtualSpaceSummary heap_summary = create_heap_space_summary(); - return G1HeapSummary(heap_summary, heap_used, eden_used_bytes, - eden_capacity_bytes, survivor_used_bytes, num_regions()); + return G1HeapSummary(heap_summary, heap_used, eden_used_bytes, eden_capacity_bytes, + survivor_used_bytes, old_gen_used_bytes, num_regions()); } G1EvacSummary G1CollectedHeap::create_g1_evac_summary(G1EvacStats* stats) { diff --git a/src/hotspot/share/gc/shared/gcHeapSummary.hpp b/src/hotspot/share/gc/shared/gcHeapSummary.hpp index c0ed793fb67..6f72ec51b60 100644 --- a/src/hotspot/share/gc/shared/gcHeapSummary.hpp +++ b/src/hotspot/share/gc/shared/gcHeapSummary.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2012, 2019, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2012, 2022, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -117,13 +117,15 @@ class G1HeapSummary : public GCHeapSummary { size_t _edenUsed; size_t _edenCapacity; size_t _survivorUsed; + size_t _oldGenUsed; uint _numberOfRegions; public: - G1HeapSummary(VirtualSpaceSummary& heap_space, size_t heap_used, size_t edenUsed, size_t edenCapacity, size_t survivorUsed, uint numberOfRegions) : - GCHeapSummary(heap_space, heap_used), _edenUsed(edenUsed), _edenCapacity(edenCapacity), _survivorUsed(survivorUsed), _numberOfRegions(numberOfRegions) { } + G1HeapSummary(VirtualSpaceSummary& heap_space, size_t heap_used, size_t edenUsed, size_t edenCapacity, size_t survivorUsed, size_t oldGenUsed, uint numberOfRegions) : + GCHeapSummary(heap_space, heap_used), _edenUsed(edenUsed), _edenCapacity(edenCapacity), _survivorUsed(survivorUsed), _oldGenUsed(oldGenUsed), _numberOfRegions(numberOfRegions) { } const size_t edenUsed() const { return _edenUsed; } const size_t edenCapacity() const { return _edenCapacity; } const size_t survivorUsed() const { return _survivorUsed; } + const size_t oldGenUsed() const { return _oldGenUsed; } const uint numberOfRegions() const { return _numberOfRegions; } virtual void accept(GCHeapSummaryVisitor* visitor) const { diff --git a/src/hotspot/share/gc/shared/gcTraceSend.cpp b/src/hotspot/share/gc/shared/gcTraceSend.cpp index 1cbf1f6fdb0..d7117ffbb40 100644 --- a/src/hotspot/share/gc/shared/gcTraceSend.cpp +++ b/src/hotspot/share/gc/shared/gcTraceSend.cpp @@ -244,6 +244,7 @@ class GCHeapSummaryEventSender : public GCHeapSummaryVisitor { e.set_edenUsedSize(g1_heap_summary->edenUsed()); e.set_edenTotalSize(g1_heap_summary->edenCapacity()); e.set_survivorUsedSize(g1_heap_summary->survivorUsed()); + e.set_oldGenUsedSize(g1_heap_summary->oldGenUsed()); e.set_numberOfRegions(g1_heap_summary->numberOfRegions()); e.commit(); } diff --git a/src/hotspot/share/jfr/metadata/metadata.xml b/src/hotspot/share/jfr/metadata/metadata.xml index 017c33a0857..841ddca0de9 100644 --- a/src/hotspot/share/jfr/metadata/metadata.xml +++ b/src/hotspot/share/jfr/metadata/metadata.xml @@ -329,6 +329,7 @@ +