summaryrefslogtreecommitdiff
path: root/net/core/flow.c
diff options
context:
space:
mode:
authorEric Dumazet <dada1@cosmosbay.com>2008-02-07 18:03:18 -0800
committerDavid S. Miller <davem@davemloft.net>2008-02-07 18:03:18 -0800
commit5f58a5c8725b48f3e32851f9748527c8d1ff71b2 (patch)
treebffcc82040bdd570da20738fd55cc59288e29390 /net/core/flow.c
parent4136cd523eb0c0bd53173e16fd7406d31d05824f (diff)
downloadlwn-5f58a5c8725b48f3e32851f9748527c8d1ff71b2.tar.gz
lwn-5f58a5c8725b48f3e32851f9748527c8d1ff71b2.zip
[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/core/flow.c')
-rw-r--r--net/core/flow.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/net/core/flow.c b/net/core/flow.c
index 46b38e06e0d7..9cfe84571ca5 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) \