From: Eric Dumazet <eric.dumazet@gmail.com>
To: David Miller <davem@davemloft.net>
Cc: netdev@vger.kernel.org,
"John A. Sullivan III" <jsullivan@opensourcedevel.com>
Subject: [PATCH net-next] sch_hfsc: report backlog information
Date: Fri, 23 Dec 2011 16:19:20 +0100 [thread overview]
Message-ID: <1324653560.2223.37.camel@edumazet-HP-Compaq-6005-Pro-SFF-PC> (raw)
In-Reply-To: <1324648822.2223.18.camel@edumazet-HP-Compaq-6005-Pro-SFF-PC>
Add backlog (byte count) information in hfsc classes and qdisc, so that
"tc -s" can report it to user, instead of 0 values :
qdisc hfsc 1: root refcnt 6 default 20
Sent 45141660 bytes 30545 pkt (dropped 0, overlimits 91751 requeues 0)
rate 1492Kbit 126pps backlog 103226b 74p requeues 0
...
class hfsc 1:20 parent 1:1 leaf 1201: rt m1 0bit d 0us m2 400000bit ls m1 0bit d 0us m2 200000bit
Sent 49534912 bytes 33519 pkt (dropped 0, overlimits 0 requeues 0)
backlog 81822b 56p requeues 0
period 23 work 49451576 bytes rtwork 13277552 bytes level 0
...
Signed-off-by: Eric Dumazet <eric.dumazet@gmail.com>
CC: John A. Sullivan III <jsullivan@opensourcedevel.com>
---
net/sched/sch_hfsc.c | 10 ++++++++++
1 file changed, 10 insertions(+)
diff --git a/net/sched/sch_hfsc.c b/net/sched/sch_hfsc.c
index 6488e64..9bdca2e 100644
--- a/net/sched/sch_hfsc.c
+++ b/net/sched/sch_hfsc.c
@@ -1368,6 +1368,7 @@ hfsc_dump_class_stats(struct Qdisc *sch, unsigned long arg,
struct tc_hfsc_stats xstats;
cl->qstats.qlen = cl->qdisc->q.qlen;
+ cl->qstats.backlog = cl->qdisc->qstats.backlog;
xstats.level = cl->level;
xstats.period = cl->cl_vtperiod;
xstats.work = cl->cl_total;
@@ -1561,6 +1562,15 @@ hfsc_dump_qdisc(struct Qdisc *sch, struct sk_buff *skb)
struct hfsc_sched *q = qdisc_priv(sch);
unsigned char *b = skb_tail_pointer(skb);
struct tc_hfsc_qopt qopt;
+ struct hfsc_class *cl;
+ struct hlist_node *n;
+ unsigned int i;
+
+ sch->qstats.backlog = 0;
+ for (i = 0; i < q->clhash.hashsize; i++) {
+ hlist_for_each_entry(cl, n, &q->clhash.hash[i], cl_common.hnode)
+ sch->qstats.backlog += cl->qdisc->qstats.backlog;
+ }
qopt.defcls = q->defcls;
NLA_PUT(skb, TCA_OPTIONS, sizeof(qopt), &qopt);
next prev parent reply other threads:[~2011-12-23 15:19 UTC|newest]
Thread overview: 23+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-12-23 6:00 SFQ on HFSC leaf does not seem to work John A. Sullivan III
2011-12-23 6:32 ` Dave Taht
2011-12-23 6:40 ` John A. Sullivan III
2011-12-23 7:08 ` John A. Sullivan III
2011-12-23 8:10 ` Eric Dumazet
2011-12-23 13:13 ` John A. Sullivan III
2011-12-23 13:45 ` Eric Dumazet
2011-12-23 14:00 ` Eric Dumazet
2011-12-23 14:38 ` John A. Sullivan III
2011-12-23 14:59 ` Eric Dumazet
2011-12-23 15:26 ` John A. Sullivan III
2011-12-23 16:16 ` Eric Dumazet
2011-12-23 16:44 ` John A. Sullivan III
2011-12-23 17:06 ` Eric Dumazet
2011-12-23 17:17 ` Eric Dumazet
2011-12-23 17:33 ` John A. Sullivan III
2011-12-23 17:35 ` John A. Sullivan III
2011-12-23 21:10 ` John A. Sullivan III
2011-12-23 22:24 ` Eric Dumazet
2011-12-23 17:20 ` John A. Sullivan III
2011-12-31 22:17 ` John A. Sullivan III
2011-12-23 15:19 ` Eric Dumazet [this message]
2011-12-23 21:52 ` [PATCH net-next] sch_hfsc: report backlog information David Miller
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1324653560.2223.37.camel@edumazet-HP-Compaq-6005-Pro-SFF-PC \
--to=eric.dumazet@gmail.com \
--cc=davem@davemloft.net \
--cc=jsullivan@opensourcedevel.com \
--cc=netdev@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox