diff options
author | Eric Dumazet <dada1@cosmosbay.com> | 2007-03-27 17:18:34 -0400 |
---|---|---|
committer | David S. Miller <davem@sunset.davemloft.net> | 2007-04-26 01:28:20 -0400 |
commit | 03d4f879b9ddf7d5c1f788792247e62450342eed (patch) | |
tree | ae5598e3309da4a6725f60ce7facf968849a7ab8 /net/ipv4 | |
parent | 4103f8cd5c1f260d674a7b426ed221812de54d47 (diff) |
[IPV4]: align inet_protos[] on SMP
As IPPROTO_TCP is 6, it makes sense to make sure inet_protos[] array
is properly cache line aligned to avoid false sharing on SMP.
c0680540 b peer_total
c0680544 b inet_peer_unused_head
c0680560 B inet_protos
On i386 this example, we can see that inet_protos[IPPROTO_TCP] shares
a potentially hot (and modified) cache line.
Signed-off-by: Eric Dumazet <dada1@cosmosbay.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/ipv4')
-rw-r--r-- | net/ipv4/protocol.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/net/ipv4/protocol.c b/net/ipv4/protocol.c index da70fef82c93..971ab9356e51 100644 --- a/net/ipv4/protocol.c +++ b/net/ipv4/protocol.c | |||
@@ -45,7 +45,7 @@ | |||
45 | #include <net/ipip.h> | 45 | #include <net/ipip.h> |
46 | #include <linux/igmp.h> | 46 | #include <linux/igmp.h> |
47 | 47 | ||
48 | struct net_protocol *inet_protos[MAX_INET_PROTOS]; | 48 | struct net_protocol *inet_protos[MAX_INET_PROTOS] ____cacheline_aligned_in_smp; |
49 | static DEFINE_SPINLOCK(inet_proto_lock); | 49 | static DEFINE_SPINLOCK(inet_proto_lock); |
50 | 50 | ||
51 | /* | 51 | /* |