lxd machine-resources CPU code fails to accurately calculate numa topology for AMD Opteron 6376
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
MAAS |
Fix Released
|
Medium
|
Alberto Donato | ||
2.7 |
Fix Released
|
Medium
|
Alberto Donato |
Bug Description
maas version: Snap package 2.7.0-8240-
I have a Dell C6145 with 4 sockets of AMD Opteron 6376 that I'm trying to commission. It fails to report any of the machine resources with the error commissioning script '50-maas-
I've traced the problem to the lxd resources code. The problem is that the code assumes that a cpu thread pair belong to the same numa node. In the case of the 6376, that isn't true. Here's the lscpu for that host:
Architecture: x86_64
CPU op-mode(s): 32-bit, 64-bit
Byte Order: Little Endian
CPU(s): 64
On-line CPU(s) list: 0-63
Thread(s) per core: 2
Core(s) per socket: 8
Socket(s): 4
NUMA node(s): 8
Vendor ID: AuthenticAMD
CPU family: 21
Model: 2
Model name: AMD Opteron(tm) Processor 6376
Stepping: 0
CPU MHz: 2580.498
BogoMIPS: 4600.10
Virtualization: AMD-V
L1d cache: 16K
L1i cache: 64K
L2 cache: 2048K
L3 cache: 6144K
NUMA node0 CPU(s): 0-7
NUMA node1 CPU(s): 8-15
NUMA node2 CPU(s): 16-23
NUMA node3 CPU(s): 24-31
NUMA node4 CPU(s): 32-39
NUMA node5 CPU(s): 40-47
NUMA node6 CPU(s): 48-55
NUMA node7 CPU(s): 56-63
Sockets are two numa nodes (eg. node0 and node1). Cores have a thread in each node (ie. thread 0 and thread 8 report the same core_id). It looks like it traverses the /sys/devices/
Then when https:/
Traceback (most recent call last):
File "/snap/
File "/snap/
node, node.current_
File "/snap/
**args, timedout=(status == SIGNAL_
File "/snap/
--- <exception caught here> ---
File "/snap/
File "/snap/
File "/snap/
Changed in maas: | |
status: | Incomplete → In Progress |
assignee: | nobody → Alberto Donato (ack) |
importance: | Undecided → Medium |
milestone: | none → 2.8.0b1 |
Changed in maas: | |
status: | In Progress → Fix Committed |
Changed in maas: | |
status: | Fix Committed → Fix Released |
Hi, could you please provide the output of the following command from the machine?
ls -l /sys/devices/ system/ cpu/*/node*