net: sched: implement qstat helper routines
This adds helpers to manipulate qstats logic and replaces locations that touch the counters directly. This simplifies future patches to push qstats onto per cpu counters. Signed-off-by: John Fastabend <john.r.fastabend@intel.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:

committed by
David S. Miller

parent
22e0f8b932
commit
25331d6ce4
@@ -1591,7 +1591,7 @@ hfsc_enqueue(struct sk_buff *skb, struct Qdisc *sch)
|
||||
cl = hfsc_classify(skb, sch, &err);
|
||||
if (cl == NULL) {
|
||||
if (err & __NET_XMIT_BYPASS)
|
||||
sch->qstats.drops++;
|
||||
qdisc_qstats_drop(sch);
|
||||
kfree_skb(skb);
|
||||
return err;
|
||||
}
|
||||
@@ -1600,7 +1600,7 @@ hfsc_enqueue(struct sk_buff *skb, struct Qdisc *sch)
|
||||
if (unlikely(err != NET_XMIT_SUCCESS)) {
|
||||
if (net_xmit_drop_count(err)) {
|
||||
cl->qstats.drops++;
|
||||
sch->qstats.drops++;
|
||||
qdisc_qstats_drop(sch);
|
||||
}
|
||||
return err;
|
||||
}
|
||||
@@ -1643,7 +1643,7 @@ hfsc_dequeue(struct Qdisc *sch)
|
||||
*/
|
||||
cl = vttree_get_minvt(&q->root, cur_time);
|
||||
if (cl == NULL) {
|
||||
sch->qstats.overlimits++;
|
||||
qdisc_qstats_overlimit(sch);
|
||||
hfsc_schedule_watchdog(sch);
|
||||
return NULL;
|
||||
}
|
||||
@@ -1698,7 +1698,7 @@ hfsc_drop(struct Qdisc *sch)
|
||||
list_move_tail(&cl->dlist, &q->droplist);
|
||||
}
|
||||
cl->qstats.drops++;
|
||||
sch->qstats.drops++;
|
||||
qdisc_qstats_drop(sch);
|
||||
sch->q.qlen--;
|
||||
return len;
|
||||
}
|
||||
|
Reference in New Issue
Block a user