From 976473690b93f0ee0a357de0d088de63ae70a7a2 Mon Sep 17 00:00:00 2001 From: Ivan Walulya Date: Fri, 21 Feb 2020 10:56:30 +0100 Subject: [PATCH] 8216975: Using ForceNUMA does not disable adaptive sizing with parallel gc Reviewed-by: kbarrett, tschatzl, lkorinth --- src/hotspot/os/linux/os_linux.cpp | 9 +++------ src/hotspot/os/solaris/os_solaris.cpp | 10 ++++------ 2 files changed, 7 insertions(+), 12 deletions(-) diff --git a/src/hotspot/os/linux/os_linux.cpp b/src/hotspot/os/linux/os_linux.cpp index b1577aff0c2..b085ed8f323 100644 --- a/src/hotspot/os/linux/os_linux.cpp +++ b/src/hotspot/os/linux/os_linux.cpp @@ -5127,8 +5127,9 @@ void os::Linux::numa_init() { } 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. - UseNUMA = false; + // is bound explicitly to a single node using membind, disable NUMA unless + // user explicilty forces NUMA optimizations on single-node/UMA systems + UseNUMA = ForceNUMA; } else { LogTarget(Info,os) log; @@ -5167,10 +5168,6 @@ void os::Linux::numa_init() { UseAdaptiveNUMAChunkSizing = false; } } - - if (!UseNUMA && ForceNUMA) { - UseNUMA = true; - } } // this is called _after_ the global arguments have been parsed diff --git a/src/hotspot/os/solaris/os_solaris.cpp b/src/hotspot/os/solaris/os_solaris.cpp index cdaf66c2594..63c080dd3ca 100644 --- a/src/hotspot/os/solaris/os_solaris.cpp +++ b/src/hotspot/os/solaris/os_solaris.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2019, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2020, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -3934,13 +3934,11 @@ jint os::init_2(void) { size_t lgrp_num = os::numa_get_leaf_groups(lgrp_ids, lgrp_limit); FREE_C_HEAP_ARRAY(int, lgrp_ids); if (lgrp_num < 2) { - // There's only one locality group, disable NUMA. - UseNUMA = false; + // There's only one locality group, disable NUMA unless + // user explicilty forces NUMA optimizations on single-node/UMA systems + UseNUMA = ForceNUMA; } } - if (!UseNUMA && ForceNUMA) { - UseNUMA = true; - } } Solaris::signal_sets_init();