]> git.karo-electronics.de Git - karo-tx-linux.git/commit
tcp: fix three tcp sysctls tuning
authorEric Dumazet <eric.dumazet@gmail.com>
Thu, 26 Aug 2010 06:02:17 +0000 (23:02 -0700)
committerPaul Gortmaker <paul.gortmaker@windriver.com>
Thu, 6 Jan 2011 23:07:56 +0000 (18:07 -0500)
commitdb7106a5dc4f8f77213654bc849583d73ea154eb
treed23133f61cfad8179e78e8a18c74536e61c70a55
parentd62350df64edd6bbfd2530043044064f22def8f1
tcp: fix three tcp sysctls tuning

commit c5ed63d66f24fd4f7089b5a6e087b0ce7202aa8e upstream.

As discovered by Anton Blanchard, current code to autotune
tcp_death_row.sysctl_max_tw_buckets, sysctl_tcp_max_orphans and
sysctl_max_syn_backlog makes little sense.

The bigger a page is, the less tcp_max_orphans is : 4096 on a 512GB
machine in Anton's case.

(tcp_hashinfo.bhash_size * sizeof(struct inet_bind_hashbucket))
is much bigger if spinlock debugging is on. Its wrong to select bigger
limits in this case (where kernel structures are also bigger)

bhash_size max is 65536, and we get this value even for small machines.

A better ground is to use size of ehash table, this also makes code
shorter and more obvious.

Based on a patch from Anton, and another from David.

Reported-and-tested-by: Anton Blanchard <anton@samba.org>
Signed-off-by: Eric Dumazet <eric.dumazet@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
net/ipv4/tcp.c