netns: reorder fields in struct net
authorEric Dumazet <eric.dumazet@gmail.com>
Thu, 14 Oct 2010 05:56:18 +0000 (05:56 +0000)
committerDavid S. Miller <davem@davemloft.net>
Sun, 17 Oct 2010 20:49:14 +0000 (13:49 -0700)
commit8e602ce2980fd6941dc0d3dda12e5095e8206f34
tree1a0ea79a6db1b01660cc034c822d02c95e356388
parentc60ce4e265404ca42ba860401f4b0f1e97332a67
netns: reorder fields in struct net

In a network bench, I noticed an unfortunate false sharing between
'loopback_dev' and 'count' fields in "struct net".

'count' is written each time a socket is created or destroyed, while
loopback_dev might be often read in routing code.

Move loopback_dev in a read mostly section of "struct net"

Note: struct netns_xfrm is cache line aligned on SMP.
(It contains a "struct dst_ops")
Move it at the end to avoid holes, and reduce sizeof(struct net) by 128
bytes on ia32.

Signed-off-by: Eric Dumazet <eric.dumazet@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
include/net/net_namespace.h
include/net/netns/xfrm.h