On Thu, Dec 04, 2025 at 08:16:36PM +0000, Steven Noonan wrote:
(I apologize in advance if my email comes out formatted strangely, I haven't used ProtonMail for LKML before. I don't think it is line-wrapping properly.)
On Wednesday, December 3rd, 2025 at 12:45 PM, Yazen Ghannam yazen.ghannam@amd.com wrote:
On Fri, Nov 14, 2025 at 07:57:35PM +0000, Steven Noonan wrote:
Thanks Steven for the patch.
On a Xen dom0 boot, this feature does not behave, and we end up calculating:
num_roots = 1 num_nodes = 2 roots_per_node = 0
This causes a divide-by-zero in the modulus inside the loop.
Can you please share more details of the system topology?
I think the list of PCI devices is a good start.
Sure, but it's running as the paravirtual control domain for Xen. The `lspci` topology output won't differ between bare-metal and dom0, but dom0's accesses to certain MSRs and PCI registers may be masked and manipulated, which is probably why this is breaking.
I've attached `lspci -nn` and a CPUID dump from CPU0 -- both of these are while running under Xen.
There is only one "Root Complex [1022:1480]" in the lspci output. And there is only one "Data Fabric: Device 18h;", so that's good.
And this is a desktop Ryzen system, so this makes sense.
So this system should *not* have "num_nodes=2".
CPUID 0x80000008 ECX shows that there are 32 threads per package. CPUID 0x8000001E ECX shows that here is 1 AMD node per package.
I suspect this is a known issue related to ACPI tables and topology.
Can you please try with this patch? https://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git/log/?h=x86/boot 845ed7e04d9a ("x86/acpi/boot: Correct acpi_is_processor_usable() check again")
Thanks, Yazen
[...]
CPU 0: CPUID 00000000:00 = 00000010 68747541 444d4163 69746e65 | ....AuthcAMDenti CPUID 00000001:00 = 00a20f12 00200800 fef83203 1789c3f5 | ...... ..2...... CPUID 00000002:00 = 00000000 00000000 00000000 00000000 | ................ CPUID 00000003:00 = 00000000 00000000 00000000 00000000 | ................ CPUID 00000004:00 = 00000000 00000000 00000000 00000000 | ................ CPUID 00000005:00 = 00000040 00000040 00000003 00000011 | @...@........... CPUID 00000006:00 = 00000004 00000000 00000001 00000000 | ................ CPUID 00000007:00 = 00000000 218c0329 0040068c 00000010 | ....)..!..@..... CPUID 00000008:00 = 00000000 00000000 00000000 00000000 | ................ CPUID 00000009:00 = 00000000 00000000 00000000 00000000 | ................ CPUID 0000000a:00 = 00000000 00000000 00000000 00000000 | ................ CPUID 0000000b:00 = 00000001 00000002 00000100 00000000 | ................ CPUID 0000000b:01 = 00000005 00000020 00000201 00000000 | .... ........... CPUID 0000000c:00 = 00000000 00000000 00000000 00000000 | ................ CPUID 0000000d:00 = 00000207 00000340 00000988 00000000 | ....@........... CPUID 0000000d:01 = 0000000f 00000340 00001800 00000000 | ....@........... CPUID 0000000d:02 = 00000100 00000240 00000000 00000000 | ....@........... CPUID 0000000e:00 = 00000000 00000000 00000000 00000000 | ................ CPUID 0000000f:00 = 00000000 000000ff 00000000 00000002 | ................ CPUID 0000000f:01 = 00000000 00000040 000000ff 00000007 | ....@........... CPUID 00000010:00 = 00000000 00000002 00000000 00000000 | ................ CPUID 00000010:01 = 0000000f 00000000 00000004 0000000f | ................ CPUID 40000000:00 = 00000000 00000000 00000000 00000000 | ................ CPUID 80000000:00 = 80000023 68747541 444d4163 69746e65 | #...AuthcAMDenti CPUID 80000001:00 = 00a20f12 20000000 440001e3 2bd1cbf5 | ....... ...D...+ CPUID 80000002:00 = 20444d41 657a7952 2039206e 30353935 | AMD Ryzen 9 5950 CPUID 80000003:00 = 36312058 726f432d 72502065 7365636f | X 16-Core Proces CPUID 80000004:00 = 20726f73 20202020 20202020 00202020 | sor . CPUID 80000005:00 = ff40ff40 ff40ff40 20080140 20080140 | @.@.@.@.@.. @.. CPUID 80000006:00 = 48002200 68004200 02006140 02009140 | .".H.B.h@a..@... CPUID 80000007:00 = 00000000 0000003b 00000000 00006799 | ....;........g.. CPUID 80000008:00 = 00003030 111ef657 0000501f 00010000 | 00..W....P...... CPUID 80000009:00 = 00000000 00000000 00000000 00000000 | ................ CPUID 8000000a:00 = 00000001 00008000 00000000 101bbcff | ................ CPUID 8000000b:00 = 00000000 00000000 00000000 00000000 | ................ CPUID 8000000c:00 = 00000000 00000000 00000000 00000000 | ................ CPUID 8000000d:00 = 00000000 00000000 00000000 00000000 | ................ CPUID 8000000e:00 = 00000000 00000000 00000000 00000000 | ................ CPUID 8000000f:00 = 00000000 00000000 00000000 00000000 | ................ CPUID 80000010:00 = 00000000 00000000 00000000 00000000 | ................ CPUID 80000011:00 = 00000000 00000000 00000000 00000000 | ................ CPUID 80000012:00 = 00000000 00000000 00000000 00000000 | ................ CPUID 80000013:00 = 00000000 00000000 00000000 00000000 | ................ CPUID 80000014:00 = 00000000 00000000 00000000 00000000 | ................ CPUID 80000015:00 = 00000000 00000000 00000000 00000000 | ................ CPUID 80000016:00 = 00000000 00000000 00000000 00000000 | ................ CPUID 80000017:00 = 00000000 00000000 00000000 00000000 | ................ CPUID 80000018:00 = 00000000 00000000 00000000 00000000 | ................ CPUID 80000019:00 = f040f040 f0400000 00000000 00000000 | @.@...@......... CPUID 8000001a:00 = 00000006 00000000 00000000 00000000 | ................ CPUID 8000001b:00 = 000003ff 00000000 00000000 00000000 | ................ CPUID 8000001c:00 = 00000000 00000000 00000000 00000000 | ................ CPUID 80000001:00 = 00004121 01c0003f 0000003f 00000000 | !A..?...?....... CPUID 8000001e:00 = 00000000 00000100 00000000 00000000 | ................ CPUID 8000001f:00 = 0001780f 00000173 000001fd 00000001 | .x..s........... CPUID 80000020:00 = 00000000 00000002 00000000 00000000 | ................ CPUID 80000020:01 = 0000000b 00000000 00000000 0000000f | ................ CPUID 80000021:00 = 0000004d 00000000 00000000 00000000 | M............... CPUID 80000022:00 = 00000000 00000000 00000000 00000000 | ................ CPUID 80000023:00 = 00000000 00000000 00000000 00000000 | ................ CPUID 80860000:00 = 00000000 00000000 00000000 00000000 | ................ CPUID c0000000:00 = 00000000 00000000 00000000 00000000 | ................
00:00.0 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] Starship/Matisse Root Complex [1022:1480] 00:00.2 IOMMU [0806]: Advanced Micro Devices, Inc. [AMD] Starship/Matisse IOMMU [1022:1481] 00:01.0 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] Starship/Matisse PCIe Dummy Host Bridge [1022:1482] 00:01.1 PCI bridge [0604]: Advanced Micro Devices, Inc. [AMD] Starship/Matisse GPP Bridge [1022:1483] 00:01.2 PCI bridge [0604]: Advanced Micro Devices, Inc. [AMD] Starship/Matisse GPP Bridge [1022:1483] 00:02.0 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] Starship/Matisse PCIe Dummy Host Bridge [1022:1482] 00:03.0 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] Starship/Matisse PCIe Dummy Host Bridge [1022:1482] 00:03.1 PCI bridge [0604]: Advanced Micro Devices, Inc. [AMD] Starship/Matisse GPP Bridge [1022:1483] 00:04.0 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] Starship/Matisse PCIe Dummy Host Bridge [1022:1482] 00:05.0 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] Starship/Matisse PCIe Dummy Host Bridge [1022:1482] 00:07.0 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] Starship/Matisse PCIe Dummy Host Bridge [1022:1482] 00:07.1 PCI bridge [0604]: Advanced Micro Devices, Inc. [AMD] Starship/Matisse Internal PCIe GPP Bridge 0 to bus[E:B] [1022:1484] 00:08.0 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] Starship/Matisse PCIe Dummy Host Bridge [1022:1482] 00:08.1 PCI bridge [0604]: Advanced Micro Devices, Inc. [AMD] Starship/Matisse Internal PCIe GPP Bridge 0 to bus[E:B] [1022:1484] 00:14.0 SMBus [0c05]: Advanced Micro Devices, Inc. [AMD] FCH SMBus Controller [1022:790b] (rev 61) 00:14.3 ISA bridge [0601]: Advanced Micro Devices, Inc. [AMD] FCH LPC Bridge [1022:790e] (rev 51) 00:18.0 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] Matisse/Vermeer Data Fabric: Device 18h; Function 0 [1022:1440] 00:18.1 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] Matisse/Vermeer Data Fabric: Device 18h; Function 1 [1022:1441] 00:18.2 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] Matisse/Vermeer Data Fabric: Device 18h; Function 2 [1022:1442] 00:18.3 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] Matisse/Vermeer Data Fabric: Device 18h; Function 3 [1022:1443] 00:18.4 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] Matisse/Vermeer Data Fabric: Device 18h; Function 4 [1022:1444] 00:18.5 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] Matisse/Vermeer Data Fabric: Device 18h; Function 5 [1022:1445] 00:18.6 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] Matisse/Vermeer Data Fabric: Device 18h; Function 6 [1022:1446] 00:18.7 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] Matisse/Vermeer Data Fabric: Device 18h; Function 7 [1022:1447] 01:00.0 Non-Volatile memory controller [0108]: Samsung Electronics Co Ltd NVMe SSD Controller S4LV008[Pascal] [144d:a80c] 20:00.0 PCI bridge [0604]: Advanced Micro Devices, Inc. [AMD] Matisse Switch Upstream [1022:57ad] 21:02.0 PCI bridge [0604]: Advanced Micro Devices, Inc. [AMD] Matisse PCIe GPP Bridge [1022:57a3] 21:04.0 PCI bridge [0604]: Advanced Micro Devices, Inc. [AMD] Matisse PCIe GPP Bridge [1022:57a3] 21:05.0 PCI bridge [0604]: Advanced Micro Devices, Inc. [AMD] Matisse PCIe GPP Bridge [1022:57a3] 21:06.0 PCI bridge [0604]: Advanced Micro Devices, Inc. [AMD] Matisse PCIe GPP Bridge [1022:57a3] 21:08.0 PCI bridge [0604]: Advanced Micro Devices, Inc. [AMD] Matisse PCIe GPP Bridge [1022:57a4] 24:00.0 Ethernet controller [0200]: Intel Corporation Ethernet Controller X550 [8086:1563] (rev 01) 24:00.1 Ethernet controller [0200]: Intel Corporation Ethernet Controller X550 [8086:1563] (rev 01) 25:10.0 Ethernet controller [0200]: Intel Corporation X550 Virtual Function [8086:1565] 25:10.2 Ethernet controller [0200]: Intel Corporation X550 Virtual Function [8086:1565] 26:00.0 Ethernet controller [0200]: Intel Corporation I210 Gigabit Network Connection [8086:1533] (rev 03) 27:00.0 Ethernet controller [0200]: Intel Corporation I210 Gigabit Network Connection [8086:1533] (rev 03) 28:00.0 PCI bridge [0604]: ASPEED Technology, Inc. AST1150 PCI-to-PCI Bridge [1a03:1150] (rev 04) 29:00.0 VGA compatible controller [0300]: ASPEED Technology, Inc. ASPEED Graphics Family [1a03:2000] (rev 41) 2a:00.0 Non-Essential Instrumentation [1300]: Advanced Micro Devices, Inc. [AMD] Starship/Matisse Reserved SPP [1022:1485] 2a:00.1 USB controller [0c03]: Advanced Micro Devices, Inc. [AMD] Matisse USB 3.0 Host Controller [1022:149c] 2a:00.3 USB controller [0c03]: Advanced Micro Devices, Inc. [AMD] Matisse USB 3.0 Host Controller [1022:149c] 2b:00.0 VGA compatible controller [0300]: NVIDIA Corporation TU102 [GeForce RTX 2080 Ti Rev. A] [10de:1e07] (rev a1) 2b:00.1 Audio device [0403]: NVIDIA Corporation TU102 High Definition Audio Controller [10de:10f7] (rev a1) 2b:00.2 USB controller [0c03]: NVIDIA Corporation TU102 USB 3.1 Host Controller [10de:1ad6] (rev a1) 2b:00.3 Serial bus controller [0c80]: NVIDIA Corporation TU102 USB Type-C UCSI Controller [10de:1ad7] (rev a1) 2c:00.0 Non-Essential Instrumentation [1300]: Advanced Micro Devices, Inc. [AMD] Starship/Matisse PCIe Dummy Function [1022:148a] 2d:00.0 Non-Essential Instrumentation [1300]: Advanced Micro Devices, Inc. [AMD] Starship/Matisse Reserved SPP [1022:1485] 2d:00.1 Encryption controller [1080]: Advanced Micro Devices, Inc. [AMD] Starship/Matisse Cryptographic Coprocessor PSPCPP [1022:1486] 2d:00.3 USB controller [0c03]: Advanced Micro Devices, Inc. [AMD] Matisse USB 3.0 Host Controller [1022:149c]