• Eric Dumazet's avatar
    tcp: prepare skbs for better sack shifting · 3613b3db
    Eric Dumazet authored
    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: default avatarEric Dumazet <edumazet@google.com>
    Cc: Yuchung Cheng <ycheng@google.com>
    Acked-by: default avatarYuchung Cheng <ycheng@google.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    3613b3db
tcp.c 85.7 KB