alistair23-linux/net/sched
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
..
act_api.c net,rcu: convert call_rcu(tcf_common_free_rcu) to kfree_rcu() 2011-05-07 22:50:48 -07:00
act_csum.c
act_gact.c
act_ipt.c
act_mirred.c
act_nat.c
act_pedit.c Fix common misspellings 2011-03-31 11:26:23 -03:00
act_police.c net,act_police,rcu: remove rcu_barrier() 2011-05-07 22:50:54 -07:00
act_simple.c
act_skbedit.c
cls_api.c
cls_basic.c
cls_cgroup.c
cls_flow.c
cls_fw.c
cls_route.c ipv4: Remove flowi from struct rtable. 2011-03-04 21:55:31 -08:00
cls_rsvp.c
cls_rsvp.h
cls_rsvp6.c
cls_tcindex.c
cls_u32.c cls_u32: fix sparse warnings 2011-02-22 11:22:33 -08:00
em_cmp.c
em_meta.c Fix common misspellings 2011-03-31 11:26:23 -03:00
em_nbyte.c
em_text.c
em_u32.c
ematch.c
Kconfig networking: NET_CLS_ROUTE4 depends on INET 2011-05-19 19:23:28 -04:00
Makefile pkt_sched: QFQ - quick fair queue scheduler 2011-04-04 11:10:24 -07:00
sch_api.c pkt_sched: Kill set but unused variable 'protocol' in tc_classify() 2011-05-19 18:32:55 -04:00
sch_atm.c
sch_blackhole.c
sch_cbq.c
sch_choke.c sch_choke: add choke_skb_cb 2011-02-24 22:11:57 -08:00
sch_drr.c
sch_dsmark.c
sch_fifo.c net_sched: reduce fifo qdisc size 2011-03-03 11:10:02 -08:00
sch_generic.c net: avoid synchronize_rcu() in dev_deactivate_many 2011-05-22 21:01:20 -04:00
sch_gred.c
sch_hfsc.c
sch_htb.c Fix common misspellings 2011-03-31 11:26:23 -03:00
sch_ingress.c
sch_mq.c
sch_mqprio.c mqprio: cleanups 2011-02-23 14:11:32 -08:00
sch_multiq.c
sch_netem.c Fix common misspellings 2011-03-31 11:26:23 -03:00
sch_prio.c
sch_qfq.c pkt_sched: QFQ - quick fair queue scheduler 2011-04-04 11:10:24 -07:00
sch_red.c
sch_sfb.c net_sched: SFB flow scheduler 2011-02-23 14:05:11 -08:00
sch_sfq.c inet: constify ip headers and in6_addr 2011-04-22 11:04:14 -07:00
sch_tbf.c
sch_teql.c