diff options
author | David S. Miller <davem@davemloft.net> | 2016-06-11 08:58:29 +0200 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2016-06-11 08:58:29 +0200 |
commit | e69f73bfecb0178ae6bd20eb778211739cd71fab (patch) | |
tree | 05d9f30419d6a5ef9b503487661959ef29c2fec5 /include/net/pkt_sched.h | |
parent | Merge branch 'mdio-iProc-SOC' (diff) | |
parent | net_sched: remove generic throttled management (diff) | |
download | linux-e69f73bfecb0178ae6bd20eb778211739cd71fab.tar.xz linux-e69f73bfecb0178ae6bd20eb778211739cd71fab.zip |
Merge branch 'remove-qdisc-throttle'
Eric Dumazet says:
====================
net_sched: remove qdisc_is_throttled()
HTB, CBQ and HFSC pay a very high cost updating the qdisc 'throttled'
status that nothing but CBQ seems to use.
CBQ usage is flaky anyway, since no qdisc ->enqueue() updates the
'throttled' qdisc status.
This looks like some 'optimization' that actually cost more than code
without the optimization, and might cause latency issues with CBQ.
In my tests, I could achieve a 8 % performance increase in TCP_RR
workload through HTB qdisc, in presence of throttled classes,
and 5 % without throttled classes.
====================
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'include/net/pkt_sched.h')
-rw-r--r-- | include/net/pkt_sched.h | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/include/net/pkt_sched.h b/include/net/pkt_sched.h index fea53f4d92ca..7caa99b482c6 100644 --- a/include/net/pkt_sched.h +++ b/include/net/pkt_sched.h @@ -67,12 +67,12 @@ struct qdisc_watchdog { }; void qdisc_watchdog_init(struct qdisc_watchdog *wd, struct Qdisc *qdisc); -void qdisc_watchdog_schedule_ns(struct qdisc_watchdog *wd, u64 expires, bool throttle); +void qdisc_watchdog_schedule_ns(struct qdisc_watchdog *wd, u64 expires); static inline void qdisc_watchdog_schedule(struct qdisc_watchdog *wd, psched_time_t expires) { - qdisc_watchdog_schedule_ns(wd, PSCHED_TICKS2NS(expires), true); + qdisc_watchdog_schedule_ns(wd, PSCHED_TICKS2NS(expires)); } void qdisc_watchdog_cancel(struct qdisc_watchdog *wd); |