]> git.baikalelectronics.ru Git - kernel.git/commit
sch_htb: redefine htb qdisc overlimits
authorCong Wang <xiyou.wangcong@gmail.com>
Sat, 4 May 2019 18:43:42 +0000 (11:43 -0700)
committerDavid S. Miller <davem@davemloft.net>
Mon, 6 May 2019 04:55:20 +0000 (21:55 -0700)
commit6c7ab6e041a828f83780e78c02b08ab21cd7b600
treed29f084d23ff97fd573c616d7391420d112a0e2f
parentf2f9adc9dafb563a3912f594433057107dfb9a57
sch_htb: redefine htb qdisc overlimits

In commit 49d57b46c499 ("net_sched: sch_htb: add per class overlimits counter")
we added an overlimits counter for each HTB class which could
properly reflect how many times we use up all the bandwidth
on each class. However, the overlimits counter in HTB qdisc
does not, it is way bigger than the sum of each HTB class.
In fact, this qdisc overlimits counter increases when we have
no skb to dequeue, which happens more often than we run out of
bandwidth.

It makes more sense to make this qdisc overlimits counter just
be a sum of each HTB class, in case people still get confused.

I have verified this patch with one single HTB class, where HTB
qdisc counters now always match HTB class counters as expected.

Eric suggested we could fold this field into 'direct_pkts' as
we only use its 32bit on 64bit CPU, this saves one cache line.

Cc: Eric Dumazet <edumazet@google.com>
Signed-off-by: Cong Wang <xiyou.wangcong@gmail.com>
Reviewed-by: Eric Dumazet <edumazet@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/sched/sch_htb.c