• Alexander Duyck's avatar
    ixgbe: Make use of cpumask_local_spread to improve RSS locality · 780e354d
    Alexander Duyck authored
    This patch is meant to address locality issues present in the ixgbe driver
    when it is loaded on a system supporting multiple NUMA nodes and more CPUs
    then the device can map in a 1:1 fashion. Instead of just arbitrarily
    mapping itself to CPUs 0-62 it would make much more sense to map itself to
    the local CPUs first, and then map itself to any remaining CPUs that might
    be used.
    
    The first effect of this is that queue 0 should always be allocated on the
    local CPU/NUMA node. This is important as it is the default destination if
    a packet doesn't match any existing flow director filter or RSS rule and as
    such having it local should help to reduce QPI cross-talk in the event of
    an unrecognized traffic type.
    
    In addition this should increase the likelihood of the RSS queues being
    allocated and used on CPUs local to the device while the ATR/Flow Director
    queues would be able to route traffic directly to the CPU that is likely to
    be processing it.
    Signed-off-by: default avatarAlexander Duyck <alexander.h.duyck@linux.intel.com>
    Tested-by: default avatarAndrew Bowers <andrewx.bowers@intel.com>
    Signed-off-by: default avatarJeff Kirsher <jeffrey.t.kirsher@intel.com>
    780e354d
ixgbe_lib.c 35.7 KB