Tests: Here is test result with ParallelGC while G1GC's are similar. We compare the time consumption with pretouching a big Eden space, before and after the fix. Having GCTraceTime(Debug, gc, heap) t("PretouchTask"); in PretouchTask::pretouch would be helpful too. However since for YoungGen, the start time of the first Survivor space could give a similar time point, so here we only need check the second line of outputs, smaller is better. About the pretouching effect, we could check /proc//smaps, results are not listed here. before the fix: jdk-17-1 after the fix : jdk-17-2 1). AArch64 with 80 threads and Hugepagesize=512MB, -XX:PreTouchParallelChunkSize=4m jdk-17-1/bin/java -XX:+AlwaysPreTouch -Xmx100g -Xms100g -Xmn99g -XX:SurvivorRatio=99 -Xlog:gc+heap=debug -XX:+UseParallelGC -XX:ParallelGCThreads=80 -XX:+UseTransparentHugePages -XX:PreTouchParallelChunkSize=4m -XX:+UseTransparentHugePages -version [0.035s][debug][gc,heap] Running ParallelGC PreTouch head with 80 workers for 25088 work units pre-touching 105226698752B. [33.381s][debug][gc,heap] Running ParallelGC PreTouch head with 80 workers for 128 work units pre-touching 536870912B. jdk-17-2/bin/java -XX:+AlwaysPreTouch -Xmx100g -Xms100g -Xmn99g -XX:SurvivorRatio=99 -Xlog:gc+heap=debug -XX:+UseParallelGC -XX:ParallelGCThreads=80 -XX:+UseTransparentHugePages -XX:PreTouchParallelChunkSize=4m -XX:+UseTransparentHugePages -version [0.034s][debug][gc,heap] Running ParallelGC PreTouch head with 80 workers for 196 work units pre-touching 105226698752B. [0.870s][debug][gc,heap] Running ParallelGC PreTouch head with 1 workers for 1 work units pre-touching 536870912B. 2). X64 with 32 threads and Hugepagesize=2MB, -XX:PreTouchParallelChunkSize=256k jdk-17-1/bin/java -XX:+AlwaysPreTouch -Xmx100g -Xms100g -Xmn90g -XX:SurvivorRatio=43 -XX:+UseTransparentHugePages -XX:+UseParallelGC -XX:ParallelGCThreads=32 -XX:PreTouchParallelChunkSize=256k -Xlog:gc+heap=debug -version [0.080s][debug][gc,heap] Running ParallelGC PreTouch head with 80 workers for 352256 work units pre-touching 92341796864B. [20.333s][debug][gc,heap] Running ParallelGC PreTouch head with 80 workers for 8192 work units pre-touching 2147483648B. jdk-17-2/bin/java -XX:+AlwaysPreTouch -Xmx100g -Xms100g -Xmn90g -XX:SurvivorRatio=43 -XX:+UseTransparentHugePages -XX:+UseParallelGC -XX:ParallelGCThreads=32 -XX:PreTouchParallelChunkSize=256k -Xlog:gc+heap=debug -version [0.079s][debug][gc,heap] Running ParallelGC PreTouch head with 32 workers for 44032 work units pre-touching 92341796864B. [2.740s][debug][gc,heap] Running ParallelGC PreTouch head with 32 workers for 1024 work units pre-touching 2147483648B. 3). X64 with 128 threads and Hugepagesize=2MB, -XX:PreTouchParallelChunkSize=512k jdk-17-1/bin/java -XX:+AlwaysPreTouch -Xmx900g -Xms900g -Xmn800g -XX:SurvivorRatio=400 -Xlog:gc+heap=debug -XX:+UseParallelGC -XX:ParallelGCThreads=128 -XX:PreTouchParallelChunkSize=512k -XX:+UseTransparentHugePages -version [0.177s][debug][gc,heap] Running ParallelGC PreTouch head with 128 workers for 1630256 work units pre-touching 854723657728B. [15.090s][debug][gc,heap] Running ParallelGC PreTouch head with 128 workers for 4072 work units pre-touching 2134900736B. jdk-17-2/bin/java -XX:+AlwaysPreTouch -Xmx900g -Xms900g -Xmn800g -XX:SurvivorRatio=400 -Xlog:gc+heap=debug -XX:+UseParallelGC -XX:ParallelGCThreads=128 -XX:PreTouchParallelChunkSize=512k -XX:+UseTransparentHugePages -version [0.178s][debug][gc,heap] Running ParallelGC PreTouch head with 128 workers for 407564 work units pre-touching 854723657728B. [6.268s][debug][gc,heap] Running ParallelGC PreTouch head with 128 workers for 1018 work units pre-touching 2134900736B. 4). X64 with 128 threads and Hugepagesize=2MB, -XX:PreTouchParallelChunkSize=4k jdk-17-1/bin/java -XX:+AlwaysPreTouch -Xmx900g -Xms900g -Xmn800g -XX:SurvivorRatio=400 -Xlog:gc+heap=debug -XX:+UseParallelGC -XX:ParallelGCThreads=128 -XX:PreTouchParallelChunkSize=4k -XX:+UseTransparentHugePages -version [0.178s][debug][gc,heap] Running ParallelGC PreTouch head with 128 workers for 208672768 work units pre-touching 854723657728B. [38.983s][debug][gc,heap] Running ParallelGC PreTouch head with 128 workers for 521216 work units pre-touching 2134900736B. jdk-17-2/bin/java -XX:+AlwaysPreTouch -Xmx900g -Xms900g -Xmn800g -XX:SurvivorRatio=400 -Xlog:gc+heap=debug -XX:+UseParallelGC -XX:ParallelGCThreads=128 -XX:PreTouchParallelChunkSize=4k -XX:+UseTransparentHugePages -version [0.178s][debug][gc,heap] Running ParallelGC PreTouch head with 128 workers for 407564 work units pre-touching 854723657728B. [6.709s][debug][gc,heap] Running ParallelGC PreTouch head with 128 workers for 1018 work units pre-touching 2134900736B.