[Cc: +X86 maintainers]
Dear Bjorn, dear Linux folks,
Am 11.06.24 um 17:11 schrieb Bjorn Helgaas:
On Mon, Jun 10, 2024 at 10:27:37PM +0200, Paul Menzel wrote:
Am 10.06.24 um 21:42 schrieb Bjorn Helgaas:
On Sun, Jun 09, 2024 at 10:31:05AM +0200, Paul Menzel wrote:
On the servers below Linux warns:
Unknown NUMA node; performance will be reduced
This warning was added by ad5086108b9f ("PCI: Warn if no host bridge
NUMA node info"), which appeared in v5.5, so I assume this isn't new.
That commit log says:
In pci_call_probe(), we try to run driver probe functions on the node where
the device is attached. If we don't know which node the device is attached
to, the driver will likely run on the wrong node. This will still work,
but performance will not be as good as it could be.
On NUMA systems, warn if we don't know which node a PCI host bridge is
attached to. This is likely an indication that ACPI didn't supply a _PXM
method or the DT didn't supply a "numa-node-id" property.
I assume these are all ACPI systems, so likely missing _PXM. An
acpidump could confirm this.
I created an issue in the Linux Kernel Bugzilla [1] and attached the output
of `acpidump` on a Dell PowerEdge T630 there. The DSDT contains:
Device (PCI1)
{
[…]
Method (_PXM, 0, NotSerialized) // _PXM: Device Proximity
{
If ((CLOD == 0x00))
{
Return (0x01)
}
Else
{
Return (0x02)
}
}
[…]
}
This machine (the T630, from your first message) has several PCI host
bridges:
ACPI: PCI Root Bridge [UNC1] (domain 0000 [bus ff])
pci_bus 0000:ff: root bus resource [bus ff]
ACPI: PCI Root Bridge [UNC0] (domain 0000 [bus 7f])
pci_bus 0000:7f: root bus resource [bus 7f]
ACPI: PCI Root Bridge [PCI0] (domain 0000 [bus 00-7e])
pci_bus 0000:00: root bus resource [io 0x0000-0x03bb window]
pci_bus 0000:00: root bus resource [io 0x03bc-0x03df window]
pci_bus 0000:00: root bus resource [io 0x03e0-0x0cf7 window]
pci_bus 0000:00: root bus resource [io 0x1000-0x7fff window]
pci_bus 0000:00: root bus resource [mem 0x000a0000-0x000bffff window]
pci_bus 0000:00: root bus resource [mem 0x90000000-0xc7ffbfff window]
pci_bus 0000:00: root bus resource [mem 0x38000000000-0x3bfffffffff window]
pci_bus 0000:00: root bus resource [bus 00-7e]
ACPI: PCI Root Bridge [PCI1] (domain 0000 [bus 80-fe])
pci_bus 0000:80: root bus resource [io 0x8000-0xffff window]
pci_bus 0000:80: root bus resource [mem 0xc8000000-0xfbffbfff window]
pci_bus 0000:80: root bus resource [mem 0x3c000000000-0x3ffffffffff window]
pci_bus 0000:80: root bus resource [bus 80-fe]
PCI0 and PCI1 lead to all your normal PCI devices, they both
implement _PXM, and they have all the usual apertures for PCI I/O and
MMIO space where device BARs live.
UNC0 and UNC1 lead to these special chipset devices, they don't
implement _PXM, and they don't have any resources except the bus
number. The devices on bus 7f and ff can only be used via config
space accesses, and I have no idea what they are used for.
Maybe the X86 folks now.
Kind regards,
Paul
[1]: https://bugzilla.kernel.org/show_bug.cgi?id=218951