aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/generic/hack-5.10/661-use_fq_codel_by_default.patch
diff options
context:
space:
mode:
Diffstat (limited to 'target/linux/generic/hack-5.10/661-use_fq_codel_by_default.patch')
-rw-r--r--target/linux/generic/hack-5.10/661-use_fq_codel_by_default.patch100
1 files changed, 100 insertions, 0 deletions
diff --git a/target/linux/generic/hack-5.10/661-use_fq_codel_by_default.patch b/target/linux/generic/hack-5.10/661-use_fq_codel_by_default.patch
new file mode 100644
index 0000000000..ceabf81249
--- /dev/null
+++ b/target/linux/generic/hack-5.10/661-use_fq_codel_by_default.patch
@@ -0,0 +1,100 @@
+From 1d418f7e88035ed7a94073f6354246c66e9193e9 Mon Sep 17 00:00:00 2001
+From: Felix Fietkau <nbd@nbd.name>
+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 <nbd@nbd.name>
+---
+ 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
+@@ -578,12 +578,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
+@@ -2282,7 +2282,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
+@@ -701,7 +701,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),
+@@ -716,6 +716,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 <net/xfrm.h>
+
+ /* 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);
+
+ /* Main transmission queue. */
+@@ -1018,12 +1018,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)