On 3/5/2014 3:24 PM, Bjorn Helgaas wrote:
[+cc linux-acpi]
On Wed, Mar 5, 2014 at 2:06 PM, <suravee.suthikulpanit@xxxxxxx> wrote:
From: Suravee Suthikulpanit <suravee.suthikulpanit@xxxxxxx>
The current code only supports upto AMD hostbridge for family11h.
This causes PCI numa_node information to be reported incorrectly
for newer family with multi sockets.
Where is the incorrect reporting? In ACPI tables? Is this patch a
way to cover up firmware defects in the ACPI description? Or is this
for machines without ACPI (it seems unlikely that machines with new
AMD processors would not have ACPI)?
This is incorrectly reported in the sysfs for each PCI device (e.g.
/devices/pci0000:50/0000:50:00.2/numa_node). Without the patch, they
return -1.
In file arch/x86/pci/acpi.c, in function pci_acpi_scan_root(), it is
queries the node information as following:
#ifdef CONFIG_ACPI_NUMA
pxm = acpi_get_pxm(device->handle);
if (pxm >= 0)
node = pxm_to_node(pxm);
if (node != -1)
set_mp_bus_to_node(busnum, node);
else
#endif
node = get_mp_bus_to_node(busnum);
In this case, I see that the acpi_get_pxm() returns -1. Therefore, it
falls back to using the node information in mp_bus_to_node[]. So,
without this patch, it would also returning -1.
Also, the spec mentioned that the _PXM is optional, so I am not sure if
this is a firmware bug.
Suravee
The whole point of ACPI is that we shouldn't need to update the kernel
for new hardware, so if there's a firmware bug, it should be fixed, or
if the ACPI spec isn't powerful enough, it should be extended.
This patch set introduces the logic to discover AMD hostbridges.
Note:
* Patch 1 and 2 are functional changes.
* Patch 3 is code clean up/restructuring
Suravee Suthikulpanit (3):
amd/pci: Add supports for generic AMD hostbridges
amd/pci: Support additional MMIO ranges capabilities
amd/pci: Miscellaneous code clean up for early_fillup_mp_bus_info
arch/x86/pci/amd_bus.c | 376 ++++++++++++++++++++++++++++++++----------------
1 file changed, 251 insertions(+), 125 deletions(-)
--
1.7.10.4
--
To unsubscribe from this list: send the line "unsubscribe linux-pci" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html