From 19920df81d2d68307bde286f7d5a0674fabff6c0 Mon Sep 17 00:00:00 2001 From: Albert Mingkun Yang Date: Tue, 28 Oct 2025 12:17:19 +0000 Subject: [PATCH] 8370417: Parallel: TestAlwaysPreTouchBehavior.java fails with NUMA Reviewed-by: iveresov, jsikstro, tschatzl --- src/hotspot/share/gc/parallel/mutableNUMASpace.cpp | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/hotspot/share/gc/parallel/mutableNUMASpace.cpp b/src/hotspot/share/gc/parallel/mutableNUMASpace.cpp index 36412ce5efe..566d6469686 100644 --- a/src/hotspot/share/gc/parallel/mutableNUMASpace.cpp +++ b/src/hotspot/share/gc/parallel/mutableNUMASpace.cpp @@ -25,6 +25,7 @@ #include "gc/parallel/mutableNUMASpace.hpp" #include "gc/shared/collectedHeap.hpp" #include "gc/shared/gc_globals.hpp" +#include "gc/shared/pretouchTask.hpp" #include "gc/shared/spaceDecorator.hpp" #include "gc/shared/workerThread.hpp" #include "memory/allocation.inline.hpp" @@ -388,6 +389,14 @@ void MutableNUMASpace::initialize(MemRegion mr, bias_region(bottom_region, ls->lgrp_id()); bias_region(top_region, ls->lgrp_id()); + if (AlwaysPreTouch) { + PretouchTask::pretouch("ParallelGC PreTouch bottom_region", (char*)bottom_region.start(), (char*)bottom_region.end(), + page_size(), pretouch_workers); + + PretouchTask::pretouch("ParallelGC PreTouch top_region", (char*)top_region.start(), (char*)top_region.end(), + page_size(), pretouch_workers); + } + // Clear space (set top = bottom) but never mangle. s->initialize(new_region, SpaceDecorator::Clear, SpaceDecorator::DontMangle, MutableSpace::DontSetupPages); }