-
Bug
-
Resolution: Fixed
-
P4
-
10
-
b21
-
ppc
-
linux
Issue | Fix Version | Assignee | Priority | Status | Resolution | Resolved In Build |
---|---|---|---|---|---|---|
JDK-8190591 | 8u171 | Zhengyu Gu | P4 | Resolved | Fixed | b01 |
JDK-8185009 | 8u162 | Zhengyu Gu | P4 | Resolved | Fixed | b01 |
JDK-8198043 | emb-8u171 | Zhengyu Gu | P4 | Resolved | Fixed | b01 |
After back porting 8175813 to openjdk 1.8.0, "mbind: Invalid argument" message still can be seen on one of PPC64 machines.
The problem is that, the machine only has one node, and numa_interleave_memory() apparently does not like to be called when it is the case.
[zgu@ibm-p730-03-lp1 hotspot]$ lscpu
Architecture: ppc64
CPU op-mode(s): 32-bit, 64-bit
Byte Order: Big Endian
CPU(s): 8
On-line CPU(s) list: 0-7
Thread(s) per core: 4
Core(s) per socket: 1
Socket(s): 2
NUMA node(s): 2
Model: 2.1 (pvr 003f 0201)
Model name: POWER7 (architected), altivec supported
L1d cache: 32K
L1i cache: 32K
NUMA node0 CPU(s): 0-7
NUMA node1 CPU(s):
Following patch fixes the problem:
diff -r 56d2166223f6 src/os/linux/vm/os_linux.cpp
--- a/src/os/linux/vm/os_linux.cpp Wed May 24 12:42:44 2017 +0200
+++ b/src/os/linux/vm/os_linux.cpp Wed May 24 19:28:49 2017 -0400
@@ -2728,7 +2728,9 @@
}
void os::numa_make_global(char *addr, size_t bytes) {
- Linux::numa_interleave_memory(addr, bytes);
+ if (numa_get_groups_num() > 1) {
+ Linux::numa_interleave_memory(addr, bytes);
+ }
}
// Define for numa_set_bind_policy(int). Setting the argument to 0 will set the
The problem is that, the machine only has one node, and numa_interleave_memory() apparently does not like to be called when it is the case.
[zgu@ibm-p730-03-lp1 hotspot]$ lscpu
Architecture: ppc64
CPU op-mode(s): 32-bit, 64-bit
Byte Order: Big Endian
CPU(s): 8
On-line CPU(s) list: 0-7
Thread(s) per core: 4
Core(s) per socket: 1
Socket(s): 2
NUMA node(s): 2
Model: 2.1 (pvr 003f 0201)
Model name: POWER7 (architected), altivec supported
L1d cache: 32K
L1i cache: 32K
NUMA node0 CPU(s): 0-7
NUMA node1 CPU(s):
Following patch fixes the problem:
diff -r 56d2166223f6 src/os/linux/vm/os_linux.cpp
--- a/src/os/linux/vm/os_linux.cpp Wed May 24 12:42:44 2017 +0200
+++ b/src/os/linux/vm/os_linux.cpp Wed May 24 19:28:49 2017 -0400
@@ -2728,7 +2728,9 @@
}
void os::numa_make_global(char *addr, size_t bytes) {
- Linux::numa_interleave_memory(addr, bytes);
+ if (numa_get_groups_num() > 1) {
+ Linux::numa_interleave_memory(addr, bytes);
+ }
}
// Define for numa_set_bind_policy(int). Setting the argument to 0 will set the
- backported by
-
JDK-8185009 PPC64: "mbind: Invalid argument" still seen after 8175813
-
- Resolved
-
-
JDK-8190591 PPC64: "mbind: Invalid argument" still seen after 8175813
-
- Resolved
-
-
JDK-8198043 PPC64: "mbind: Invalid argument" still seen after 8175813
-
- Resolved
-
- relates to
-
JDK-8175813 PPC64: "mbind: Invalid argument" when -XX:+UseNUMA is used
-
- Resolved
-
-
JDK-8198794 Hotspot crash on Cassandra 3.11.1 startup with libnuma 2.0.3
-
- Closed
-
-
JDK-8181196 Update all JVM NUMA prototypes to use the new NUMA API version 2
-
- Open
-
(1 relates to)