diff --git a/src/hotspot/share/gc/shenandoah/heuristics/shenandoahGenerationalHeuristics.cpp b/src/hotspot/share/gc/shenandoah/heuristics/shenandoahGenerationalHeuristics.cpp index 757cab8f68682..0568d9b4fff95 100644 --- a/src/hotspot/share/gc/shenandoah/heuristics/shenandoahGenerationalHeuristics.cpp +++ b/src/hotspot/share/gc/shenandoah/heuristics/shenandoahGenerationalHeuristics.cpp @@ -237,7 +237,7 @@ void ShenandoahGenerationalHeuristics::choose_collection_set(ShenandoahCollectio evacInfo.set_regular_promoted_free(regular_regions_promoted_free); evacInfo.set_regions_immediate(immediate_regions); evacInfo.set_immediate_size(immediate_garbage); - evacInfo.set_regions_freed(free_regions); + evacInfo.set_free_regions(free_regions); ShenandoahTracer().report_evacuation_info(&evacInfo); } diff --git a/src/hotspot/share/gc/shenandoah/shenandoahEvacInfo.hpp b/src/hotspot/share/gc/shenandoah/shenandoahEvacInfo.hpp index 5ca657638336d..8069fd13afa60 100644 --- a/src/hotspot/share/gc/shenandoah/shenandoahEvacInfo.hpp +++ b/src/hotspot/share/gc/shenandoah/shenandoahEvacInfo.hpp @@ -35,20 +35,20 @@ class ShenandoahEvacuationInformation : public StackObj { size_t _collected_old; size_t _collected_promoted; size_t _collected_young; + size_t _free_regions; size_t _regions_promoted_humongous; size_t _regions_promoted_regular; size_t _regular_promoted_garbage; size_t _regular_promoted_free; - size_t _regions_freed; size_t _regions_immediate; size_t _immediate_size; public: ShenandoahEvacuationInformation() : _collection_set_regions(0), _collection_set_used_before(0), _collection_set_used_after(0), - _collected_old(0), _collected_promoted(0), _collected_young(0), _regions_promoted_humongous(0), - _regions_promoted_regular(0), _regular_promoted_garbage(0), _regular_promoted_free(0), - _regions_freed(0), _regions_immediate(0), _immediate_size(0) { } + _collected_old(0), _collected_promoted(0), _collected_young(0), _free_regions(0), + _regions_promoted_humongous(0), _regions_promoted_regular(0), _regular_promoted_garbage(0), + _regular_promoted_free(0), _regions_immediate(0), _immediate_size(0) { } void set_collection_set_regions(size_t collection_set_regions) { _collection_set_regions = collection_set_regions; @@ -74,8 +74,8 @@ class ShenandoahEvacuationInformation : public StackObj { _collected_young = collected; } - void set_regions_freed(size_t freed) { - _regions_freed = freed; + void set_free_regions(size_t freed) { + _free_regions = freed; } void set_regions_promoted_humongous(size_t humongous) { @@ -112,7 +112,7 @@ class ShenandoahEvacuationInformation : public StackObj { size_t regions_promoted_regular() { return _regions_promoted_regular; } size_t regular_promoted_garbage() { return _regular_promoted_garbage; } size_t regular_promoted_free() { return _regular_promoted_free; } - size_t regions_freed() { return _regions_freed; } + size_t free_regions() { return _free_regions; } size_t regions_immediate() { return _regions_immediate; } size_t immediate_size() { return _immediate_size; } }; diff --git a/src/hotspot/share/gc/shenandoah/shenandoahTrace.cpp b/src/hotspot/share/gc/shenandoah/shenandoahTrace.cpp index f1afcca34934a..dd153718c9f1c 100644 --- a/src/hotspot/share/gc/shenandoah/shenandoahTrace.cpp +++ b/src/hotspot/share/gc/shenandoah/shenandoahTrace.cpp @@ -44,7 +44,7 @@ void ShenandoahTracer::send_evacuation_info_event(ShenandoahEvacuationInformatio e.set_regionsPromotedRegular(info->regions_promoted_regular()); e.set_regularPromotedGarbage(info->regular_promoted_garbage()); e.set_regularPromotedFree(info->regular_promoted_free()); - e.set_regionsFreed(info->regions_freed()); + e.set_freeRegions(info->free_regions()); e.set_regionsImmediate(info->regions_immediate()); e.set_immediateBytes(info->immediate_size()); diff --git a/src/hotspot/share/jfr/metadata/metadata.xml b/src/hotspot/share/jfr/metadata/metadata.xml index 1b85cb1350cbd..a9eed63f9aad0 100644 --- a/src/hotspot/share/jfr/metadata/metadata.xml +++ b/src/hotspot/share/jfr/metadata/metadata.xml @@ -1220,7 +1220,7 @@ <Field type="ulong" name="regionsPromotedRegular" label="Regions Promoted Regular" /> <Field type="ulong" contentType="bytes" name="regularPromotedGarbage" label="Regular Promoted Garbage" description="Garbage memory of in place promoted regular regions" /> <Field type="ulong" contentType="bytes" name="regularPromotedFree" label="Regular Promoted Free" description="Free memory of in place promoted regular regions" /> - <Field type="ulong" name="regionsFreed" label="Regions Freed" description="Free regions prior to determining collection set" /> + <Field type="ulong" name="freeRegions" label="Free Regions" description="Free regions prior to collection" /> <Field type="ulong" name="regionsImmediate" label="Regions Immediate" /> <Field type="ulong" contentType="bytes" name="immediateBytes" label="Immediate Bytes" /> </Event> diff --git a/test/jdk/jdk/jfr/event/gc/detailed/TestShenandoahEvacuationInformationEvent.java b/test/jdk/jdk/jfr/event/gc/detailed/TestShenandoahEvacuationInformationEvent.java index 4f2334284cc9d..d858198a87ddf 100644 --- a/test/jdk/jdk/jfr/event/gc/detailed/TestShenandoahEvacuationInformationEvent.java +++ b/test/jdk/jdk/jfr/event/gc/detailed/TestShenandoahEvacuationInformationEvent.java @@ -49,6 +49,7 @@ public class TestShenandoahEvacuationInformationEvent { public static void main(String[] args) throws Exception { final long shenandoahHeapRegionSize = 1024 * 1024; + final long shenandoahMaxHeapRegionCount = 64; Recording recording = new Recording(); recording.enable(EVENT_NAME).withThreshold(Duration.ofMillis(0)); recording.start(); @@ -63,14 +64,14 @@ public static void main(String[] args) throws Exception { } System.out.println("Event: " + event); - long setRegions = Events.assertField(event, "cSetRegions").atLeast(0L).getValue(); + long cSetRegions = Events.assertField(event, "cSetRegions").atLeast(0L).getValue(); long setUsedAfter = Events.assertField(event, "cSetUsedAfter").atLeast(0L).getValue(); long setUsedBefore = Events.assertField(event, "cSetUsedBefore").atLeast(setUsedAfter).getValue(); - long regionsFreed = Events.assertField(event, "regionsFreed").atLeast(0L).getValue(); + long freeRegions = Events.assertField(event, "freeRegions").atLeast(0L).getValue(); Events.assertField(event, "collectedOld").atLeast(0L).getValue(); Events.assertField(event, "collectedYoung").atLeast(0L).getValue(); - Asserts.assertGreaterThanOrEqual(setRegions, regionsFreed, "setRegions >= regionsFreed"); + Asserts.assertGreaterThanOrEqual(shenandoahMaxHeapRegionCount, freeRegions + cSetRegions, "numRegions >= freeRegions + cSetRegions"); Asserts.assertGreaterThanOrEqual(shenandoahHeapRegionSize * setRegions, setUsedAfter, "ShenandoahHeapRegionSize * setRegions >= setUsedAfter"); Asserts.assertGreaterThanOrEqual(shenandoahHeapRegionSize * setRegions, setUsedBefore, "ShenandoahHeapRegionSize * setRegions >= setUsedBefore");