diff options
author | Eric Dumazet <dada1@cosmosbay.com> | 2008-02-07 18:03:18 -0800 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2008-02-07 18:03:18 -0800 |
commit | 5f58a5c8725b48f3e32851f9748527c8d1ff71b2 (patch) | |
tree | bffcc82040bdd570da20738fd55cc59288e29390 /net | |
parent | 4136cd523eb0c0bd53173e16fd7406d31d05824f (diff) | |
download | op-kernel-dev-5f58a5c8725b48f3e32851f9748527c8d1ff71b2.zip op-kernel-dev-5f58a5c8725b48f3e32851f9748527c8d1ff71b2.tar.gz |
[IPSEC] flow: Remove an unnecessary ____cacheline_aligned
We use a percpu variable named flow_hash_info, which holds 12 bytes.
It is currently marked as ____cacheline_aligned, which makes linker
skip space to properly align this variable.
Before :
c065cc90 D per_cpu__softnet_data
c065cd00 d per_cpu__flow_tables
<Here, hole of 124 bytes>
c065cd80 d per_cpu__flow_hash_info
<Here, hole of 116 bytes>
c065ce00 d per_cpu__flow_flush_tasklets
c065ce14 d per_cpu__rt_cache_stat
This alignement is quite unproductive, and removing it reduces the
size of percpu data (by 240 bytes on my x86 machine), and improves
performance (flow_tables & flow_hash_info can share a single cache
line)
After patch :
c065cc04 D per_cpu__softnet_data
c065cc4c d per_cpu__flow_tables
c065cc50 d per_cpu__flow_hash_info
c065cc5c d per_cpu__flow_flush_tasklets
c065cc70 d per_cpu__rt_cache_stat
Signed-off-by: Eric Dumazet <dada1@cosmosbay.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net')
-rw-r--r-- | net/core/flow.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/net/core/flow.c b/net/core/flow.c index 46b38e0..9cfe845 100644 --- a/net/core/flow.c +++ b/net/core/flow.c @@ -52,7 +52,7 @@ struct flow_percpu_info { int hash_rnd_recalc; u32 hash_rnd; int count; -} ____cacheline_aligned; +}; static DEFINE_PER_CPU(struct flow_percpu_info, flow_hash_info) = { 0 }; #define flow_hash_rnd_recalc(cpu) \ |