• Eric Dumazet's avatar
    net/mlx4_en: fix ethtool -x · f7d3c1cb
    Eric Dumazet authored
    mlx4 RSS is limited to spread incoming packets to a power of two number
    of queues.
    
    An uniformly distibuted traffic would be split on queues 0 to N-1, N
    being a power of two, each queue having a 1/N weight.
    
    If number of RX queues is not a power of two, upper RX queues do not
    receive traffic.
    
    ethtool -x is lying, because it pretends some queues have higher weight.
    
    Before patch:
    
    lpaa24:~# ethtool -L eth1 rx 24
    lpaa24:~# ethtool -x eth1
    RX flow hash indirection table for eth1 with 24 RX ring(s):
        0:      0     1     2     3     4     5     6     7
        8:      8     9    10    11    12    13    14    15
       16:      0     1     2     3     4     5     6     7
    RSS hash key:
    e0:7c:3a:89:07:55:b6:58:69:cc:f4:e5:24:62:e3:25:88:6c:42:5b:d2:cb:9a:d2:e0:06:e1:dc:f9:09:a1:89:0f:a0:30:43:73:6f:0c:b6
    
    If this information was correct, user space tools could expect queues 0
    to 7 to receive twice more traffic than queues 8 to 15
    
    After patch :
    
    lpaa24:~# ethtool -L eth1 rx 24
    lpaa24:~# ethtool -x eth1
    RX flow hash indirection table for eth1 with 24 RX ring(s):
        0:      0     1     2     3     4     5     6     7
        8:      8     9    10    11    12    13    14    15
    RSS hash key:
    da:7b:09:60:f1:ac:67:b4:d0:72:d4:ec:a2:e5:80:0a:ad:50:22:1a:f8:f9:66:54:5f:22:45:c3:88:f4:57:82:c1:c1:90:ed:70:cb:40:ce
    lpaa24:~# ethtool -X eth1 equal 8
    lpaa24:~# ethtool -x eth1
    RX flow hash indirection table for eth1 with 24 RX ring(s):
        0:      0     1     2     3     4     5     6     7
        8:      0     1     2     3     4     5     6     7
    RSS hash key:
    da:7b:09:60:f1:ac:67:b4:d0:72:d4:ec:a2:e5:80:0a:ad:50:22:1a:f8:f9:66:54:5f:22:45:c3:88:f4:57:82:c1:c1:90:ed:70:cb:40:ce
    Signed-off-by: default avatarEric Dumazet <edumazet@google.com>
    Reported-by: default avatarMaciej Żenczykowski <maze@google.com>
    Cc: Eugenia Emantayev <eugenia@mellanox.com>
    Cc: Wei Wang <weiwan@google.com>
    Cc: Willem de Bruijn <willemb@google.com>
    Reviewed-by: default avatarTariq Toukan <tariqt@mellanox.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    f7d3c1cb
en_ethtool.c 56.2 KB