--- old/src/share/vm/gc/parallel/mutableNUMASpace.cpp 2016-08-26 10:32:12.330003367 -0700 +++ new/src/share/vm/gc/parallel/mutableNUMASpace.cpp 2016-08-26 10:32:12.230003370 -0700 @@ -580,10 +580,11 @@ if (base_space_size_pages / lgrp_spaces()->length() == 0 && page_size() > (size_t)os::vm_page_size()) { #ifdef LINUX - // If we are using pin region, we cannot change the page size to default size - // as we could free memory which is not expected for pin region in Linux. + // Changing the page size below can lead to freeing of memory. When using large pages + // and the memory has been both reserved and committed, Linux does not support + // freeing parts of it. So we fail initialization. if (UseLargePages && !os::can_commit_large_page_memory()) { - vm_exit_during_initialization("Failed initializing NUMA. Too small heap size"); + vm_exit_during_initialization("Failed initializing NUMA with large pages. Too small heap size"); } #endif // LINUX set_page_size(os::vm_page_size());