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
..
2016-03-25 18:51:55 +01:00
2016-03-23 06:06:45 -07:00
2016-03-21 14:35:52 -07:00
2016-03-19 10:05:34 -07:00
2016-03-22 15:48:44 -07:00
2016-03-10 10:52:21 -08:00
2016-03-28 17:57:45 +02:00
2016-03-24 19:57:15 -07:00
2016-03-17 12:50:55 -07:00
2016-03-13 15:19:35 +07:00
2016-03-17 15:09:34 -07:00
2016-03-23 06:09:15 -07:00
2016-03-17 21:51:52 -07:00
2016-03-24 10:41:00 -07:00
2016-03-17 15:09:34 -07:00
2016-03-19 15:38:41 -07:00
2016-03-15 16:55:16 -07:00
2016-03-15 16:55:16 -07:00
2016-03-12 14:12:10 -07:00
2016-03-20 09:34:02 -06:00
2016-03-19 18:52:29 -07:00
2016-03-08 15:28:31 -05:00
2016-03-25 11:37:57 -04:00
2016-03-17 15:09:34 -07:00
2016-03-22 15:36:02 -07:00
2016-03-11 21:19:16 +08:00
2016-03-16 13:31:46 -07:00
2016-03-17 15:09:34 -07:00
2016-03-22 15:36:02 -07:00
2016-03-15 09:01:06 +01:00
2016-03-10 20:46:03 +01:00
2016-03-22 15:36:02 -07:00
2016-03-22 15:36:02 -07:00
2016-03-21 11:03:02 -07:00
2016-03-10 17:12:09 -05:00
2016-03-23 06:06:45 -07:00
2016-03-19 11:03:49 +01:00
2016-03-20 13:28:18 -07:00
2016-03-14 11:18:12 +05:30
2016-03-20 18:58:18 -07:00
2016-03-15 16:55:16 -07:00
2016-03-25 08:48:31 -07:00
2016-04-01 14:33:46 -04:00
2016-03-17 15:09:34 -07:00
2016-03-22 15:36:02 -07:00
2016-03-21 11:03:02 -07:00
2016-03-19 18:52:29 -07:00
2016-03-14 00:17:28 -04:00
2016-03-25 16:37:42 -07:00
2016-03-17 15:09:34 -07:00
2016-03-17 15:09:34 -07:00
2016-04-01 17:03:37 -05:00
2016-03-11 14:58:58 -05:00
2016-03-25 16:37:42 -07:00
2016-03-22 15:36:02 -07:00
2016-03-16 17:45:56 -07:00
2016-03-15 12:48:48 -07:00
2016-03-17 22:13:41 -07:00
2016-03-14 10:30:57 -04:00
2016-03-25 16:37:42 -07:00
2016-03-22 15:36:02 -07:00
2016-03-24 10:52:25 -07:00
2016-03-22 15:36:02 -07:00
2016-03-14 09:22:20 +01:00
2016-03-18 18:10:38 -07:00
2016-03-17 15:09:34 -07:00
2016-03-09 15:43:42 -08:00
2016-03-17 09:45:10 +01:00
2016-03-14 12:19:46 -04:00
2016-03-17 15:09:34 -07:00
2016-03-15 16:55:16 -07:00
2016-03-17 13:47:50 -07:00
2016-03-15 16:55:16 -07:00
2016-03-20 16:47:13 -04:00
2016-03-25 16:37:42 -07:00
2016-03-15 16:55:16 -07:00
2016-03-17 15:09:34 -07:00
2016-03-14 00:15:46 -04:00
2016-03-09 16:36:13 -05:00
2016-03-23 23:25:14 -07:00
2016-03-17 14:57:16 -04:00
2016-03-23 12:34:17 +01:00
2016-03-21 19:30:06 -04:00
2016-03-19 15:15:07 -07:00
2016-03-25 16:37:42 -07:00
2016-03-15 16:55:16 -07:00
2016-03-15 16:55:16 -07:00
2016-03-17 15:09:34 -07:00
2016-03-17 15:09:34 -07:00
2016-03-17 15:09:34 -07:00
2016-03-17 15:09:34 -07:00
2016-03-15 08:52:28 -05:00
2016-03-19 15:38:41 -07:00
2016-03-24 10:02:14 -07:00
2016-03-14 15:43:11 -04:00
2016-03-13 22:11:43 -04:00
2016-03-17 02:32:04 +01:00
2016-03-28 17:19:31 -07:00
2016-03-15 16:55:16 -07:00
2016-03-17 15:09:34 -07:00
2016-03-10 09:43:36 -08:00
2016-03-17 15:09:34 -07:00
2016-03-17 15:09:34 -07:00
2016-03-09 16:36:13 -05:00
2016-03-15 13:50:29 -07:00
2016-03-22 15:36:02 -07:00
2016-03-22 15:36:02 -07:00
2016-03-22 15:36:02 -07:00
2016-03-22 15:36:02 -07:00
2016-03-17 15:09:34 -07:00
2016-03-10 16:04:24 -08:00
2016-03-14 17:08:15 +01:00
2016-03-25 16:37:42 -07:00
2016-03-08 12:34:12 -05:00
2016-03-25 16:37:42 -07:00
2016-03-25 16:37:42 -07:00
2016-03-25 16:37:42 -07:00
2016-03-09 16:36:14 -05:00
2016-03-25 16:37:42 -07:00
2016-04-02 20:23:09 -04:00
2016-03-17 15:09:34 -07:00
2016-03-14 14:55:26 -04:00
2016-03-18 14:10:57 +08:00
2016-03-17 15:09:34 -07:00
2016-03-24 10:52:25 -07:00
2016-03-15 16:55:16 -07:00
2016-03-09 11:58:41 -05:00
2016-04-04 22:11:19 -04:00
2016-03-17 15:09:34 -07:00
2016-03-16 21:11:19 +01:00