net: Use 16bits for *_headers fields of struct skbuff
authorSimon Horman <horms@verge.net.au>
Thu, 23 May 2013 21:02:51 +0000 (21:02 +0000)
committerDavid S. Miller <davem@davemloft.net>
Tue, 28 May 2013 05:50:59 +0000 (22:50 -0700)
commit1a37e412a0225fcba5587f24c0dfc7636efc8b69
tree34abfd79e6e06b0be580ebacfa497330e4dc1634
parent50ab731e967d65549b11b808f129329dd614e8d9
net: Use 16bits for *_headers fields of struct skbuff

In order to mitigate ongoing incresase in the size of struct skbuff
use 16 bit integer offsets rather than pointers for inner_*_headers.

This appears to reduce the size of struct skbuff from 0xd0 to 0xc0
bytes on x86_64 with the following all unset.

CONFIG_XFRM
CONFIG_NF_CONNTRACK
CONFIG_NF_CONNTRACK_MODULE
NET_SKBUFF_NF_DEFRAG_NEEDED
CONFIG_BRIDGE_NETFILTER
CONFIG_NET_SCHED
CONFIG_IPV6_NDISC_NODETYPE
CONFIG_NET_DMA
CONFIG_NETWORK_SECMARK

Signed-off-by: Simon Horman <horms@verge.net.au>
Signed-off-by: David S. Miller <davem@davemloft.net>
include/linux/skbuff.h