提交 5f58a5c8 编写于 作者: E Eric Dumazet 提交者: David S. Miller

[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: NEric Dumazet <dada1@cosmosbay.com>
Signed-off-by: NDavid S. Miller <davem@davemloft.net>
上级 4136cd52
...@@ -52,7 +52,7 @@ struct flow_percpu_info { ...@@ -52,7 +52,7 @@ struct flow_percpu_info {
int hash_rnd_recalc; int hash_rnd_recalc;
u32 hash_rnd; u32 hash_rnd;
int count; int count;
} ____cacheline_aligned; };
static DEFINE_PER_CPU(struct flow_percpu_info, flow_hash_info) = { 0 }; static DEFINE_PER_CPU(struct flow_percpu_info, flow_hash_info) = { 0 };
#define flow_hash_rnd_recalc(cpu) \ #define flow_hash_rnd_recalc(cpu) \
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册