linux/net/sched
Eric Dumazet 9190b3b320 net_sched: accurate bytes/packets stats/rates
In commit 44b8288308 (net_sched: pfifo_head_drop problem), we fixed
a problem with pfifo_head drops that incorrectly decreased
sch->bstats.bytes and sch->bstats.packets

Several qdiscs (CHOKe, SFQ, pfifo_head, ...) are able to drop a
previously enqueued packet, and bstats cannot be changed, so
bstats/rates are not accurate (over estimated)

This patch changes the qdisc_bstats updates to be done at dequeue() time
instead of enqueue() time. bstats counters no longer account for dropped
frames, and rates are more correct, since enqueue() bursts dont have
effect on dequeue() rate.

Signed-off-by: Eric Dumazet <eric.dumazet@gmail.com>
Acked-by: Stephen Hemminger <shemminger@vyatta.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2011-01-20 23:31:33 -08:00
..
act_api.c pkt_sched: gen_kill_estimator() rcu fixes 2010-06-11 18:37:08 -07:00
act_csum.c net_sched: factorize qdisc stats handling 2011-01-10 16:07:54 -08:00
act_gact.c net sched: fix some kernel memory leaks 2010-08-17 15:12:15 -07:00
act_ipt.c net_sched: factorize qdisc stats handling 2011-01-10 16:07:54 -08:00
act_mirred.c net_sched: factorize qdisc stats handling 2011-01-10 16:07:54 -08:00
act_nat.c net_sched: factorize qdisc stats handling 2011-01-10 16:07:54 -08:00
act_pedit.c net_sched: factorize qdisc stats handling 2011-01-10 16:07:54 -08:00
act_police.c net_sched: factorize qdisc stats handling 2011-01-10 16:07:54 -08:00
act_simple.c net_sched: factorize qdisc stats handling 2011-01-10 16:07:54 -08:00
act_skbedit.c net_sched: factorize qdisc stats handling 2011-01-10 16:07:54 -08:00
cls_api.c Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6 2010-04-11 14:53:53 -07:00
cls_basic.c classifier: report statistics for basic classifier 2010-11-08 12:17:05 -08:00
cls_cgroup.c cls_cgroup: Fix crash on module unload 2010-11-03 18:50:50 -07:00
cls_flow.c net_sched: cls_flow: add key rxhash 2010-08-21 23:40:14 -07:00
cls_fw.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
cls_route.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
cls_rsvp6.c [NET_SCHED]: Remove unnecessary includes 2007-07-10 22:16:41 -07:00
cls_rsvp.c [NET_SCHED]: Remove unnecessary includes 2007-07-10 22:16:41 -07:00
cls_rsvp.h cls_rsvp: add sanity check for the packet length 2010-08-04 21:53:15 -07:00
cls_tcindex.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
cls_u32.c cls_u32: signedness bug 2010-10-05 00:40:39 -07:00
em_cmp.c net: em_cmp.c use unaligned access helpers 2008-09-22 19:20:51 -07:00
em_meta.c tc: add meta match on receive hash 2010-08-24 14:48:10 -07:00
em_nbyte.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
em_text.c text ematch: check for NULL pointer before destroying textsearch config 2010-10-31 09:37:38 -07:00
em_u32.c [PKT_SCHED]: annotate cls_u32 2008-03-17 22:46:46 -07:00
ematch.c net sched: printk message severity 2010-05-17 23:23:12 -07:00
Kconfig pkt_sched: Make act_csum depend upon INET. 2010-08-23 20:42:11 -07:00
Makefile net/sched: add ACT_CSUM action to update packets checksums 2010-08-20 01:42:59 -07:00
sch_api.c net: dynamic ingress_queue allocation 2010-10-05 00:23:44 -07:00
sch_atm.c net_sched: factorize qdisc stats handling 2011-01-10 16:07:54 -08:00
sch_blackhole.c pkt_sched: Add qdisc->ops->peek() implementation. 2008-10-31 00:45:55 -07:00
sch_cbq.c net_sched: accurate bytes/packets stats/rates 2011-01-20 23:31:33 -08:00
sch_drr.c net_sched: accurate bytes/packets stats/rates 2011-01-20 23:31:33 -08:00
sch_dsmark.c net_sched: accurate bytes/packets stats/rates 2011-01-20 23:31:33 -08:00
sch_fifo.c net_sched: accurate bytes/packets stats/rates 2011-01-20 23:31:33 -08:00
sch_generic.c net: factorize sync-rcu call in unregister_netdevice_many 2010-12-16 14:04:44 -08:00
sch_gred.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
sch_hfsc.c net_sched: accurate bytes/packets stats/rates 2011-01-20 23:31:33 -08:00
sch_htb.c net_sched: accurate bytes/packets stats/rates 2011-01-20 23:31:33 -08:00
sch_ingress.c net_sched: factorize qdisc stats handling 2011-01-10 16:07:54 -08:00
sch_mq.c net_sched: remove the unused parameter of qdisc_create_dflt() 2010-10-21 03:09:47 -07:00
sch_multiq.c net_sched: accurate bytes/packets stats/rates 2011-01-20 23:31:33 -08:00
sch_netem.c net_sched: accurate bytes/packets stats/rates 2011-01-20 23:31:33 -08:00
sch_prio.c net_sched: accurate bytes/packets stats/rates 2011-01-20 23:31:33 -08:00
sch_red.c net_sched: accurate bytes/packets stats/rates 2011-01-20 23:31:33 -08:00
sch_sfq.c net_sched: accurate bytes/packets stats/rates 2011-01-20 23:31:33 -08:00
sch_tbf.c net_sched: accurate bytes/packets stats/rates 2011-01-20 23:31:33 -08:00
sch_teql.c net_sched: accurate bytes/packets stats/rates 2011-01-20 23:31:33 -08:00