kernel: don't scrimp on memory on big iron

x86_64 platforms typically don't lack memory, so don't needlessly
economize memory if fq_codel on capable platforms.

Signed-off-by: Philip Prindeville <philipp@redfish-solutions.com>
[Add a comment to the patch]
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
This commit is contained in:
Philip Prindeville 2017-09-19 17:49:13 -06:00 committed by Hauke Mehrtens
parent 82739648c0
commit f138833d0c
2 changed files with 10 additions and 4 deletions

View file

@ -3,6 +3,9 @@ From: Felix Fietkau <nbd@nbd.name>
Date: Fri, 7 Jul 2017 17:21:53 +0200 Date: Fri, 7 Jul 2017 17:21:53 +0200
Subject: hack: net: fq_codel: tune defaults for small devices Subject: hack: net: fq_codel: tune defaults for small devices
Assume that x86_64 devices always have a big memory and do not need this
optimization compared to devices with only 32 MB or 64 MB RAM.
Signed-off-by: Felix Fietkau <nbd@nbd.name> Signed-off-by: Felix Fietkau <nbd@nbd.name>
--- ---
net/sched/sch_fq_codel.c | 2 +- net/sched/sch_fq_codel.c | 2 +-
@ -10,12 +13,15 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
--- a/net/sched/sch_fq_codel.c --- a/net/sched/sch_fq_codel.c
+++ b/net/sched/sch_fq_codel.c +++ b/net/sched/sch_fq_codel.c
@@ -479,7 +479,7 @@ static int fq_codel_init(struct Qdisc *s @@ -479,7 +479,11 @@ static int fq_codel_init(struct Qdisc *s
sch->limit = 10*1024; sch->limit = 10*1024;
q->flows_cnt = 1024; q->flows_cnt = 1024;
- q->memory_limit = 32 << 20; /* 32 MBytes */ +#ifdef CONFIG_X86_64
q->memory_limit = 32 << 20; /* 32 MBytes */
+#else
+ q->memory_limit = 4 << 20; /* 4 MBytes */ + q->memory_limit = 4 << 20; /* 4 MBytes */
+#endif
q->drop_batch_size = 64; q->drop_batch_size = 64;
q->quantum = psched_mtu(qdisc_dev(sch)); q->quantum = psched_mtu(qdisc_dev(sch));
q->perturbation = prandom_u32(); q->perturbation = prandom_u32();

View file

@ -55,7 +55,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
register_qdisc(&pfifo_head_drop_qdisc_ops); register_qdisc(&pfifo_head_drop_qdisc_ops);
--- a/net/sched/sch_fq_codel.c --- a/net/sched/sch_fq_codel.c
+++ b/net/sched/sch_fq_codel.c +++ b/net/sched/sch_fq_codel.c
@@ -705,7 +705,7 @@ static const struct Qdisc_class_ops fq_c @@ -709,7 +709,7 @@ static const struct Qdisc_class_ops fq_c
.walk = fq_codel_walk, .walk = fq_codel_walk,
}; };
@ -64,7 +64,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
.cl_ops = &fq_codel_class_ops, .cl_ops = &fq_codel_class_ops,
.id = "fq_codel", .id = "fq_codel",
.priv_size = sizeof(struct fq_codel_sched_data), .priv_size = sizeof(struct fq_codel_sched_data),
@@ -720,6 +720,7 @@ static struct Qdisc_ops fq_codel_qdisc_o @@ -724,6 +724,7 @@ static struct Qdisc_ops fq_codel_qdisc_o
.dump_stats = fq_codel_dump_stats, .dump_stats = fq_codel_dump_stats,
.owner = THIS_MODULE, .owner = THIS_MODULE,
}; };