Skip to content

Commit 860b642

Browse files
vcgomesdavem330
authored andcommitted
net/sched: Allow creating a Qdisc watchdog with other clocks
This adds 'qdisc_watchdog_init_clockid()' that allows a clockid to be passed, this allows other time references to be used when scheduling the Qdisc to run. Signed-off-by: Vinicius Costa Gomes <[email protected]> Signed-off-by: David S. Miller <[email protected]>
1 parent 3d0ba8c commit 860b642

File tree

2 files changed

+11
-2
lines changed

2 files changed

+11
-2
lines changed

include/net/pkt_sched.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -72,6 +72,8 @@ struct qdisc_watchdog {
7272
struct Qdisc *qdisc;
7373
};
7474

75+
void qdisc_watchdog_init_clockid(struct qdisc_watchdog *wd, struct Qdisc *qdisc,
76+
clockid_t clockid);
7577
void qdisc_watchdog_init(struct qdisc_watchdog *wd, struct Qdisc *qdisc);
7678
void qdisc_watchdog_schedule_ns(struct qdisc_watchdog *wd, u64 expires);
7779

net/sched/sch_api.c

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -596,12 +596,19 @@ static enum hrtimer_restart qdisc_watchdog(struct hrtimer *timer)
596596
return HRTIMER_NORESTART;
597597
}
598598

599-
void qdisc_watchdog_init(struct qdisc_watchdog *wd, struct Qdisc *qdisc)
599+
void qdisc_watchdog_init_clockid(struct qdisc_watchdog *wd, struct Qdisc *qdisc,
600+
clockid_t clockid)
600601
{
601-
hrtimer_init(&wd->timer, CLOCK_MONOTONIC, HRTIMER_MODE_ABS_PINNED);
602+
hrtimer_init(&wd->timer, clockid, HRTIMER_MODE_ABS_PINNED);
602603
wd->timer.function = qdisc_watchdog;
603604
wd->qdisc = qdisc;
604605
}
606+
EXPORT_SYMBOL(qdisc_watchdog_init_clockid);
607+
608+
void qdisc_watchdog_init(struct qdisc_watchdog *wd, struct Qdisc *qdisc)
609+
{
610+
qdisc_watchdog_init_clockid(wd, qdisc, CLOCK_MONOTONIC);
611+
}
605612
EXPORT_SYMBOL(qdisc_watchdog_init);
606613

607614
void qdisc_watchdog_schedule_ns(struct qdisc_watchdog *wd, u64 expires)

0 commit comments

Comments
 (0)