diff options
| author | David S. Miller <davem@davemloft.net> | 2020-03-18 07:16:35 +0300 |
|---|---|---|
| committer | David S. Miller <davem@davemloft.net> | 2020-03-18 07:16:35 +0300 |
| commit | c7cba8326c1eba1f49f39a71cd9ef03a03a80da4 (patch) | |
| tree | ad0758e5b63398640aa6eb986b9d3e524682d800 /include | |
| parent | 24ee86511b01f73a1ef1dd8a8a2e685e5ec03bfe (diff) | |
| parent | 583396f4ca4d6ee5ad314ba0f4cb5b89deb75e76 (diff) | |
| download | linux-c7cba8326c1eba1f49f39a71cd9ef03a03a80da4.tar.xz | |
Merge branch 'net_sched-allow-use-of-hrtimer-slack'
Eric Dumazet says:
====================
net_sched: allow use of hrtimer slack
Packet schedulers have used hrtimers with exact expiry times.
Some of them can afford having a slack, in order to reduce
the number of timer interrupts and feed bigger batches
to increase efficiency.
FQ for example does not care if throttled packets are
sent with an additional (small) delay.
Original observation of having maybe too many interrupts
was made by Willem de Bruijn.
v2: added strict netlink checking (Jakub Kicinski)
====================
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'include')
| -rw-r--r-- | include/net/pkt_sched.h | 10 | ||||
| -rw-r--r-- | include/uapi/linux/pkt_sched.h | 2 |
2 files changed, 11 insertions, 1 deletions
diff --git a/include/net/pkt_sched.h b/include/net/pkt_sched.h index 20d2c6419612..9092e697059e 100644 --- a/include/net/pkt_sched.h +++ b/include/net/pkt_sched.h @@ -75,7 +75,15 @@ struct qdisc_watchdog { void qdisc_watchdog_init_clockid(struct qdisc_watchdog *wd, struct Qdisc *qdisc, clockid_t clockid); void qdisc_watchdog_init(struct qdisc_watchdog *wd, struct Qdisc *qdisc); -void qdisc_watchdog_schedule_ns(struct qdisc_watchdog *wd, u64 expires); + +void qdisc_watchdog_schedule_range_ns(struct qdisc_watchdog *wd, u64 expires, + u64 delta_ns); + +static inline void qdisc_watchdog_schedule_ns(struct qdisc_watchdog *wd, + u64 expires) +{ + return qdisc_watchdog_schedule_range_ns(wd, expires, 0ULL); +} static inline void qdisc_watchdog_schedule(struct qdisc_watchdog *wd, psched_time_t expires) diff --git a/include/uapi/linux/pkt_sched.h b/include/uapi/linux/pkt_sched.h index ea39287d59c8..7307a29a103e 100644 --- a/include/uapi/linux/pkt_sched.h +++ b/include/uapi/linux/pkt_sched.h @@ -911,6 +911,8 @@ enum { TCA_FQ_CE_THRESHOLD, /* DCTCP-like CE-marking threshold */ + TCA_FQ_TIMER_SLACK, /* timer slack */ + __TCA_FQ_MAX }; |
