Messages in this thread Patch in this message | | | From | Peilin Ye <> | Subject | [PATCH RFC v1 net-next 4/4] net/sched: sch_cbq: Use Qdisc backpressure infrastructure | Date | Fri, 6 May 2022 12:45:46 -0700 |
| |
From: Peilin Ye <peilin.ye@bytedance.com>
Recently we introduced a Qdisc backpressure infrastructure for TCP and UDP sockets. Use it in CBQ.
Suggested-by: Cong Wang <cong.wang@bytedance.com> Signed-off-by: Peilin Ye <peilin.ye@bytedance.com> --- net/sched/sch_cbq.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/net/sched/sch_cbq.c b/net/sched/sch_cbq.c index 02d9f0dfe356..4a5204da49d0 100644 --- a/net/sched/sch_cbq.c +++ b/net/sched/sch_cbq.c @@ -382,6 +382,7 @@ cbq_enqueue(struct sk_buff *skb, struct Qdisc *sch, return ret; } + qdisc_backpressure_overlimit(sch, skb); if (net_xmit_drop_count(ret)) { qdisc_qstats_drop(sch); cbq_mark_toplevel(q, cl); @@ -509,6 +510,7 @@ static enum hrtimer_restart cbq_undelay(struct hrtimer *timer) time = 0; time = ktime_add_ns(time, PSCHED_TICKS2NS(now + delay)); + qdisc_backpressure_throttle(sch); hrtimer_start(&q->delay_timer, time, HRTIMER_MODE_ABS_PINNED); } @@ -851,9 +853,11 @@ cbq_dequeue(struct Qdisc *sch) if (sch->q.qlen) { qdisc_qstats_overlimit(sch); - if (q->wd_expires) + if (q->wd_expires) { + qdisc_backpressure_throttle(sch); qdisc_watchdog_schedule(&q->watchdog, now + q->wd_expires); + } } return NULL; } -- 2.20.1
| |