36 lines
1.4 KiB
Diff
36 lines
1.4 KiB
Diff
From da6d1fc0e0aeb1fdb504aced4b0dba0290ec240f Mon Sep 17 00:00:00 2001
|
|
From: Thomas Stuefe <stuefe@openjdk.org>
|
|
Date: Thu, 30 Jun 2022 06:19:25 +0000
|
|
Subject: [PATCH] 8289477: Memory corruption with CPU_ALLOC, CPU_FREE on muslc
|
|
|
|
Reviewed-by: dholmes, clanger
|
|
---
|
|
src/hotspot/os/linux/os_linux.cpp | 7 ++++++-
|
|
1 file changed, 6 insertions(+), 1 deletion(-)
|
|
|
|
diff --git a/src/hotspot/os/linux/os_linux.cpp b/src/hotspot/os/linux/os_linux.cpp
|
|
index 726926218907..8ee10e201c69 100644
|
|
--- a/src/hotspot/os/linux/os_linux.cpp
|
|
+++ b/src/hotspot/os/linux/os_linux.cpp
|
|
@@ -4591,7 +4591,8 @@ static int _cpu_count(const cpu_set_t* cpus) {
|
|
// dynamic check - see 6515172 for details.
|
|
// If anything goes wrong we fallback to returning the number of online
|
|
// processors - which can be greater than the number available to the process.
|
|
-int os::Linux::active_processor_count() {
|
|
+static int get_active_processor_count() {
|
|
+ // Note: keep this function, with its CPU_xx macros, *outside* the os namespace (see JDK-8289477).
|
|
cpu_set_t cpus; // can represent at most 1024 (CPU_SETSIZE) processors
|
|
cpu_set_t* cpus_p = &cpus;
|
|
int cpus_size = sizeof(cpu_set_t);
|
|
@@ -4663,6 +4664,10 @@ int os::Linux::active_processor_count() {
|
|
return cpu_count;
|
|
}
|
|
|
|
+int os::Linux::active_processor_count() {
|
|
+ return get_active_processor_count();
|
|
+}
|
|
+
|
|
// Determine the active processor count from one of
|
|
// three different sources:
|
|
//
|