Message ID | 1354306132.20109.41.camel@edumazet-glaptop |
---|---|
State | Accepted, archived |
Delegated to: | David Miller |
Headers | show |
From: Eric Dumazet <eric.dumazet@gmail.com> Date: Fri, 30 Nov 2012 12:08:52 -0800 > From: Eric Dumazet <edumazet@google.com> > > 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> Agreed, applied, thanks Eric. -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
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,