8318629: G1: Refine code a bit in G1RemSetTrackingPolicy::update_at_allocate

Reviewed-by: ayang, tschatzl
This commit is contained in:
Hamlin Li 2023-12-11 15:45:47 +00:00
parent 486594d427
commit b270f30d10

View File

@ -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) {