]> git.proxmox.com Git - mirror_ubuntu-kernels.git/commit
tcp: prepare skbs for better sack shifting
authorEric Dumazet <edumazet@google.com>
Thu, 15 Sep 2016 16:33:02 +0000 (09:33 -0700)
committerDavid S. Miller <davem@davemloft.net>
Sat, 17 Sep 2016 14:05:05 +0000 (10:05 -0400)
commit3613b3dbd1ade9a6a626dae1f608c57638eb5e8a
treed93ff35b7198f4f2ea6f9799f28d79a19ee1d814
parente812bd905a5cf00fea95da9df4889dad63d4a36a
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>
net/ipv4/tcp.c