diff options
author | Eric Dumazet <eric.dumazet@gmail.com> | 2010-06-09 14:43:38 +0200 |
---|---|---|
committer | Patrick McHardy <kaber@trash.net> | 2010-06-09 14:43:38 +0200 |
commit | b3c5163fe0193a74016dba1bb22491e0d1e9aaa4 (patch) | |
tree | fc52d035b431969c034a1033e1c70803dd9ef219 /include/net | |
parent | 5bfddbd46a95c978f4d3c992339cbdf4f4b790a3 (diff) |
netfilter: nf_conntrack: per_cpu untracking
NOTRACK makes all cpus share a cache line on nf_conntrack_untracked
twice per packet, slowing down performance.
This patch converts it to a per_cpu variable.
Signed-off-by: Eric Dumazet <eric.dumazet@gmail.com>
Signed-off-by: Patrick McHardy <kaber@trash.net>
Diffstat (limited to 'include/net')
-rw-r--r-- | include/net/netfilter/nf_conntrack.h | 5 |
1 files changed, 2 insertions, 3 deletions
diff --git a/include/net/netfilter/nf_conntrack.h b/include/net/netfilter/nf_conntrack.h index 3bc38c70bbb..84a4b6fec99 100644 --- a/include/net/netfilter/nf_conntrack.h +++ b/include/net/netfilter/nf_conntrack.h @@ -261,11 +261,10 @@ extern s16 (*nf_ct_nat_offset)(const struct nf_conn *ct, u32 seq); /* Fake conntrack entry for untracked connections */ +DECLARE_PER_CPU(struct nf_conn, nf_conntrack_untracked); static inline struct nf_conn *nf_ct_untracked_get(void) { - extern struct nf_conn nf_conntrack_untracked; - - return &nf_conntrack_untracked; + return &__raw_get_cpu_var(nf_conntrack_untracked); } extern void nf_ct_untracked_status_or(unsigned long bits); |