tcp: introduce tcp_try_coalesce
authorEric Dumazet <edumazet@google.com>
Mon, 23 Apr 2012 07:11:42 +0000 (07:11 +0000)
committerDavid S. Miller <davem@davemloft.net>
Tue, 24 Apr 2012 02:42:49 +0000 (22:42 -0400)
commit1402d366019fedaa2b024f2bac06b7cc9a8782e1
treef74c00a2308ad13d6970cdc7e5cc29d2f0f809fa
parente29ecd51de1683e6aeb88d76251f194b0311f749
tcp: introduce tcp_try_coalesce

commit c8628155ece3 (tcp: reduce out_of_order memory use) took care of
coalescing tcp segments provided by legacy devices (linear skbs)

We extend this idea to fragged skbs, as their truesize can be heavy.

ixgbe for example uses 256+1024+PAGE_SIZE/2 = 3328 bytes per segment.

Use this coalescing strategy for receive queue too.

This contributes to reduce number of tcp collapses, at minimal cost, and
reduces memory overhead and packets drops.

Signed-off-by: Eric Dumazet <edumazet@google.com>
Cc: Neal Cardwell <ncardwell@google.com>
Cc: Tom Herbert <therbert@google.com>
Cc: Maciej Żenczykowski <maze@google.com>
Cc: Ilpo Järvinen <ilpo.jarvinen@helsinki.fi>
Acked-by: Neal Cardwell <ncardwell@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/ipv4/tcp_input.c