[SK_BUFF]: Convert skb->tail to sk_buff_data_t
So that it is also an offset from skb->head, reduces its size from 8 to 4 bytes on 64bit architectures, allowing us to combine the 4 bytes hole left by the layer headers conversion, reducing struct sk_buff size to 256 bytes, i.e. 4 64byte cachelines, and since the sk_buff slab cache is SLAB_HWCACHE_ALIGN... :-) Many calculations that previously required that skb->{transport,network, mac}_header be first converted to a pointer now can be done directly, being meaningful as offsets or pointers. Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
committed by
David S. Miller
parent
be8bd86321
commit
27a884dc3c
@@ -189,7 +189,7 @@ ipq_flush(int verdict)
|
||||
static struct sk_buff *
|
||||
ipq_build_packet_message(struct ipq_queue_entry *entry, int *errp)
|
||||
{
|
||||
unsigned char *old_tail;
|
||||
sk_buff_data_t old_tail;
|
||||
size_t size = 0;
|
||||
size_t data_len = 0;
|
||||
struct sk_buff *skb;
|
||||
@@ -233,7 +233,7 @@ ipq_build_packet_message(struct ipq_queue_entry *entry, int *errp)
|
||||
if (!skb)
|
||||
goto nlmsg_failure;
|
||||
|
||||
old_tail= skb->tail;
|
||||
old_tail = skb->tail;
|
||||
nlh = NLMSG_PUT(skb, 0, 0, IPQM_PACKET, size - sizeof(*nlh));
|
||||
pmsg = NLMSG_DATA(nlh);
|
||||
memset(pmsg, 0, sizeof(*pmsg));
|
||||
|
Reference in New Issue
Block a user