RFR(s): 8145000: TestOptionsWithRanges.java failure for XX:+UseNUMA -XX:+UseNUMAInterleaving -XX:NUMAInterleaveGranularity=65536

sangheon sangheon.kim at oracle.com
Wed Dec 16 00:53:05 UTC 2015

Hi all,

Could I get a couple of reviews for Windows NUMAInterleaveGranularity 

Current Windows implementation can't handle correctly when we reserve a 
heap with disjoint heap base mode with NUMAInterleaveGranularity.

Windows, os::protect_memory fails in above case, as we are trying to 
protect the whole reserved heap at one time. But we reserved that area 
with separate/contiguous chunks based on NUMAInterleaveGranularity size. 
MSDN describes to call the API separately.
I changed protect API to be called multiple times if needed.

Skipped adding a test as TestOptionsWithRanges.java is enough.
'java -XX:+UseNUMA -XX:+UseNUMAInterleaving' is enough to reproduce on 
large memory Windows machine. However we need to specify heap size if 
the machine doesn't have large memory. e.g. -Xms30g -Xmx30g

This patch is based on the patch for JDK-8144949 which includes the 
change of the max range of NUMAInterleaveGranularity to 2G(32bit), 

CR: https://bugs.openjdk.java.net/browse/JDK-8145000
Webrev: http://cr.openjdk.java.net/~sangheki/8145000/webrev.00
Testing: JPRT (with TestOptionsWithRanges.java enabled), manual tests on 
Windows machine(to test on large memory).


More information about the hotspot-gc-dev mailing list