[REPORT] x86/topology: warning in set_cpu_sibling_map() with numa=fake=2 on non-NUMA x86 guest
From: Tianyu Li
Date: Wed Apr 15 2026 - 17:47:25 EST
Hello,
We reproduced this on 7.0-rc7 under syzkaller-style workloads.
The issue is a boot-time warning in set_cpu_sibling_map() on
x86 while booting a non-NUMA KVM guest with numa=fake=2.
The warning looks reproducible and seems to come from an
interaction between x86 topology validation and NUMA emulation,
rather than from a real hardware topology inconsistency.
Environment:
- machine: QEMU/KVM guest
- CPU topology from boot log:
Max. logical packages: 1
Num. nodes per package: 1
Max. threads per core: 1
Num. cores per package: 4
- relevant cmdline fragment:
numa=fake=2 panic_on_warn=1
Observed warning:
WARNING: arch/x86/kernel/smpboot.c:698 at
set_cpu_sibling_map+0x1205/0x1f10
CPU: 1 PID: 0 Comm: swapper/1
RIP: set_cpu_sibling_map+0x1205/0x1f10
arch/x86/kernel/smpboot.c:698
Call Trace:
ap_starting arch/x86/kernel/smpboot.c:196 [inline]
start_secondary+0xd8/0x2d0 arch/x86/kernel/smpboot.c:280
common_startup_64+0x13e/0x148
At the same time, the log shows that NUMA was emulated:
Faking node 0 at ...
Faking node 1 at ...
My reading of the code is:
1. set_cpu_sibling_map() builds SMT/LLC/L2/die relationships
and calls topology_sane() before accepting some of those
relationships.
2. topology_sane() warns if two topology-related CPUs are not
on the same NUMA node.
3. In the NUMA emulation / fake node case, the CPU-to-node
mapping can be rewritten in terms of emulated node IDs, even
when the underlying CPU/package topology is still a single
physical node.
4. That can make CPUs from the same package / cache domain
appear to be on different emulated nodes, which then triggers
the warning.
So this looks less like a real topology bug and more like an
over-strict warning under numa=fake= / NUMA emulation.
Would it make sense to suppress or relax this warning for NUMA
emulation, instead of treating it as a real topology inconsistency?
If useful, I can also turn this into a small patch once the
preferred direction is clear.
Thanks.