Skip to content

Commit 6c2a271

Browse files
committed
Consolidate generation bookkeping in free_pages
1 parent 7d8f5d0 commit 6c2a271

File tree

1 file changed

+6
-13
lines changed

1 file changed

+6
-13
lines changed

src/hotspot/share/gc/z/zPageAllocator.cpp

Lines changed: 6 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1097,18 +1097,15 @@ struct ZGenStats {
10971097

10981098
void ZPageAllocator::free_pages(const ZArray<ZPage*>* pages) {
10991099
ZArray<ZMemoryRange> to_cache;
1100-
ZPerNUMA<ZGenStats> gen_stats;
1100+
1101+
// All pages belong to the same generation, so either only young or old.
1102+
const ZGenerationId gen_id = pages->first()->generation_id();
1103+
size_t gen_size = 0;
11011104

11021105
// Prepare memory from pages to be cached before taking the lock
11031106
ZArrayIterator<ZPage*> pages_iter(pages);
11041107
for (ZPage* page; pages_iter.next(&page);) {
1105-
const int numa_id = _virtual.get_numa_id(page->virtual_memory());
1106-
if (page->is_young()) {
1107-
gen_stats.get(numa_id).young_size += page->size();
1108-
} else {
1109-
gen_stats.get(numa_id).old_size += page->size();
1110-
}
1111-
1108+
gen_size += page->size();
11121109
prepare_memory_for_free(page, &to_cache, true /* allow_defragment */);
11131110
}
11141111

@@ -1118,17 +1115,13 @@ void ZPageAllocator::free_pages(const ZArray<ZPage*>* pages) {
11181115
ZArrayIterator<ZMemoryRange> iter(&to_cache);
11191116
for (ZMemoryRange vmem; iter.next(&vmem);) {
11201117
ZCacheState& state = state_from_vmem(vmem);
1121-
11221118
state.decrease_used(vmem.size());
11231119
state._cache.insert_mapping(vmem);
11241120
}
11251121

11261122
for (int numa_id = 0; numa_id < (int)ZNUMA::count(); numa_id++) {
11271123
ZCacheState& state = _states.get(numa_id);
1128-
ZGenStats& stats = gen_stats.get(numa_id);
1129-
1130-
state.decrease_used_generation(ZGenerationId::young, stats.young_size);
1131-
state.decrease_used_generation(ZGenerationId::old, stats.old_size);
1124+
state.decrease_used_generation(gen_id, gen_size);
11321125
}
11331126

11341127
// Try satisfy stalled allocations

0 commit comments

Comments
 (0)