• Prarit Bhargava's avatar
    PCI: Allow numa_node override via sysfs · 63692df1
    Prarit Bhargava authored
    NUMA systems with ACPI normally describe the physical topology via _PXM
    methods.  But many BIOSes don't implement _PXM, which leaves the kernel
    with no way to discover the device topology, which reduces performance
    because we can't put memory and processes close to the device.
    
    The NUMA node of a PCI device is already exported in the sysfs "numa_node"
    file.  Make that file writable so users can workaround the lack of _PXM
    methods in the BIOS.  For example:
    
      echo 3 > /sys/devices/pci0000:ff/0000:03:1f.3/numa_node
    
    sets the node for PCI device 0000:03:1f.3.
    
    Writing the file emits a FW_BUG warning to encourage users to request
    firmware updates.  It also taints the kernel with TAINT_FIRMWARE_WORKAROUND
    because overriding the node incorrectly can cause performance issues.
    
    [bhelgaas: changelog, documentation text]
    Signed-off-by: default avatarPrarit Bhargava <prarit@redhat.com>
    Signed-off-by: default avatarBjorn Helgaas <bhelgaas@google.com>
    CC: Myron Stowe <mstowe@redhat.com>
    CC: Alexander Ducyk <alexander.h.duyck@redhat.com>
    CC: Jiang Liu <jiang.liu@linux.intel.com>
    63692df1
pci-sysfs.c 39.4 KB