• Eric Dumazet's avatar
    tcp: allow drivers to tweak TSQ logic · 3a9b76fd
    Eric Dumazet authored
    I had many reports that TSQ logic breaks wifi aggregation.
    
    Current logic is to allow up to 1 ms of bytes to be queued into qdisc
    and drivers queues.
    
    But Wifi aggregation needs a bigger budget to allow bigger rates to
    be discovered by various TCP Congestion Controls algorithms.
    
    This patch adds an extra socket field, allowing wifi drivers to select
    another log scale to derive TCP Small Queue credit from current pacing
    rate.
    
    Initial value is 10, meaning that this patch does not change current
    behavior.
    
    We expect wifi drivers to set this field to smaller values (tests have
    been done with values from 6 to 9)
    
    They would have to use following template :
    
    if (skb->sk && skb->sk->sk_pacing_shift != MY_PACING_SHIFT)
         skb->sk->sk_pacing_shift = MY_PACING_SHIFT;
    
    Ref: https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1670041
    
    Signed-off-by: default avatarEric Dumazet <edumazet@google.com>
    Cc: Johannes Berg <johannes.berg@intel.com>
    Cc: Toke Høiland-Jørgensen <toke@toke.dk>
    Cc: Kir Kolyshkin <kir@openvz.org>
    Acked-by: default avatarNeal Cardwell <ncardwell@google.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    3a9b76fd