| Submitter | Eric Dumazet |
|---|---|
| Date | Nov. 30, 2012, 8:08 p.m. |
| Message ID | <1354306132.20109.41.camel@edumazet-glaptop> |
| Download | mbox | patch |
| Permalink | /patch/203036/ |
| State | Accepted |
| Delegated to: | David Miller |
| Headers | show |
Comments
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
Patch
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,