diff options
author | Eric Dumazet <edumazet@google.com> | 2012-11-30 10:08:52 +0000 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2012-12-01 11:36:37 -0500 |
commit | fd90b29d757827ab12d6669292612308ec249532 (patch) | |
tree | ba0a7cbd8520e3e7d4a45ff91e9e1b5ea4850810 /net/ipv4 | |
parent | abe303dbc22bd16cde6f1a62fc25f63cc254caf7 (diff) | |
download | op-kernel-dev-fd90b29d757827ab12d6669292612308ec249532.zip op-kernel-dev-fd90b29d757827ab12d6669292612308ec249532.tar.gz |
tcp: change default tcp hash size
As time passed, available memory increased faster than number of
concurrent tcp sockets.
As a result, a machine with 4GB of ram gets a hash table
with 524288 slots, using 8388608 bytes of memory.
Lets change that by a 16x factor (one slot for 128 KB of ram)
Even if a small machine needs a _lot_ of sockets, tcp lookups are now
very efficient, using one cache line per socket.
Signed-off-by: Eric Dumazet <edumazet@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/ipv4')
-rw-r--r-- | net/ipv4/tcp.c | 6 |
1 files changed, 2 insertions, 4 deletions
diff --git a/net/ipv4/tcp.c b/net/ipv4/tcp.c index e6eace1..1aca02c 100644 --- a/net/ipv4/tcp.c +++ b/net/ipv4/tcp.c @@ -3590,8 +3590,7 @@ void __init tcp_init(void) alloc_large_system_hash("TCP established", sizeof(struct inet_ehash_bucket), thash_entries, - (totalram_pages >= 128 * 1024) ? - 13 : 15, + 17, /* one slot per 128 KB of memory */ 0, NULL, &tcp_hashinfo.ehash_mask, @@ -3607,8 +3606,7 @@ void __init tcp_init(void) alloc_large_system_hash("TCP bind", sizeof(struct inet_bind_hashbucket), tcp_hashinfo.ehash_mask + 1, - (totalram_pages >= 128 * 1024) ? - 13 : 15, + 17, /* one slot per 128 KB of memory */ 0, &tcp_hashinfo.bhash_size, NULL, |