RFR(s): 8023905: Failing to initialize VM with small initial heap when NUMA and large pages are enabled

sangheon sangheon.kim at oracle.com
Wed Aug 10 17:28:34 UTC 2016

Hi all,

Can I have some reviews for this change?

NUMA and large pages are not compatible in Linux as large pages cannot 
uncommit pages(os_linux.cpp:line 4828 [1]). So we use pin region for 
this case. If we succeed to reserve with large pages for small initial 
heap, we will fail when free memory for biasing. The reason is that when 
we initialize NUMA with large pages, we change the page size to the 
default page size if the allocated pages are small.

I am proposing to exit the VM at that time. Adding an exception seems 
not good idea for this small heap which seems not practical for NUMA + 
large page case.
The added test is checking the exit message if both NUMA and large pages 
are supported.

CR: https://bugs.openjdk.java.net/browse/JDK-8023905
Webrev: http://cr.openjdk.java.net/~sangheki/8023905/webrev.0
Testing: JPRT, manual test on NUMA + large page supported machine.


// With SHM and HugeTLBFS large pages we cannot uncommit a page, so 
there's no way
// we can make the adaptive lgrp chunk resizing work. If the user specified
// both UseNUMA and UseLargePages (or UseSHM/UseHugeTLBFS) on the 
command line - warn and
// disable adaptive resizing.

More information about the hotspot-gc-dev mailing list