• Sebastian Sanchez's avatar
    IB/hfi1: Reserve and collapse CPU cores for contexts · d6373019
    Sebastian Sanchez authored
    Kernel receive queues oversubscribe CPU cores on multi-HFI systems.
    To prevent this, the kernel receive queues are separated onto
    different cores, and the SDMA engine interrupts are constrained to
    a lesser number of cores.
    
    hfi1s_on_numa_node*krcvqs is the number of CPU cores that are
    reserved for kernel receive queues for all HFIs. Each HFI initializes
    its kernel receive queues to one of the reserved CPU cores. If there
    ends up being 0 CPU cores leftover for SDMA engines, use the same
    CPU cores as receive contexts.
    
    In addition, general and control contexts are assigned to their own
    CPU core, however, both types of contexts tend to have low traffic.
    To save CPU cores, collapse general and control contexts to one CPU
    core for all HFI units. This change prevents SDMA engine interrupts
    from wrapping around general contexts.
    Reviewed-by: default avatarDean Luick <dean.luick@intel.com>
    Signed-off-by: default avatarSebastian Sanchez <sebastian.sanchez@intel.com>
    Signed-off-by: default avatarDoug Ledford <dledford@redhat.com>
    d6373019
init.c 49 KB