]> git.baikalelectronics.ru Git - kernel.git/commit
tcp: allow drivers to tweak TSQ logic
authorEric Dumazet <edumazet@google.com>
Sat, 11 Nov 2017 23:54:12 +0000 (15:54 -0800)
committerDavid S. Miller <davem@davemloft.net>
Tue, 14 Nov 2017 07:18:36 +0000 (16:18 +0900)
commitc235e58431e3afa698ef3aca0b0ec3377aab9920
treea294317a5c3f2d9f3144d9d5bf9e58f9f3d61c8f
parent80165bd1835c97cb7e86ab3a2955824fb2b8e312
tcp: allow drivers to tweak TSQ logic

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: Eric 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: Neal Cardwell <ncardwell@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
include/net/sock.h
net/core/sock.c
net/ipv4/tcp_output.c