inetpeer: restore small inet_peer structures
authorEric Dumazet <eric.dumazet@gmail.com>
Wed, 16 Jun 2010 04:52:13 +0000 (04:52 +0000)
committerDavid S. Miller <davem@davemloft.net>
Wed, 16 Jun 2010 18:55:39 +0000 (11:55 -0700)
commit317fe0e6c5dc9448bcef41a2e31fecfd3dba7f55
treec2a042e1c8bb96b7fdeadf658309ead1b6e8dabc
parentfdb93f8ac39aa5902f3d264edd50dffcabfdd13b
inetpeer: restore small inet_peer structures

Addition of rcu_head to struct inet_peer added 16bytes on 64bit arches.

Thats a bit unfortunate, since old size was exactly 64 bytes.

This can be solved, using an union between this rcu_head an four fields,
that are normally used only when a refcount is taken on inet_peer.
rcu_head is used only when refcnt=-1, right before structure freeing.

Add a inet_peer_refcheck() function to check this assertion for a while.

We can bring back SLAB_HWCACHE_ALIGN qualifier in kmem cache creation.

Signed-off-by: Eric Dumazet <eric.dumazet@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
include/net/inetpeer.h
net/ipv4/inetpeer.c
net/ipv4/route.c
net/ipv4/tcp_ipv4.c