• Eric Dumazet's avatar
    net: fix multiqueue selection · 50d1784e
    Eric Dumazet authored
    commit 416186fb ("net: Split core bits of netdev_pick_tx
    into __netdev_pick_tx") added a bug that disables caching of queue
    index in the socket.
    
    This is the source of packet reorders for TCP flows, and
    again this is happening more often when using FQ pacing.
    
    Old code was doing
    
    if (queue_index != old_index)
    	sk_tx_queue_set(sk, queue_index);
    
    Alexander renamed the variables but forgot to change sk_tx_queue_set()
    2nd parameter.
    
    if (queue_index != new_index)
    	sk_tx_queue_set(sk, queue_index);
    
    This means we store -1 over and over in sk->sk_tx_queue_mapping
    Signed-off-by: default avatarEric Dumazet <edumazet@google.com>
    Cc: Alexander Duyck <alexander.h.duyck@intel.com>
    Acked-by: default avatarAlexander Duyck <alexander.h.duyck@intel.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    50d1784e
flow_dissector.c 8.86 KB