Eric Dumazet c377411f24 net: sk_add_backlog() take rmem_alloc into account
Current socket backlog limit is not enough to really stop DDOS attacks,
because user thread spend many time to process a full backlog each
round, and user might crazy spin on socket lock.

We should add backlog size and receive_queue size (aka rmem_alloc) to
pace writers, and let user run without being slow down too much.

Introduce a sk_rcvqueues_full() helper, to avoid taking socket lock in
stress situations.

Under huge stress from a multiqueue/RPS enabled NIC, a single flow udp
receiver can now process ~200.000 pps (instead of ~100 pps before the
patch) on a 8 core machine.

Signed-off-by: Eric Dumazet <eric.dumazet@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2010-04-27 15:13:20 -07:00
..
2009-10-18 18:52:53 -07:00
2010-02-22 16:20:22 -08:00
2009-11-13 20:46:58 -08:00
2010-02-22 16:20:22 -08:00
2008-10-07 08:38:24 +11:00
2010-03-21 18:31:35 -07:00
2009-09-14 17:03:01 -07:00
2010-04-20 19:06:52 -07:00
2009-03-02 03:00:15 -08:00
2009-03-02 03:00:15 -08:00
2010-04-13 01:41:33 -07:00
2009-05-25 22:44:59 -07:00
2010-01-17 19:16:02 -08:00
2009-06-03 02:51:04 -07:00