• Eric Dumazet's avatar
    tcp: fix three tcp sysctls tuning · c5ed63d6
    Eric Dumazet authored
    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: default avatarAnton Blanchard <anton@samba.org>
    Signed-off-by: default avatarEric Dumazet <eric.dumazet@gmail.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    c5ed63d6
tcp.c 85.7 KB