kernel: don't scrimp on memory on big iron
authorPhilip Prindeville <philipp@redfish-solutions.com>
Tue, 19 Sep 2017 23:49:13 +0000 (17:49 -0600)
committerHauke Mehrtens <hauke@hauke-m.de>
Sun, 24 Sep 2017 14:28:28 +0000 (16:28 +0200)
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>
target/linux/generic/hack-4.9/660-fq_codel_defaults.patch
target/linux/generic/hack-4.9/661-use_fq_codel_by_default.patch

index c91ea01b50bba3ac90dc9713d594bb91b7642d90..3e6473056c586771149c40487fcaed220da168d7 100644 (file)
@@ -3,6 +3,9 @@ From: Felix Fietkau <nbd@nbd.name>
 Date: Fri, 7 Jul 2017 17:21:53 +0200
 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>
 ---
  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
 +++ 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;
        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 */
++#endif
        q->drop_batch_size = 64;
        q->quantum = psched_mtu(qdisc_dev(sch));
        q->perturbation = prandom_u32();
index b0af139f830ea547706d692800a69dbae0b2efa4..c57b4439b426307a31e7c5e4789b5f2b34ece9f9 100644 (file)
@@ -55,7 +55,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
        register_qdisc(&pfifo_head_drop_qdisc_ops);
 --- a/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,
  };
  
@@ -64,7 +64,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
        .cl_ops         =       &fq_codel_class_ops,
        .id             =       "fq_codel",
        .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,
        .owner          =       THIS_MODULE,
  };