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>
No related branches found
No related tags found
Showing
- include/net/ip.h 12 additions, 3 deletionsinclude/net/ip.h
- include/net/ipv6.h 2 additions, 1 deletioninclude/net/ipv6.h
- include/net/tcp.h 6 additions, 6 deletionsinclude/net/tcp.h
- net/dccp/ipv6.c 1 addition, 1 deletionnet/dccp/ipv6.c
- net/ipv4/ip_options.c 2 additions, 4 deletionsnet/ipv4/ip_options.c
- net/ipv4/ip_output.c 5 additions, 3 deletionsnet/ipv4/ip_output.c
- net/ipv4/tcp_ipv4.c 18 additions, 11 deletionsnet/ipv4/tcp_ipv4.c
- net/ipv4/tcp_output.c 5 additions, 0 deletionsnet/ipv4/tcp_output.c
- net/ipv6/af_inet6.c 2 additions, 2 deletionsnet/ipv6/af_inet6.c
- net/ipv6/syncookies.c 1 addition, 1 deletionnet/ipv6/syncookies.c
- net/ipv6/tcp_ipv6.c 10 additions, 2 deletionsnet/ipv6/tcp_ipv6.c
Loading
Please register or sign in to comment