linux/net
Eric Dumazet 3137663dfb net: avoid synchronize_rcu() in dev_deactivate_many
dev_deactivate_many() issues one synchronize_rcu() call after qdiscs set
to noop_qdisc.

This call is here to make sure they are no outstanding qdisc-less
dev_queue_xmit calls before returning to caller.

But in dismantle phase, we dont have to wait, because we wont activate
again the device, and we are going to wait one rcu grace period later in
rollback_registered_many().

After this patch, device dismantle uses one synchronize_net() and one
rcu_barrier() call only, so we have a ~30% speedup and a smaller RTNL
latency.

Signed-off-by: Eric Dumazet <eric.dumazet@gmail.com>
CC: Patrick McHardy <kaber@trash.net>,
CC: Ben Greear <greearb@candelatech.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2011-05-22 21:01:20 -04:00
..
9p Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next-2.6 2011-05-20 13:43:21 -07:00
802 garp: use kfree_rcu() 2011-05-21 02:05:22 -04:00
8021q net: Fix vlan_features propagation 2011-05-12 17:54:13 -04:00
appletalk
atm
ax25
batman-adv Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next-2.6 2011-05-20 13:43:21 -07:00
bluetooth Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next-2.6 2011-05-20 13:43:21 -07:00
bridge net: remove synchronize_net() from netdev_set_master() 2011-05-22 21:01:20 -04:00
caif caif: Plug memory leak for checksum error 2011-05-22 20:11:49 -04:00
can
ceph
core net: remove synchronize_net() from netdev_set_master() 2011-05-22 21:01:20 -04:00
dcb
dccp ipv4: Make caller provide flowi4 key to inet_csk_route_req(). 2011-05-18 18:32:03 -04:00
decnet Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next-2.6 2011-05-20 13:43:21 -07:00
dns_resolver
dsa
econet
ethernet
ieee802154
ipv4 ipv4: Include linux/prefetch.h in fib_trie.c 2011-05-22 20:53:43 -04:00
ipv6 ipv6: copy prefsrc setting when copying route entry 2011-05-21 02:05:22 -04:00
ipx
irda irda: Fix error propagation in ircomm_lmp_connect_response() 2011-05-19 18:58:39 -04:00
iucv convert old cpumask API into new one 2011-05-13 14:55:21 -04:00
key
l2tp Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next-2.6 2011-05-20 13:43:21 -07:00
lapb
llc
mac80211 Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next-2.6 2011-05-20 13:43:21 -07:00
netfilter Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next-2.6 2011-05-20 13:43:21 -07:00
netlabel netlabel: Remove prefetches from list handlers. 2011-05-22 20:42:10 -04:00
netlink
netrom
packet
phonet Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next-2.6 2011-05-20 13:43:21 -07:00
rds
rfkill net/rfkill/core.c: Avoid leaving freed data in a list 2011-05-16 14:10:42 -04:00
rose
rxrpc rxrpc: Fix set but unused variable 'usage' in rxrpc_get_transport() 2011-05-19 18:51:50 -04:00
sched net: avoid synchronize_rcu() in dev_deactivate_many 2011-05-22 21:01:20 -04:00
sctp sctp: Fix build failure. 2011-05-21 02:10:23 -04:00
sunrpc
tipc tipc: Revise timings used when sending link request messages 2011-05-10 16:04:02 -04:00
unix
wanrouter
wimax
wireless Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-next-2.6 into for-davem 2011-05-16 19:32:19 -04:00
x25
xfrm Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-3.6 2011-05-11 14:26:58 -04:00
Kconfig
Makefile
TUNABLE
compat.c
nonet.c
socket.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next-2.6 2011-05-20 13:43:21 -07:00
sysctl_net.c