diff a/src/hotspot/os/linux/os_linux.cpp b/src/hotspot/os/linux/os_linux.cpp --- a/src/hotspot/os/linux/os_linux.cpp +++ b/src/hotspot/os/linux/os_linux.cpp @@ -5312,15 +5312,13 @@ FLAG_SET_ERGO(UseNUMA, false); FLAG_SET_ERGO(UseNUMAInterleaving, false); // Also depends on libnuma. } else { if ((Linux::numa_max_node() < 1) || Linux::is_bound_to_single_node()) { // If there's only one node (they start from 0) or if the process - // is bound explicitly to a single node using membind, disable NUMA unless - // user explicilty forces NUMA optimizations on single-node/UMA systems - UseNUMA = ForceNUMA; + // is bound explicitly to a single node using membind, disable NUMA + UseNUMA = false; } else { - LogTarget(Info,os) log; LogStream ls(log); Linux::set_configured_numa_policy(Linux::identify_numa_policy()); diff a/src/hotspot/os/windows/os_windows.cpp b/src/hotspot/os/windows/os_windows.cpp --- a/src/hotspot/os/windows/os_windows.cpp +++ b/src/hotspot/os/windows/os_windows.cpp @@ -4231,13 +4231,11 @@ #endif // initialize thread priority policy prio_init(); - if (UseNUMA && !ForceNUMA) { - UseNUMA = false; // We don't fully support this yet - } + UseNUMA = false; // We don't fully support this yet if (UseNUMAInterleaving || (UseNUMA && FLAG_IS_DEFAULT(UseNUMAInterleaving))) { if (!numa_interleaving_init()) { FLAG_SET_ERGO(UseNUMAInterleaving, false); } else if (!UseNUMAInterleaving) { diff a/src/hotspot/share/gc/g1/g1NUMAStats.cpp b/src/hotspot/share/gc/g1/g1NUMAStats.cpp --- a/src/hotspot/share/gc/g1/g1NUMAStats.cpp +++ b/src/hotspot/share/gc/g1/g1NUMAStats.cpp @@ -29,13 +29,10 @@ double G1NUMAStats::Stat::rate() const { return _requested == 0 ? 0 : (double)_hit / _requested * 100; } G1NUMAStats::NodeDataArray::NodeDataArray(uint num_nodes) { - // Not using > 1, for -XX:+ForceNUMA support. - guarantee(num_nodes > 0, "Number of nodes (%u) should be set", num_nodes); - // The row represents the number of nodes. _num_column = num_nodes; // +1 for G1MemoryNodeManager::AnyNodeIndex. _num_row = num_nodes + 1; @@ -123,12 +120,11 @@ } G1NUMAStats::G1NUMAStats(const int* node_ids, uint num_node_ids) : _node_ids(node_ids), _num_node_ids(num_node_ids), _node_data() { - // Not using > 1, for -XX:+ForceNUMA support. - assert(_num_node_ids > 0, "Should have at least one node id: %u", _num_node_ids); + assert(_num_node_ids > 1, "Should have at least one node id: %u", _num_node_ids); for (int i = 0; i < NodeDataItemsSentinel; i++) { _node_data[i] = new NodeDataArray(_num_node_ids); } } diff a/src/hotspot/share/runtime/arguments.cpp b/src/hotspot/share/runtime/arguments.cpp --- a/src/hotspot/share/runtime/arguments.cpp +++ b/src/hotspot/share/runtime/arguments.cpp @@ -520,11 +520,10 @@ { "MinRAMFraction", JDK_Version::jdk(10), JDK_Version::undefined(), JDK_Version::undefined() }, { "InitialRAMFraction", JDK_Version::jdk(10), JDK_Version::undefined(), JDK_Version::undefined() }, { "UseMembar", JDK_Version::jdk(10), JDK_Version::jdk(12), JDK_Version::undefined() }, { "AllowRedefinitionToAddDeleteMethods", JDK_Version::jdk(13), JDK_Version::undefined(), JDK_Version::undefined() }, { "FlightRecorder", JDK_Version::jdk(13), JDK_Version::undefined(), JDK_Version::undefined() }, - { "ForceNUMA", JDK_Version::jdk(15), JDK_Version::jdk(16), JDK_Version::jdk(17) }, { "UseBiasedLocking", JDK_Version::jdk(15), JDK_Version::jdk(16), JDK_Version::jdk(17) }, { "BiasedLockingStartupDelay", JDK_Version::jdk(15), JDK_Version::jdk(16), JDK_Version::jdk(17) }, { "PrintBiasedLockingStatistics", JDK_Version::jdk(15), JDK_Version::jdk(16), JDK_Version::jdk(17) }, { "BiasedLockingBulkRebiasThreshold", JDK_Version::jdk(15), JDK_Version::jdk(16), JDK_Version::jdk(17) }, { "BiasedLockingBulkRevokeThreshold", JDK_Version::jdk(15), JDK_Version::jdk(16), JDK_Version::jdk(17) }, @@ -550,10 +549,11 @@ { "UseBsdPosixThreadCPUClocks", JDK_Version::undefined(), JDK_Version::jdk(16), JDK_Version::jdk(17) }, { "UseOprofile", JDK_Version::undefined(), JDK_Version::jdk(16), JDK_Version::jdk(17) }, #endif { "PrintVMQWaitTime", JDK_Version::jdk(15), JDK_Version::jdk(16), JDK_Version::jdk(17) }, { "UseNewFieldLayout", JDK_Version::jdk(15), JDK_Version::jdk(16), JDK_Version::jdk(17) }, + { "ForceNUMA", JDK_Version::jdk(15), JDK_Version::jdk(16), JDK_Version::jdk(17) }, #ifdef TEST_VERIFY_SPECIAL_JVM_FLAGS // These entries will generate build errors. Their purpose is to test the macros. { "dep > obs", JDK_Version::jdk(9), JDK_Version::jdk(8), JDK_Version::undefined() }, { "dep > exp ", JDK_Version::jdk(9), JDK_Version::undefined(), JDK_Version::jdk(8) }, diff a/src/hotspot/share/runtime/globals.hpp b/src/hotspot/share/runtime/globals.hpp --- a/src/hotspot/share/runtime/globals.hpp +++ b/src/hotspot/share/runtime/globals.hpp @@ -189,13 +189,10 @@ \ product(size_t, NUMAInterleaveGranularity, 2*M, \ "Granularity to use for NUMA interleaving on Windows OS") \ range(os::vm_allocation_granularity(), NOT_LP64(2*G) LP64_ONLY(8192*G)) \ \ - product(bool, ForceNUMA, false, \ - "(Deprecated) Force NUMA optimizations on single-node/UMA systems") \ - \ product(uintx, NUMAChunkResizeWeight, 20, \ "Percentage (0-100) used to weight the current sample when " \ "computing exponentially decaying average for " \ "AdaptiveNUMAChunkSizing") \ range(0, 100) \