Eric Dumazet 4b0b72f7dd net: speedup udp receive path
Since commit 95766fff ([UDP]: Add memory accounting.), 
each received packet needs one extra sock_lock()/sock_release() pair.

This added latency because of possible backlog handling. Then later,
ticket spinlocks added yet another latency source in case of DDOS.

This patch introduces lock_sock_bh() and unlock_sock_bh()
synchronization primitives, avoiding one atomic operation and backlog
processing.

skb_free_datagram_locked() uses them instead of full blown
lock_sock()/release_sock(). skb is orphaned inside locked section for
proper socket memory reclaim, and finally freed outside of it.

UDP receive path now take the socket spinlock only once.

Signed-off-by: Eric Dumazet <eric.dumazet@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2010-04-28 14:35:48 -07:00
..
2010-01-07 00:24:55 -08:00
2010-03-21 18:34:16 -07:00
2009-11-04 05:06:25 -08:00
2009-09-01 17:40:57 -07:00
2009-11-04 05:06:25 -08:00
2009-09-01 17:40:31 -07:00
2010-04-13 01:41:33 -07:00
2009-11-04 05:06:25 -08:00
2009-11-04 05:06:25 -08:00
2009-11-13 20:46:58 -08:00
2010-04-13 01:41:33 -07:00
2010-04-15 23:36:37 -07:00
2009-11-04 05:06:25 -08:00
2010-04-23 23:35:29 -07:00
2009-12-26 20:46:28 -08:00
2010-03-12 15:52:40 -08:00
2009-11-20 15:35:04 -08:00
2010-04-01 18:38:48 -07:00
2010-04-13 14:49:34 -07:00
2009-11-04 05:06:25 -08:00
2009-07-26 19:11:14 -07:00
2010-04-01 18:38:48 -07:00
2009-11-04 05:06:25 -08:00
2010-04-22 16:00:00 -07:00
2010-04-28 14:35:48 -07:00
2009-11-10 20:54:38 -08:00
2009-10-07 16:39:43 -04:00