From a2a64dac1680e97dd9eb511ead951bf1be8121c6 Mon Sep 17 00:00:00 2001 From: Xiaolong Peng Date: Wed, 26 Mar 2025 15:38:16 +0000 Subject: [PATCH] 8352588: GenShen: Enabling JFR asserts when getting GCId Reviewed-by: wkemper, ysr --- src/hotspot/share/gc/shenandoah/shenandoahControlThread.cpp | 5 ++--- .../gc/shenandoah/shenandoahGenerationalControlThread.cpp | 6 ++---- 2 files changed, 4 insertions(+), 7 deletions(-) diff --git a/src/hotspot/share/gc/shenandoah/shenandoahControlThread.cpp b/src/hotspot/share/gc/shenandoah/shenandoahControlThread.cpp index e0a6ff3a3b3..0b20b4ddf9f 100644 --- a/src/hotspot/share/gc/shenandoah/shenandoahControlThread.cpp +++ b/src/hotspot/share/gc/shenandoah/shenandoahControlThread.cpp @@ -135,6 +135,8 @@ void ShenandoahControlThread::run_service() { // GC is starting, bump the internal ID update_gc_id(); + GCIdMark gc_id_mark; + heuristics->cancel_trigger_request(); heap->reset_bytes_allocated_since_gc_start(); @@ -299,7 +301,6 @@ void ShenandoahControlThread::service_concurrent_normal_cycle(GCCause::Cause cau ShenandoahHeap* heap = ShenandoahHeap::heap(); if (check_cancellation_or_degen(ShenandoahGC::_degenerated_outside_cycle)) return; - GCIdMark gc_id_mark; ShenandoahGCSession session(cause, heap->global_generation()); TraceCollectorStats tcs(heap->monitoring_support()->concurrent_collection_counters()); @@ -343,7 +344,6 @@ void ShenandoahControlThread::stop_service() { void ShenandoahControlThread::service_stw_full_cycle(GCCause::Cause cause) { ShenandoahHeap* const heap = ShenandoahHeap::heap(); - GCIdMark gc_id_mark; ShenandoahGCSession session(cause, heap->global_generation()); ShenandoahFullGC gc; @@ -353,7 +353,6 @@ void ShenandoahControlThread::service_stw_full_cycle(GCCause::Cause cause) { void ShenandoahControlThread::service_stw_degenerated_cycle(GCCause::Cause cause, ShenandoahGC::ShenandoahDegenPoint point) { assert (point != ShenandoahGC::_degenerated_unset, "Degenerated point should be set"); ShenandoahHeap* const heap = ShenandoahHeap::heap(); - GCIdMark gc_id_mark; ShenandoahGCSession session(cause, heap->global_generation()); ShenandoahDegenGC gc(point, heap->global_generation()); diff --git a/src/hotspot/share/gc/shenandoah/shenandoahGenerationalControlThread.cpp b/src/hotspot/share/gc/shenandoah/shenandoahGenerationalControlThread.cpp index e8b5bb40f0c..4d291ba50f7 100644 --- a/src/hotspot/share/gc/shenandoah/shenandoahGenerationalControlThread.cpp +++ b/src/hotspot/share/gc/shenandoah/shenandoahGenerationalControlThread.cpp @@ -233,6 +233,8 @@ void ShenandoahGenerationalControlThread::run_gc_cycle(const ShenandoahGCRequest // GC is starting, bump the internal ID update_gc_id(); + GCIdMark gc_id_mark; + _heap->reset_bytes_allocated_since_gc_start(); MetaspaceCombinedStats meta_sizes = MetaspaceUtils::get_combined_statistics(); @@ -263,7 +265,6 @@ void ShenandoahGenerationalControlThread::run_gc_cycle(const ShenandoahGCRequest } case servicing_old: { assert(request.generation->is_old(), "Expected old generation here"); - GCIdMark gc_id_mark; service_concurrent_old_cycle(request); break; } @@ -386,7 +387,6 @@ void ShenandoahGenerationalControlThread::process_phase_timings() const { // +---> Global Degen +--------------------> Full <----+ // void ShenandoahGenerationalControlThread::service_concurrent_normal_cycle(const ShenandoahGCRequest& request) { - GCIdMark gc_id_mark; log_info(gc, ergo)("Start GC cycle (%s)", request.generation->name()); if (request.generation->is_old()) { service_concurrent_old_cycle(request); @@ -621,7 +621,6 @@ bool ShenandoahGenerationalControlThread::check_cancellation_or_degen(Shenandoah } void ShenandoahGenerationalControlThread::service_stw_full_cycle(GCCause::Cause cause) { - GCIdMark gc_id_mark; ShenandoahGCSession session(cause, _heap->global_generation()); maybe_set_aging_cycle(); ShenandoahFullGC gc; @@ -632,7 +631,6 @@ void ShenandoahGenerationalControlThread::service_stw_full_cycle(GCCause::Cause void ShenandoahGenerationalControlThread::service_stw_degenerated_cycle(const ShenandoahGCRequest& request) { assert(_degen_point != ShenandoahGC::_degenerated_unset, "Degenerated point should be set"); - GCIdMark gc_id_mark; ShenandoahGCSession session(request.cause, request.generation); ShenandoahDegenGC gc(_degen_point, request.generation);