• Jesse Barnes's avatar
    x86/PCI: initialize PCI bus node numbers early · 2547089c
    Jesse Barnes authored
    The current mp_bus_to_node array is initialized only by AMD specific
    code, since AMD platforms have registers that can be used for
    determining mode numbers.  On new Intel platforms it's necessary to
    initialize this array as well though, otherwise all PCI node numbers
    will be 0, when in fact they should be -1 (indicating that I/O isn't
    tied to any particular node).
    
    So move the mp_bus_to_node code into the common PCI code, and
    initialize it early with a default value of -1.  This may be overridden
    later by arch code (e.g. the AMD code).
    
    With this change, PCI consistent memory and other node specific
    allocations (e.g. skbuff allocs) should occur on the "current" node.
    If, for performance reasons, applications want to be bound to specific
    nodes, they should open their devices only after being pinned to the
    CPU where they'll run, for maximum locality.
    Acked-by: default avatarYinghai Lu <yinghai@kernel.org>
    Tested-by: default avatarJesse Brandeburg <jesse.brandeburg@gmail.com>
    Signed-off-by: default avatarJesse Barnes <jbarnes@virtuousgeek.org>
    2547089c
amd_bus.c 12.6 KB