diff options
author | Eric Dumazet <eric.dumazet@gmail.com> | 2010-06-08 14:11:19 +0200 |
---|---|---|
committer | Patrick McHardy <kaber@trash.net> | 2010-06-08 14:11:19 +0200 |
commit | 339bb99e4a8ba1f8960eed21d50be808b35ad22a (patch) | |
tree | 077f679c919b00331569622e035a822e94492377 /include | |
parent | netfilter: vmalloc_node cleanup (diff) | |
download | linux-339bb99e4a8ba1f8960eed21d50be808b35ad22a.tar.xz linux-339bb99e4a8ba1f8960eed21d50be808b35ad22a.zip |
netfilter: xt_rateest: Better struct xt_rateest layout
We currently dirty two cache lines in struct xt_rateest, this hurts SMP
performance.
This patch moves lock/bstats/rstats at beginning of structure so that
they share a single cache line.
Signed-off-by: Eric Dumazet <eric.dumazet@gmail.com>
Signed-off-by: Patrick McHardy <kaber@trash.net>
Diffstat (limited to 'include')
-rw-r--r-- | include/net/netfilter/xt_rateest.h | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/include/net/netfilter/xt_rateest.h b/include/net/netfilter/xt_rateest.h index ddbf37e19616..b1d780e21ce3 100644 --- a/include/net/netfilter/xt_rateest.h +++ b/include/net/netfilter/xt_rateest.h @@ -2,13 +2,17 @@ #define _XT_RATEEST_H struct xt_rateest { + /* keep lock and bstats on same cache line to speedup xt_rateest_tg() */ + struct gnet_stats_basic_packed bstats; + spinlock_t lock; + /* keep rstats and lock on same cache line to speedup xt_rateest_mt() */ + struct gnet_stats_rate_est rstats; + + /* following fields not accessed in hot path */ struct hlist_node list; char name[IFNAMSIZ]; unsigned int refcnt; - spinlock_t lock; struct gnet_estimator params; - struct gnet_stats_rate_est rstats; - struct gnet_stats_basic_packed bstats; }; extern struct xt_rateest *xt_rateest_lookup(const char *name); |