/branches/18.06.1/target/linux/generic/hack-4.9/661-use_fq_codel_by_default.patch |
@@ -0,0 +1,94 @@ |
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 |
@@ -339,12 +339,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 |
@@ -3,8 +3,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 |
@@ -1977,7 +1977,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 |
@@ -715,7 +715,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), |
@@ -730,6 +730,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 |
@@ -31,7 +31,7 @@ |
#include <net/dst.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. */ |
@@ -760,7 +760,7 @@ 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; |