aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRui Salvaterra <rsalvaterra@gmail.com>2021-12-19 19:29:58 +0000
committerRui Salvaterra <rsalvaterra@gmail.com>2022-02-09 16:15:32 +0000
commitf39872d966aa39c0ae767002828d09ddba44ccd1 (patch)
treefb97a89949672194be98066c1e2087ee67cf873f
parent1847382456e9bc2bf23258a5aa39b5bcfb265117 (diff)
downloadupstream-f39872d966aa39c0ae767002828d09ddba44ccd1.tar.gz
upstream-f39872d966aa39c0ae767002828d09ddba44ccd1.tar.bz2
upstream-f39872d966aa39c0ae767002828d09ddba44ccd1.zip
kernel: generic: select the fq_codel qdisc by default
The kernel configuration allows us to select a default qdisc. Let's do this for 5.10 (as 5.4 is on its way out) and get rid of the hacky patch we've been carrying. Acked-by: Jo-Philipp Wich <jo@mein.io> Signed-off-by: Rui Salvaterra <rsalvaterra@gmail.com>
-rw-r--r--target/linux/generic/config-5.105
-rw-r--r--target/linux/generic/hack-5.10/661-use_fq_codel_by_default.patch100
2 files changed, 4 insertions, 101 deletions
diff --git a/target/linux/generic/config-5.10 b/target/linux/generic/config-5.10
index 30c48d521b..6fdd27198d 100644
--- a/target/linux/generic/config-5.10
+++ b/target/linux/generic/config-5.10
@@ -1331,11 +1331,14 @@ CONFIG_DEBUG_KERNEL=y
# CONFIG_DECNET is not set
CONFIG_DEFAULT_CUBIC=y
CONFIG_DEFAULT_DEADLINE=y
+CONFIG_DEFAULT_FQ_CODEL=y
CONFIG_DEFAULT_HOSTNAME="(none)"
CONFIG_DEFAULT_HUNG_TASK_TIMEOUT=120
CONFIG_DEFAULT_INIT=""
CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
+CONFIG_DEFAULT_NET_SCH="fq_codel"
# CONFIG_DEFAULT_NOOP is not set
+# CONFIG_DEFAULT_PFIFO_FAST is not set
# CONFIG_DEFAULT_RENO is not set
CONFIG_DEFAULT_SECURITY=""
CONFIG_DEFAULT_SECURITY_DAC=y
@@ -3910,7 +3913,7 @@ CONFIG_NET_SCHED=y
# CONFIG_NET_SCH_CBS is not set
# CONFIG_NET_SCH_CHOKE is not set
# CONFIG_NET_SCH_CODEL is not set
-# CONFIG_NET_SCH_DEFAULT is not set
+CONFIG_NET_SCH_DEFAULT=y
# CONFIG_NET_SCH_DRR is not set
# CONFIG_NET_SCH_DSMARK is not set
# CONFIG_NET_SCH_ETF is not set
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
deleted file mode 100644
index 70200f3eb3..0000000000
--- a/target/linux/generic/hack-5.10/661-use_fq_codel_by_default.patch
+++ /dev/null
@@ -1,100 +0,0 @@
-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
-@@ -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 <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);
-
- 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)