aboutsummaryrefslogtreecommitdiffstats
path: root/net/ipv4/fib_lookup.h
diff options
context:
space:
mode:
authorEric Dumazet <eric.dumazet@gmail.com>2010-10-14 20:56:39 +0000
committerDavid S. Miller <davem@davemloft.net>2010-10-17 13:53:16 -0700
commit19f572565ef66a0439574fd2299a7c804147e133 (patch)
tree09f9655a4e0d61986cb5ff88c503651974f47c65 /net/ipv4/fib_lookup.h
parentfib_hash: RCU conversion phase 1 (diff)
downloadlinux-dev-19f572565ef66a0439574fd2299a7c804147e133.tar.xz
linux-dev-19f572565ef66a0439574fd2299a7c804147e133.zip
fib_hash: RCU conversion phase 2
Get rid of fib_hash_lock rwlock. The fn_zone hash table resize is the noticeable part of this patch. I added a seqlock per fn_zone, so that readers can restart their lookup in the (very rare) case a writer expanded the hash table. Add rcu heads in fib_alias and fib_node, use call_rcu() to defer their freeing, and use appropriate _rcu list manipulations. Stress test (160.000.000 udp frames sent, IP route cache disabled to mimic DDOS attack, FIB_HASH) Before: real 0m41.191s user 0m13.137s sys 8m55.241s After: real 0m38.091s user 0m13.189s sys 7m53.018s Signed-off-by: Eric Dumazet <eric.dumazet@gmail.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/ipv4/fib_lookup.h')
-rw-r--r--net/ipv4/fib_lookup.h2
1 files changed, 0 insertions, 2 deletions
diff --git a/net/ipv4/fib_lookup.h b/net/ipv4/fib_lookup.h
index b9c9a9f2aee5..5072d8effd5d 100644
--- a/net/ipv4/fib_lookup.h
+++ b/net/ipv4/fib_lookup.h
@@ -12,9 +12,7 @@ struct fib_alias {
u8 fa_type;
u8 fa_scope;
u8 fa_state;
-#ifdef CONFIG_IP_FIB_TRIE
struct rcu_head rcu;
-#endif
};
#define FA_S_ACCESSED 0x01