net/sched: sch_cbq: Delete unused delay_timer
delay_timer has been unused since commit c3498d34dd
("cbq: remove
TCA_CBQ_OVL_STRATEGY support"). Delete it.
Signed-off-by: Peilin Ye <peilin.ye@bytedance.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
c8fda7d281
commit
88b3822cdf
|
@ -149,7 +149,6 @@ struct cbq_sched_data {
|
|||
psched_time_t now; /* Cached timestamp */
|
||||
unsigned int pmask;
|
||||
|
||||
struct hrtimer delay_timer;
|
||||
struct qdisc_watchdog watchdog; /* Watchdog timer,
|
||||
started when CBQ has
|
||||
backlog, but cannot
|
||||
|
@ -441,81 +440,6 @@ static void cbq_overlimit(struct cbq_class *cl)
|
|||
}
|
||||
}
|
||||
|
||||
static psched_tdiff_t cbq_undelay_prio(struct cbq_sched_data *q, int prio,
|
||||
psched_time_t now)
|
||||
{
|
||||
struct cbq_class *cl;
|
||||
struct cbq_class *cl_prev = q->active[prio];
|
||||
psched_time_t sched = now;
|
||||
|
||||
if (cl_prev == NULL)
|
||||
return 0;
|
||||
|
||||
do {
|
||||
cl = cl_prev->next_alive;
|
||||
if (now - cl->penalized > 0) {
|
||||
cl_prev->next_alive = cl->next_alive;
|
||||
cl->next_alive = NULL;
|
||||
cl->cpriority = cl->priority;
|
||||
cl->delayed = 0;
|
||||
cbq_activate_class(cl);
|
||||
|
||||
if (cl == q->active[prio]) {
|
||||
q->active[prio] = cl_prev;
|
||||
if (cl == q->active[prio]) {
|
||||
q->active[prio] = NULL;
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
cl = cl_prev->next_alive;
|
||||
} else if (sched - cl->penalized > 0)
|
||||
sched = cl->penalized;
|
||||
} while ((cl_prev = cl) != q->active[prio]);
|
||||
|
||||
return sched - now;
|
||||
}
|
||||
|
||||
static enum hrtimer_restart cbq_undelay(struct hrtimer *timer)
|
||||
{
|
||||
struct cbq_sched_data *q = container_of(timer, struct cbq_sched_data,
|
||||
delay_timer);
|
||||
struct Qdisc *sch = q->watchdog.qdisc;
|
||||
psched_time_t now;
|
||||
psched_tdiff_t delay = 0;
|
||||
unsigned int pmask;
|
||||
|
||||
now = psched_get_time();
|
||||
|
||||
pmask = q->pmask;
|
||||
q->pmask = 0;
|
||||
|
||||
while (pmask) {
|
||||
int prio = ffz(~pmask);
|
||||
psched_tdiff_t tmp;
|
||||
|
||||
pmask &= ~(1<<prio);
|
||||
|
||||
tmp = cbq_undelay_prio(q, prio, now);
|
||||
if (tmp > 0) {
|
||||
q->pmask |= 1<<prio;
|
||||
if (tmp < delay || delay == 0)
|
||||
delay = tmp;
|
||||
}
|
||||
}
|
||||
|
||||
if (delay) {
|
||||
ktime_t time;
|
||||
|
||||
time = 0;
|
||||
time = ktime_add_ns(time, PSCHED_TICKS2NS(now + delay));
|
||||
hrtimer_start(&q->delay_timer, time, HRTIMER_MODE_ABS_PINNED);
|
||||
}
|
||||
|
||||
__netif_schedule(qdisc_root(sch));
|
||||
return HRTIMER_NORESTART;
|
||||
}
|
||||
|
||||
/*
|
||||
* It is mission critical procedure.
|
||||
*
|
||||
|
@ -1034,7 +958,6 @@ cbq_reset(struct Qdisc *sch)
|
|||
q->tx_class = NULL;
|
||||
q->tx_borrowed = NULL;
|
||||
qdisc_watchdog_cancel(&q->watchdog);
|
||||
hrtimer_cancel(&q->delay_timer);
|
||||
q->toplevel = TC_CBQ_MAXLEVEL;
|
||||
q->now = psched_get_time();
|
||||
|
||||
|
@ -1162,8 +1085,6 @@ static int cbq_init(struct Qdisc *sch, struct nlattr *opt,
|
|||
int err;
|
||||
|
||||
qdisc_watchdog_init(&q->watchdog, sch);
|
||||
hrtimer_init(&q->delay_timer, CLOCK_MONOTONIC, HRTIMER_MODE_ABS_PINNED);
|
||||
q->delay_timer.function = cbq_undelay;
|
||||
|
||||
err = cbq_opt_parse(tb, opt, extack);
|
||||
if (err < 0)
|
||||
|
|
Loading…
Reference in New Issue