• Eric Dumazet's avatar
    tcp: GSO should be TSQ friendly · d6a4a104
    Eric Dumazet authored
    I noticed that TSQ (TCP Small queues) was less effective when TSO is
    turned off, and GSO is on. If BQL is not enabled, TSQ has then no
    effect.
    
    It turns out the GSO engine frees the original gso_skb at the time the
    fragments are generated and queued to the NIC.
    
    We should instead call the tcp_wfree() destructor for the last fragment,
    to keep the flow control as intended in TSQ. This effectively limits
    the number of queued packets on qdisc + NIC layers.
    Signed-off-by: default avatarEric Dumazet <edumazet@google.com>
    Cc: Tom Herbert <therbert@google.com>
    Cc: Yuchung Cheng <ycheng@google.com>
    Cc: Nandita Dukkipati <nanditad@google.com>
    Cc: Neal Cardwell <ncardwell@google.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    d6a4a104
tcp.h 48.4 KB