• Cong Wang's avatar
    sch_htb: redefine htb qdisc overlimits · b362487a
    Cong Wang authored
    In commit 3c75f6ee ("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: default avatarCong Wang <xiyou.wangcong@gmail.com>
    Reviewed-by: default avatarEric Dumazet <edumazet@google.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    b362487a
sch_htb.c 41.6 KB