• Eric Dumazet's avatar
    tcp: do not lock listener to process SYN packets · e994b2f0
    Eric Dumazet authored
    Everything should now be ready to finally allow SYN
    packets processing without holding listener lock.
    
    Tested:
    
    3.5 Mpps SYNFLOOD. Plenty of cpu cycles available.
    
    Next bottleneck is the refcount taken on listener,
    that could be avoided if we remove SLAB_DESTROY_BY_RCU
    strict semantic for listeners, and use regular RCU.
    
        13.18%  [kernel]  [k] __inet_lookup_listener
         9.61%  [kernel]  [k] tcp_conn_request
         8.16%  [kernel]  [k] sha_transform
         5.30%  [kernel]  [k] inet_reqsk_alloc
         4.22%  [kernel]  [k] sock_put
         3.74%  [kernel]  [k] tcp_make_synack
         2.88%  [kernel]  [k] ipt_do_table
         2.56%  [kernel]  [k] memcpy_erms
         2.53%  [kernel]  [k] sock_wfree
         2.40%  [kernel]  [k] tcp_v4_rcv
         2.08%  [kernel]  [k] fib_table_lookup
         1.84%  [kernel]  [k] tcp_openreq_init_rwin
    Signed-off-by: default avatarEric Dumazet <edumazet@google.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    e994b2f0
tcp_ipv4.c 60.5 KB