Both Cong and David have pointed out it's not a good idea to have a per-qdisc kernel thread. In this patch we replaced it with a delayed work. Also applied other code review comments.
Changes in v2: - Replace kernel thread with a delayed work. - Check SPEED_UNKNOWN for link speed. - Remove all inline keyword. - Fix local variable declarations. - Add some JSON output for iproute2. - Fix compiler warnings reported by kernel test bot. Thanks! -- Xiangning Yu (2): irq_work: Export symbol "irq_work_queue_on" net: sched: Lockless Token Bucket (LTB) qdisc include/uapi/linux/pkt_sched.h | 35 ++ kernel/irq_work.c | 2 +- net/sched/Kconfig | 12 + net/sched/Makefile | 1 + net/sched/sch_ltb.c | 1255 ++++++++++++++++++++++++++++++++++++++++ 5 files changed, 1304 insertions(+), 1 deletion(-)