--- old/test/gc/arguments/TestSmallInitialHeapWithLargePageAndNUMA.java 2016-08-26 10:32:12.910003346 -0700 +++ new/test/gc/arguments/TestSmallInitialHeapWithLargePageAndNUMA.java 2016-08-26 10:32:12.810003350 -0700 @@ -41,7 +41,7 @@ public class TestSmallInitialHeapWithLargePageAndNUMA { - private static final String MSG_EXIT_TOO_SMALL_HEAP = "Failed initializing NUMA. Too small initial heap size"; + private static final String MSG_EXIT_TOO_SMALL_HEAP = "Failed initializing NUMA with large pages. Too small heap size"; private static final String MSG_GC_TRIGGERED_BEFORE_INIT = "GC triggered before VM initialization completed."; public static void main(String[] args) throws Exception { @@ -49,10 +49,10 @@ WhiteBox wb = WhiteBox.getWhiteBox(); long heapAlignment = wb.getHeapAlignment(); - // NUMA with large pages is not fully compatible in Linux, so we are using pin region. - // And the pin region case, we will skip freeing memory if the page size is larger than the default page size. - // If we allocate pages less than NUMA node, NUMA will try to use default page size. - // And this will conflict for pin region. + // When using large pages, Linux does not support freeing parts of reserved and committed memory. + // And current Linux implementation uses page size as a condition to actually freeing memory. + // If we allocate pages less than NUMA node, NUMA will try to use default page size and + // this will free the memory which Linux does not support. // Assume the minimum NUMA node as 2. long initHeap = heapAlignment; long maxHeap = heapAlignment * 2;