mirror of
https://github.com/openwrt/openwrt.git
synced 2025-01-03 04:26:55 +00:00
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>
This commit is contained in:
parent
1847382456
commit
f39872d966
@ -1331,11 +1331,14 @@ CONFIG_DEBUG_KERNEL=y
|
|||||||
# CONFIG_DECNET is not set
|
# CONFIG_DECNET is not set
|
||||||
CONFIG_DEFAULT_CUBIC=y
|
CONFIG_DEFAULT_CUBIC=y
|
||||||
CONFIG_DEFAULT_DEADLINE=y
|
CONFIG_DEFAULT_DEADLINE=y
|
||||||
|
CONFIG_DEFAULT_FQ_CODEL=y
|
||||||
CONFIG_DEFAULT_HOSTNAME="(none)"
|
CONFIG_DEFAULT_HOSTNAME="(none)"
|
||||||
CONFIG_DEFAULT_HUNG_TASK_TIMEOUT=120
|
CONFIG_DEFAULT_HUNG_TASK_TIMEOUT=120
|
||||||
CONFIG_DEFAULT_INIT=""
|
CONFIG_DEFAULT_INIT=""
|
||||||
CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
|
CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
|
||||||
|
CONFIG_DEFAULT_NET_SCH="fq_codel"
|
||||||
# CONFIG_DEFAULT_NOOP is not set
|
# CONFIG_DEFAULT_NOOP is not set
|
||||||
|
# CONFIG_DEFAULT_PFIFO_FAST is not set
|
||||||
# CONFIG_DEFAULT_RENO is not set
|
# CONFIG_DEFAULT_RENO is not set
|
||||||
CONFIG_DEFAULT_SECURITY=""
|
CONFIG_DEFAULT_SECURITY=""
|
||||||
CONFIG_DEFAULT_SECURITY_DAC=y
|
CONFIG_DEFAULT_SECURITY_DAC=y
|
||||||
@ -3910,7 +3913,7 @@ CONFIG_NET_SCHED=y
|
|||||||
# CONFIG_NET_SCH_CBS is not set
|
# CONFIG_NET_SCH_CBS is not set
|
||||||
# CONFIG_NET_SCH_CHOKE is not set
|
# CONFIG_NET_SCH_CHOKE is not set
|
||||||
# CONFIG_NET_SCH_CODEL 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_DRR is not set
|
||||||
# CONFIG_NET_SCH_DSMARK is not set
|
# CONFIG_NET_SCH_DSMARK is not set
|
||||||
# CONFIG_NET_SCH_ETF is not set
|
# CONFIG_NET_SCH_ETF is not set
|
||||||
|
@ -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)
|
|
Loading…
Reference in New Issue
Block a user