From b270f30d101432574bfced045241e134ce4608f2 Mon Sep 17 00:00:00 2001 From: Hamlin Li Date: Mon, 11 Dec 2023 15:45:47 +0000 Subject: [PATCH] 8318629: G1: Refine code a bit in G1RemSetTrackingPolicy::update_at_allocate Reviewed-by: ayang, tschatzl --- .../share/gc/g1/g1RemSetTrackingPolicy.cpp | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) diff --git a/src/hotspot/share/gc/g1/g1RemSetTrackingPolicy.cpp b/src/hotspot/share/gc/g1/g1RemSetTrackingPolicy.cpp index 6c084a72d94..c227b625b8d 100644 --- a/src/hotspot/share/gc/g1/g1RemSetTrackingPolicy.cpp +++ b/src/hotspot/share/gc/g1/g1RemSetTrackingPolicy.cpp @@ -38,18 +38,16 @@ bool G1RemSetTrackingPolicy::needs_scan_for_rebuild(HeapRegion* r) const { } void G1RemSetTrackingPolicy::update_at_allocate(HeapRegion* r) { - if (r->is_young()) { - // Always collect remembered set for young regions. - r->rem_set()->set_state_complete(); - } else if (r->is_humongous()) { - // Collect remembered sets for humongous regions by default to allow eager reclaim. - r->rem_set()->set_state_complete(); - } else if (r->is_old()) { + assert(r->is_young() || r->is_humongous() || r->is_old(), + "Region %u with unexpected heap region type %s", r->hrm_index(), r->get_type_str()); + if (r->is_old()) { // By default, do not create remembered set for new old regions. r->rem_set()->set_state_untracked(); - } else { - guarantee(false, "Unhandled region %u with heap region type %s", r->hrm_index(), r->get_type_str()); + return; } + // Always collect remembered set for young regions and for humongous regions. + // Humongous regions need that for eager reclaim. + r->rem_set()->set_state_complete(); } void G1RemSetTrackingPolicy::update_at_free(HeapRegion* r) {