diff options
author | Eric Dumazet <dada1@cosmosbay.com> | 2005-12-22 15:49:22 -0500 |
---|---|---|
committer | David S. Miller <davem@sunset.davemloft.net> | 2006-01-03 16:11:15 -0500 |
commit | 90ddc4f0470427df306f308ad03db6b6b21644b8 (patch) | |
tree | f97c1d57b25585394ebbd4b42b8d42a339f98644 /net/irda | |
parent | 77d76ea310b50a9c8ff15bd290fcb4ed4961adf2 (diff) |
[NET]: move struct proto_ops to const
I noticed that some of 'struct proto_ops' used in the kernel may share
a cache line used by locks or other heavily modified data. (default
linker alignement is 32 bytes, and L1_CACHE_LINE is 64 or 128 at
least)
This patch makes sure a 'struct proto_ops' can be declared as const,
so that all cpus can share all parts of it without false sharing.
This is not mandatory : a driver can still use a read/write structure
if it needs to (and eventually a __read_mostly)
I made a global stubstitute to change all existing occurences to make
them const.
This should reduce the possibility of false sharing on SMP, and
speedup some socket system calls.
Signed-off-by: Eric Dumazet <dada1@cosmosbay.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/irda')
-rw-r--r-- | net/irda/af_irda.c | 16 |
1 files changed, 8 insertions, 8 deletions
diff --git a/net/irda/af_irda.c b/net/irda/af_irda.c index f121f7de2032..e57683d424f7 100644 --- a/net/irda/af_irda.c +++ b/net/irda/af_irda.c | |||
@@ -62,12 +62,12 @@ | |||
62 | 62 | ||
63 | static int irda_create(struct socket *sock, int protocol); | 63 | static int irda_create(struct socket *sock, int protocol); |
64 | 64 | ||
65 | static struct proto_ops irda_stream_ops; | 65 | static const struct proto_ops irda_stream_ops; |
66 | static struct proto_ops irda_seqpacket_ops; | 66 | static const struct proto_ops irda_seqpacket_ops; |
67 | static struct proto_ops irda_dgram_ops; | 67 | static const struct proto_ops irda_dgram_ops; |
68 | 68 | ||
69 | #ifdef CONFIG_IRDA_ULTRA | 69 | #ifdef CONFIG_IRDA_ULTRA |
70 | static struct proto_ops irda_ultra_ops; | 70 | static const struct proto_ops irda_ultra_ops; |
71 | #define ULTRA_MAX_DATA 382 | 71 | #define ULTRA_MAX_DATA 382 |
72 | #endif /* CONFIG_IRDA_ULTRA */ | 72 | #endif /* CONFIG_IRDA_ULTRA */ |
73 | 73 | ||
@@ -2464,7 +2464,7 @@ static struct net_proto_family irda_family_ops = { | |||
2464 | .owner = THIS_MODULE, | 2464 | .owner = THIS_MODULE, |
2465 | }; | 2465 | }; |
2466 | 2466 | ||
2467 | static struct proto_ops SOCKOPS_WRAPPED(irda_stream_ops) = { | 2467 | static const struct proto_ops SOCKOPS_WRAPPED(irda_stream_ops) = { |
2468 | .family = PF_IRDA, | 2468 | .family = PF_IRDA, |
2469 | .owner = THIS_MODULE, | 2469 | .owner = THIS_MODULE, |
2470 | .release = irda_release, | 2470 | .release = irda_release, |
@@ -2485,7 +2485,7 @@ static struct proto_ops SOCKOPS_WRAPPED(irda_stream_ops) = { | |||
2485 | .sendpage = sock_no_sendpage, | 2485 | .sendpage = sock_no_sendpage, |
2486 | }; | 2486 | }; |
2487 | 2487 | ||
2488 | static struct proto_ops SOCKOPS_WRAPPED(irda_seqpacket_ops) = { | 2488 | static const struct proto_ops SOCKOPS_WRAPPED(irda_seqpacket_ops) = { |
2489 | .family = PF_IRDA, | 2489 | .family = PF_IRDA, |
2490 | .owner = THIS_MODULE, | 2490 | .owner = THIS_MODULE, |
2491 | .release = irda_release, | 2491 | .release = irda_release, |
@@ -2506,7 +2506,7 @@ static struct proto_ops SOCKOPS_WRAPPED(irda_seqpacket_ops) = { | |||
2506 | .sendpage = sock_no_sendpage, | 2506 | .sendpage = sock_no_sendpage, |
2507 | }; | 2507 | }; |
2508 | 2508 | ||
2509 | static struct proto_ops SOCKOPS_WRAPPED(irda_dgram_ops) = { | 2509 | static const struct proto_ops SOCKOPS_WRAPPED(irda_dgram_ops) = { |
2510 | .family = PF_IRDA, | 2510 | .family = PF_IRDA, |
2511 | .owner = THIS_MODULE, | 2511 | .owner = THIS_MODULE, |
2512 | .release = irda_release, | 2512 | .release = irda_release, |
@@ -2528,7 +2528,7 @@ static struct proto_ops SOCKOPS_WRAPPED(irda_dgram_ops) = { | |||
2528 | }; | 2528 | }; |
2529 | 2529 | ||
2530 | #ifdef CONFIG_IRDA_ULTRA | 2530 | #ifdef CONFIG_IRDA_ULTRA |
2531 | static struct proto_ops SOCKOPS_WRAPPED(irda_ultra_ops) = { | 2531 | static const struct proto_ops SOCKOPS_WRAPPED(irda_ultra_ops) = { |
2532 | .family = PF_IRDA, | 2532 | .family = PF_IRDA, |
2533 | .owner = THIS_MODULE, | 2533 | .owner = THIS_MODULE, |
2534 | .release = irda_release, | 2534 | .release = irda_release, |