• Ido Shamay's avatar
    net/mlx4: Fix limiting number of IRQ's instead of RSS queues · bb2146bc
    Ido Shamay authored
    This fix a performance bug introduced by commit 90b1ebe7 "mlx4: set
    maximal number of default RSS queues", which limits the numbers of IRQs
    opened by core module.
    The limit should be on the number of queues in the indirection table -
    rx_rings, and not on the number of IRQ's. Also, limiting on mlx4_core
    initialization instead of in mlx4_en, prevented using "ethtool -L" to
    utilize all the CPU's, when performance mode is prefered, since limiting
    this number to 8 reduces overall packet rate by 15%-50% in multiple TCP
    streams applications.
    
    For example, after running ethtool -L <ethx> rx 16
    
              Packet rate
    Before the fix  897799
    After the fix   1142070
    
    Results were obtained using netperf:
    
    S=200 ; ( for i in $(seq 1 $S) ; do ( \
      netperf -H 11.7.13.55 -t TCP_RR -l 30 &) ; \
      wait ; done | grep "1        1" | awk '{SUM+=$6} END {print SUM}' )
    
    CC: Yuval Mintz <yuvalmin@broadcom.com>
    Signed-off-by: default avatarIdo Shamay <idos@mellanox.com>
    Signed-off-by: default avatarAmir Vadai <amirv@mellanox.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    bb2146bc
en_rx.c 30.8 KB