summaryrefslogtreecommitdiffstats
path: root/net/ipv4/fib_semantics.c
diff options
context:
space:
mode:
authorEric Dumazet <edumazet@google.com>2012-10-21 22:12:09 +0200
committerDavid S. Miller <davem@davemloft.net>2012-10-22 20:29:06 +0200
commitd94ce9b283736a876b2e6dec665c68e5e8b5d55e (patch)
tree77762849ae55afdd9ba6a9fbbf0855a68f7c6372 /net/ipv4/fib_semantics.c
parenttcp: speedup SIOCINQ ioctl (diff)
downloadlinux-d94ce9b283736a876b2e6dec665c68e5e8b5d55e.tar.xz
linux-d94ce9b283736a876b2e6dec665c68e5e8b5d55e.zip
ipv4: 16 slots in initial fib_info hash table
A small host typically needs ~10 fib_info structures, so create initial hash table with 16 slots instead of only one. This removes potential false sharing and reallocs/rehashes (1->2->4->8->16) Signed-off-by: Eric Dumazet <edumazet@google.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/ipv4/fib_semantics.c')
-rw-r--r--net/ipv4/fib_semantics.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/net/ipv4/fib_semantics.c b/net/ipv4/fib_semantics.c
index 71b125cd5db1..4797a800faf8 100644
--- a/net/ipv4/fib_semantics.c
+++ b/net/ipv4/fib_semantics.c
@@ -803,7 +803,7 @@ struct fib_info *fib_create_info(struct fib_config *cfg)
unsigned int bytes;
if (!new_size)
- new_size = 1;
+ new_size = 16;
bytes = new_size * sizeof(struct hlist_head *);
new_info_hash = fib_info_hash_alloc(bytes);
new_laddrhash = fib_info_hash_alloc(bytes);