user/numactl: FTTFS when kernel (or CPU?) does not support NUMA
Found on x86_64 test VM with "default" KVM CPU:
make[2]: Entering directory '/root/packages/user/numactl/src/numactl-2.0.14'
FAIL: test/distance
FAIL: test/nodemap
PASS: test/tbitmap
======================================
numactl 2.0.14: ./test-suite.log
======================================
# TOTAL: 3
# PASS: 1
# SKIP: 0
# XFAIL: 0
# FAIL: 2
# XPASS: 0
# ERROR: 0
.. contents:: :depth: 2
FAIL: test/distance
===================
no numa support in kernel
FAIL test/distance (exit status: 1)
FAIL: test/nodemap
==================
no numa
FAIL test/nodemap (exit status: 1)
============================================================================
Testsuite summary for numactl 2.0.14
============================================================================
# TOTAL: 3
# PASS: 1
# SKIP: 0
# XFAIL: 0
# FAIL: 2
# XPASS: 0
# ERROR: 0
============================================================================
See ./test-suite.log
============================================================================
make[2]: *** [Makefile:1403: test-suite.log] Error 1
make[2]: Leaving directory '/root/packages/user/numactl/src/numactl-2.0.14'
make[1]: *** [Makefile:1511: check-TESTS] Error 2
make[1]: Leaving directory '/root/packages/user/numactl/src/numactl-2.0.14'
make: *** [Makefile:1779: check-am] Error 2
>>> ERROR: numactl: check failed
Output of lscpu
as configured with "default" KVM CPU:
Architecture: x86_64
CPU op-mode(s): 32-bit, 64-bit
Address sizes: 40 bits physical, 48 bits virtual
Byte Order: Little Endian
CPU(s): 72
On-line CPU(s) list: 0-71
Vendor ID: GenuineIntel
BIOS Vendor ID: QEMU
Model name: Common KVM processor
BIOS Model name: pc-i440fx-6.2 CPU @ 2.0GHz
BIOS CPU family: 1
CPU family: 15
Model: 6
Thread(s) per core: 1
Core(s) per socket: 72
Socket(s): 1
Stepping: 1
BogoMIPS: 4599.99
Flags: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx
lm constant_tsc nopl xtopology cpuid tsc_known_freq pni cx16 x2apic hypervisor lahf_lm cpuid_fault pti
Virtualization features:
Hypervisor vendor: KVM
Virtualization type: full
Caches (sum of all):
L1d: 2.3 MiB (72 instances)
L1i: 2.3 MiB (72 instances)
L2: 288 MiB (72 instances)
L3: 16 MiB (1 instance)
Vulnerabilities:
Itlb multihit: KVM: Mitigation: VMX unsupported
L1tf: Mitigation; PTE Inversion
Mds: Vulnerable: Clear CPU buffers attempted, no microcode; SMT Host state unknown
Meltdown: Mitigation; PTI
Mmio stale data: Unknown: No mitigations
Retbleed: Not affected
Spec store bypass: Vulnerable
Spectre v1: Mitigation; usercopy/swapgs barriers and __user pointer sanitization
Spectre v2: Mitigation; Retpolines, STIBP disabled, RSB filling, PBRSB-eIBRS Not affected
Srbds: Not affected
Tsx async abort: Not affected
Output of lscpu
as configured with "host" KVM CPU:
Architecture: x86_64
CPU op-mode(s): 32-bit, 64-bit
Address sizes: 46 bits physical, 48 bits virtual
Byte Order: Little Endian
CPU(s): 72
On-line CPU(s) list: 0-71
Vendor ID: GenuineIntel
BIOS Vendor ID: QEMU
Model name: Intel(R) Xeon(R) CPU E5-2686 v4 @ 2.30GHz
BIOS Model name: pc-i440fx-6.2 CPU @ 2.0GHz
BIOS CPU family: 1
CPU family: 6
Model: 79
Thread(s) per core: 1
Core(s) per socket: 72
Socket(s): 1
Stepping: 1
BogoMIPS: 4599.99
Flags: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ss ht syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon rep_good nopl xtopology cpuid tsc_known_freq pni pclmulqdq vmx ssse3 fma cx16 pdcm pcid
sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand hypervisor lahf_lm abm 3dnowprefetch cpuid_fault invpcid_single pti ssbd ibrs ibpb stibp tpr_shadow vnmi flexpriority ept vpid ept_ad fsgsbase tsc_adjust bmi1 hle avx2
smep bmi2 erms invpcid rtm rdseed adx xsaveopt arat umip md_clear arch_capabilities
Virtualization features:
Virtualization: VT-x
Hypervisor vendor: KVM
Virtualization type: full
Caches (sum of all):
L1d: 2.3 MiB (72 instances)
L1i: 2.3 MiB (72 instances)
L2: 288 MiB (72 instances)
L3: 16 MiB (1 instance)
Vulnerabilities:
Itlb multihit: Not affected
L1tf: Mitigation; PTE Inversion; VMX flush not necessary, SMT disabled
Mds: Mitigation; Clear CPU buffers; SMT Host state unknown
Meltdown: Mitigation; PTI
Mmio stale data: Vulnerable: Clear CPU buffers attempted, no microcode; SMT Host state unknown
Retbleed: Not affected
Spec store bypass: Mitigation; Speculative Store Bypass disabled via prctl and seccomp
Spectre v1: Mitigation; usercopy/swapgs barriers and __user pointer sanitization
Spectre v2: Mitigation; Retpolines, IBPB conditional, IBRS_FW, STIBP disabled, RSB filling, PBRSB-eIBRS Not affected
Srbds: Not affected
Tsx async abort: Mitigation; Clear CPU buffers; SMT Host state unknown
Output of lscpu
as configured with "host" KVM CPU and NUMA is enabled:
(no change; further debugging needed).
I propose checking for NUMA support before running the tests, and printing a non-fatal warning indicating that tests were skipped. However I'd like to open that up for discussion.