]> git.baikalelectronics.ru Git - kernel.git/commit
Merge branch 'tcp_skb_cb'
authorDavid S. Miller <davem@davemloft.net>
Sun, 28 Sep 2014 20:35:49 +0000 (16:35 -0400)
committerDavid S. Miller <davem@davemloft.net>
Sun, 28 Sep 2014 20:35:49 +0000 (16:35 -0400)
commit304422d63ba9c17c0c15149216f682d7f0d13506
tree0d769e6155899c89ae95c3e31c79ce011eb96a39
parentec1579d07b3363ba2d90d5f1de5fc3a09def7940
parent06c9029f9882c80081bd179b55ad19d26947fac9
Merge branch 'tcp_skb_cb'

Eric Dumazet says:

====================
tcp: better TCP_SKB_CB layout

TCP had the assumption that IPCB and IP6CB are first members of skb->cb[]

This is fine, except that IPCB/IP6CB are used in TCP for a very short time
in input path.

What really matters for TCP stack is to get skb->next,
TCP_SKB_CB(skb)->seq, and TCP_SKB_CB(skb)->end_seq in the same cache line.

skb that are immediately consumed do not care because whole skb->cb[] is
hot in cpu cache, while skb that sit in wocket write queue or receive queues
do not need TCP_SKB_CB(skb)->header at all.

This patch set implements the prereq for IPv4, IPv6, and TCP to make this
possible. This makes TCP more efficient.
====================

Signed-off-by: David S. Miller <davem@davemloft.net>