diff options
author | Eric Dumazet <edumazet@google.com> | 2016-09-15 09:33:02 -0700 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2016-09-17 10:05:05 -0400 |
commit | 3613b3dbd1ade9a6a626dae1f608c57638eb5e8a (patch) | |
tree | d93ff35b7198f4f2ea6f9799f28d79a19ee1d814 /net/ipv4/tcp_veno.c | |
parent | e812bd905a5cf00fea95da9df4889dad63d4a36a (diff) | |
download | talos-obmc-linux-3613b3dbd1ade9a6a626dae1f608c57638eb5e8a.tar.gz talos-obmc-linux-3613b3dbd1ade9a6a626dae1f608c57638eb5e8a.zip |
tcp: prepare skbs for better sack shifting
With large BDP TCP flows and lossy networks, it is very important
to keep a low number of skbs in the write queue.
RACK and SACK processing can perform a linear scan of it.
We should avoid putting any payload in skb->head, so that SACK
shifting can be done if needed.
With this patch, we allow to pack ~0.5 MB per skb instead of
the 64KB initially cooked at tcp_sendmsg() time.
This gives a reduction of number of skbs in write queue by eight.
tcp_rack_detect_loss() likes this.
We still allow payload in skb->head for first skb put in the queue,
to not impact RPC workloads.
Signed-off-by: Eric Dumazet <edumazet@google.com>
Cc: Yuchung Cheng <ycheng@google.com>
Acked-by: Yuchung Cheng <ycheng@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/ipv4/tcp_veno.c')
0 files changed, 0 insertions, 0 deletions