net: sched: add qstats.qlen to qlen
authorJakub Kicinski <jakub.kicinski@netronome.com>
Sat, 26 May 2018 04:53:30 +0000 (21:53 -0700)
committerDavid S. Miller <davem@davemloft.net>
Tue, 29 May 2018 13:49:15 +0000 (09:49 -0400)
AFAICT struct gnet_stats_queue.qlen is not used in Qdiscs.
It may, however, be useful for offloads to report HW queue
length there.  Add that value to the result of qdisc_qlen_sum().

Signed-off-by: Jakub Kicinski <jakub.kicinski@netronome.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
include/net/sch_generic.h

index 827a3711dc688f4f22336d800573d1093c6ba569..6488daa32f829563c3d26ffe075022f3c9ededf5 100644 (file)
@@ -350,14 +350,14 @@ static inline int qdisc_qlen(const struct Qdisc *q)
 
 static inline int qdisc_qlen_sum(const struct Qdisc *q)
 {
-       __u32 qlen = 0;
+       __u32 qlen = q->qstats.qlen;
        int i;
 
        if (q->flags & TCQ_F_NOLOCK) {
                for_each_possible_cpu(i)
                        qlen += per_cpu_ptr(q->cpu_qstats, i)->qlen;
        } else {
-               qlen = q->q.qlen;
+               qlen += q->q.qlen;
        }
 
        return qlen;