From 1d418f7e88035ed7a94073f6354246c66e9193e9 Mon Sep 17 00:00:00 2001 From: Felix Fietkau Date: Fri, 7 Jul 2017 17:22:58 +0200 Subject: fq_codel: switch default qdisc from pfifo_fast to fq_codel and remove pfifo_fast Signed-off-by: Felix Fietkau --- include/net/sch_generic.h | 3 ++- net/sched/Kconfig | 3 ++- net/sched/sch_api.c | 2 +- net/sched/sch_fq_codel.c | 3 ++- net/sched/sch_generic.c | 4 ++-- 5 files changed, 9 insertions(+), 6 deletions(-) --- a/include/net/sch_generic.h +++ b/include/net/sch_generic.h @@ -625,12 +625,13 @@ extern struct Qdisc_ops noop_qdisc_ops; extern struct Qdisc_ops pfifo_fast_ops; extern struct Qdisc_ops mq_qdisc_ops; extern struct Qdisc_ops noqueue_qdisc_ops; +extern struct Qdisc_ops fq_codel_qdisc_ops; extern const struct Qdisc_ops *default_qdisc_ops; static inline const struct Qdisc_ops * get_default_qdisc_ops(const struct net_device *dev, int ntx) { return ntx < dev->real_num_tx_queues ? - default_qdisc_ops : &pfifo_fast_ops; + default_qdisc_ops : &fq_codel_qdisc_ops; } struct Qdisc_class_common { --- a/net/sched/Kconfig +++ b/net/sched/Kconfig @@ -4,8 +4,9 @@ # menuconfig NET_SCHED - bool "QoS and/or fair queueing" + def_bool y select NET_SCH_FIFO + select NET_SCH_FQ_CODEL help When the kernel has several packets to send out over a network device, it has to decide which ones to send first, which ones to --- a/net/sched/sch_api.c +++ b/net/sched/sch_api.c @@ -2288,7 +2288,7 @@ static int __init pktsched_init(void) return err; } - register_qdisc(&pfifo_fast_ops); + register_qdisc(&fq_codel_qdisc_ops); register_qdisc(&pfifo_qdisc_ops); register_qdisc(&bfifo_qdisc_ops); register_qdisc(&pfifo_head_drop_qdisc_ops); --- a/net/sched/sch_fq_codel.c +++ b/net/sched/sch_fq_codel.c @@ -709,7 +709,7 @@ static const struct Qdisc_class_ops fq_c .walk = fq_codel_walk, }; -static struct Qdisc_ops fq_codel_qdisc_ops __read_mostly = { +struct Qdisc_ops fq_codel_qdisc_ops __read_mostly = { .cl_ops = &fq_codel_class_ops, .id = "fq_codel", .priv_size = sizeof(struct fq_codel_sched_data), @@ -724,6 +724,7 @@ static struct Qdisc_ops fq_codel_qdisc_o .dump_stats = fq_codel_dump_stats, .owner = THIS_MODULE, }; +EXPORT_SYMBOL(fq_codel_qdisc_ops); static int __init fq_codel_module_init(void) { --- a/net/sched/sch_generic.c +++ b/net/sched/sch_generic.c @@ -32,7 +32,7 @@ #include /* Qdisc to use by default */ -const struct Qdisc_ops *default_qdisc_ops = &pfifo_fast_ops; +const struct Qdisc_ops *default_qdisc_ops = &fq_codel_qdisc_ops; EXPORT_SYMBOL(default_qdisc_ops); static void qdisc_maybe_clear_missed(struct Qdisc *q, @@ -1062,12 +1062,12 @@ static void attach_one_default_qdisc(str void *_unused) { struct Qdisc *qdisc; - const struct Qdisc_ops *ops = default_qdisc_ops; + const struct Qdisc_ops *ops = &fq_codel_qdisc_ops; if (dev->priv_flags & IFF_NO_QUEUE) ops = &noqueue_qdisc_ops; else if(dev->type == ARPHRD_CAN) - ops = &pfifo_fast_ops; + ops = &fq_codel_qdisc_ops; qdisc = qdisc_create_dflt(dev_queue, ops, TC_H_ROOT, NULL); if (!qdisc)