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.
Thanks,
Sangheon
[1]:
// 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