diff options
author | Eric Dumazet <edumazet@google.com> | 2013-10-01 21:23:44 +0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2013-10-03 00:45:17 +0400 |
commit | 6ae705323b716ea7a8cc26bee79176398a9b2e89 (patch) | |
tree | e3b90b1519e5b90a6d3ec8b21493c804da185b76 /drivers/net/usb | |
parent | bbe34cf8a1a2cc174e6516fc230b91b531da7ddf (diff) | |
download | linux-6ae705323b716ea7a8cc26bee79176398a9b2e89.tar.xz |
tcp: sndbuf autotuning improvements
tcp_fixup_sndbuf() is underestimating initial send buffer requirements.
It was not noticed because big GSO packets were escaping the limitation,
but with smaller TSO packets (or TSO/GSO/SG off), application hits
sk_sndbuf before having a chance to fill enough packets in socket write
queue.
- initial cwnd can be bigger than 10 for specific routes
- SKB_TRUESIZE() is a bit under real needs in some cases,
because of power-of-two rounding in kmalloc()
- Fast Recovery (RFC 5681 3.2) : Cubic needs 70% factor
- Extra cushion (application might react slowly to POLLOUT)
tcp_v4_conn_req_fastopen() needs to call tcp_init_metrics() before
calling tcp_init_buffer_space()
Then we realize tcp_new_space() should call tcp_fixup_sndbuf()
instead of duplicating this stuff.
Rename tcp_fixup_sndbuf() to tcp_sndbuf_expand() to be more
descriptive.
Signed-off-by: Eric Dumazet <edumazet@google.com>
Signed-off-by: Neal Cardwell <ncardwell@google.com>
Signed-off-by: Yuchung Cheng <ycheng@google.com>
Acked-by: Maciej Żenczykowski <maze@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/usb')
0 files changed, 0 insertions, 0 deletions