Re: [PATCH 4/4 net-next] tcp: makes tcp_try_coalesce aware of skb->head_frag
From: David Miller <davem@davemloft.net>
Date: 2012-05-01 01:49:06
From: David Miller <davem@davemloft.net>
Date: 2012-05-01 01:49:06
From: Eric Dumazet <redacted> Date: Fri, 27 Apr 2012 12:38:33 +0200
From: Eric Dumazet <edumazet@google.com> TCP coalesce can check if skb to be merged has its skb->head mapped to a page fragment, instead of a kmalloc() area. We had to disable coalescing in this case, for performance reasons. We 'upgrade' skb->head as a fragment in itself. This reduces number of cache misses when user makes its copies, since a less sk_buff are fetched. This makes receive and ofo queues shorter and thus reduce cache line misses in TCP stack. This is a followup of patch "net: allow skb->head to be a page fragment" Tested with tg3 nic, with GRO on or off. We can see "TCPRcvCoalesce" counter being incremented. Signed-off-by: Eric Dumazet <edumazet@google.com>
Applied.