Files
linux/include/net
Eric Dumazet ca065d0cf8 udp: no longer use SLAB_DESTROY_BY_RCU
Tom Herbert would like not touching UDP socket refcnt for encapsulated
traffic. For this to happen, we need to use normal RCU rules, with a grace
period before freeing a socket. UDP sockets are not short lived in the
high usage case, so the added cost of call_rcu() should not be a concern.

This actually removes a lot of complexity in UDP stack.

Multicast receives no longer need to hold a bucket spinlock.

Note that ip early demux still needs to take a reference on the socket.

Same remark for functions used by xt_socket and xt_PROXY netfilter modules,
but this might be changed later.

Performance for a single UDP socket receiving flood traffic from
many RX queues/cpus.

Simple udp_rx using simple recvfrom() loop :
438 kpps instead of 374 kpps : 17 % increase of the peak rate.

v2: Addressed Willem de Bruijn feedback in multicast handling
 - keep early demux break in __udp4_lib_demux_lookup()

Signed-off-by: Eric Dumazet <edumazet@google.com>
Cc: Tom Herbert <tom@herbertland.com>
Cc: Willem de Bruijn <willemb@google.com>
Tested-by: Tom Herbert <tom@herbertland.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2016-04-04 22:11:19 -04:00
..
2014-09-18 10:54:36 +02:00
2015-03-04 00:23:23 -05:00
2015-06-28 16:55:44 -07:00
2016-03-18 23:14:15 -04:00
2015-11-18 16:17:38 -05:00
2015-03-06 21:50:02 -05:00
2016-03-01 16:07:29 -05:00
2015-09-17 17:18:37 -07:00
2016-02-16 20:21:48 -05:00
2014-09-30 01:02:26 -04:00
2016-03-10 14:42:03 -05:00
2016-02-21 22:00:28 -05:00
2015-10-23 06:26:42 -07:00
2016-03-23 22:09:58 -04:00
2016-03-11 12:04:37 -05:00
2016-04-04 22:11:19 -04:00
2015-03-12 22:58:12 -04:00
2015-10-26 22:24:22 -07:00
2016-04-04 22:11:19 -04:00
2016-03-21 13:30:02 -04:00