1. 24 3月, 2015 3 次提交
  2. 21 3月, 2015 4 次提交
    • E
      Revert "selinux: add a skb_owned_by() hook" · d3593b5c
      Eric Dumazet 提交于
      This reverts commit ca10b9e9.
      
      No longer needed after commit eb8895de
      ("tcp: tcp_make_synack() should use sock_wmalloc")
      
      When under SYNFLOOD, we build lot of SYNACK and hit false sharing
      because of multiple modifications done on sk_listener->sk_wmem_alloc
      
      Since tcp_make_synack() uses sock_wmalloc(), there is no need
      to call skb_set_owner_w() again, as this adds two atomic operations.
      Signed-off-by: NEric Dumazet <edumazet@google.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      d3593b5c
    • J
      tcp: fix tcp fin memory accounting · d22e1537
      Josh Hunt 提交于
      tcp_send_fin() does not account for the memory it allocates properly, so
      sk_forward_alloc can be negative in cases where we've sent a FIN:
      
      ss example output (ss -amn | grep -B1 f4294):
      tcp    FIN-WAIT-1 0      1            192.168.0.1:45520         192.0.2.1:8080
      	skmem:(r0,rb87380,t0,tb87380,f4294966016,w1280,o0,bl0)
      Acked-by: NEric Dumazet <edumazet@google.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      d22e1537
    • E
      inet: get rid of central tcp/dccp listener timer · fa76ce73
      Eric Dumazet 提交于
      One of the major issue for TCP is the SYNACK rtx handling,
      done by inet_csk_reqsk_queue_prune(), fired by the keepalive
      timer of a TCP_LISTEN socket.
      
      This function runs for awful long times, with socket lock held,
      meaning that other cpus needing this lock have to spin for hundred of ms.
      
      SYNACK are sent in huge bursts, likely to cause severe drops anyway.
      
      This model was OK 15 years ago when memory was very tight.
      
      We now can afford to have a timer per request sock.
      
      Timer invocations no longer need to lock the listener,
      and can be run from all cpus in parallel.
      
      With following patch increasing somaxconn width to 32 bits,
      I tested a listener with more than 4 million active request sockets,
      and a steady SYNFLOOD of ~200,000 SYN per second.
      Host was sending ~830,000 SYNACK per second.
      
      This is ~100 times more what we could achieve before this patch.
      
      Later, we will get rid of the listener hash and use ehash instead.
      Signed-off-by: NEric Dumazet <edumazet@google.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      fa76ce73
    • E
      inet: drop prev pointer handling in request sock · 52452c54
      Eric Dumazet 提交于
      When request sock are put in ehash table, the whole notion
      of having a previous request to update dl_next is pointless.
      
      Also, following patch will get rid of big purge timer,
      so we want to delete a request sock without holding listener lock.
      Signed-off-by: NEric Dumazet <edumazet@google.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      52452c54
  3. 19 3月, 2015 9 次提交
  4. 18 3月, 2015 9 次提交
  5. 17 3月, 2015 5 次提交
  6. 15 3月, 2015 3 次提交
  7. 14 3月, 2015 1 次提交
  8. 13 3月, 2015 6 次提交