src/os/linux/vm/os_linux.cpp
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File UseNUMA Cdiff src/os/linux/vm/os_linux.cpp

src/os/linux/vm/os_linux.cpp

Print this page
rev 3419 : 7179517: Enable NUMA by default on NUMA hardware
Summary: Enable UseNUMA by default on NUMA hardware
Reviewed-by: jwilhelm

*** 4232,4249 **** --- 4232,4263 ---- tty->print_cr("[HotSpot is running with %s, %s(%s)]\n", Linux::glibc_version(), Linux::libpthread_version(), Linux::is_floating_stack() ? "floating stack" : "fixed stack"); } + #ifdef _LP64 + // For 64 bit numa systems, enable numa features if heap is large enough + if (UseNUMA || (FLAG_IS_DEFAULT(UseNUMA) && is_server_class_machine())) { + #else if (UseNUMA) { + #endif if (!Linux::libnuma_init()) { UseNUMA = false; } else { if ((Linux::numa_max_node() < 1)) { // There's only one node(they start from 0), disable NUMA. UseNUMA = false; } + #ifdef _LP64 + else { + // There is more than 1 node + if (FLAG_IS_DEFAULT(UseNUMA) && (MaxHeapSize >= NUMAAutoStartHeapSize)) { + UseNUMA = true; + UseNUMAInterleaving = true; + } + } + #endif } // With SHM large pages we cannot uncommit a page, so there's not way // we can make the adaptive lgrp chunk resizing work. If the user specified // both UseNUMA and UseLargePages (or UseSHM) on the command line - warn and // disable adaptive resizing.
src/os/linux/vm/os_linux.cpp
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File