• Andi Kleen's avatar
    [PATCH] x86_64: Validate SLIT table · 1584b89c
    Andi Kleen authored
    A lot of Opteron BIOS just pass 10 in all SLIT entries (10 is the
    normalized unit). This is actually worse than the default heuristic
    because it leads to pci_distance not knowing the difference between
    local and remote nodes anymore. This messes up some NUMA
    heuristics in generic code.
    
    In this case it's better to fall back to the default heuristic
    which just does nodea == nodeb ? 10 : 20.
    
    This patch does some basic sanity checking on the SLIT and only accepts
    the SLIT when it passes.
    
    Invariants enforced are:
    - Node to itself shall be 10
    - Any other distance shouldn't be 10
    - Distances smaller than 10 are illegal
    Signed-off-by: default avatarAndi Kleen <ak@suse.de>
    Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
    1584b89c
srat.c 6.12 KB