summaryrefslogtreecommitdiff
path: root/net/sched/sch_fq_codel.c
diff options
context:
space:
mode:
authorDave Taht <dave.taht@gmail.com>2019-08-04 02:37:28 +0300
committerDavid S. Miller <davem@davemloft.net>2019-08-07 00:18:20 +0300
commitae697f3bf784898a9be1d68ff7fc38819ca5040f (patch)
treeecbb695a00490172ee83452d78311750e00d595f /net/sched/sch_fq_codel.c
parentb8fb640643fcdb3bca84137c4cec0c649b25e056 (diff)
downloadlinux-ae697f3bf784898a9be1d68ff7fc38819ca5040f.tar.xz
Increase fq_codel count in the bulk dropper
In the field fq_codel is often used with a smaller memory or packet limit than the default, and when the bulk dropper is hit, the drop pattern bifircates into one that more slowly increases the codel drop rate and hits the bulk dropper more than it should. The scan through the 1024 queues happens more often than it needs to. This patch increases the codel count in the bulk dropper, but does not change the drop rate there, relying on the next codel round to deliver the next packet at the original drop rate (after that burst of loss), then escalate to a higher signaling rate. Signed-off-by: Dave Taht <dave.taht@gmail.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/sched/sch_fq_codel.c')
-rw-r--r--net/sched/sch_fq_codel.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/net/sched/sch_fq_codel.c b/net/sched/sch_fq_codel.c
index d59fbcc745d1..d67b2c40e6e6 100644
--- a/net/sched/sch_fq_codel.c
+++ b/net/sched/sch_fq_codel.c
@@ -173,6 +173,8 @@ static unsigned int fq_codel_drop(struct Qdisc *sch, unsigned int max_packets,
__qdisc_drop(skb, to_free);
} while (++i < max_packets && len < threshold);
+ /* Tell codel to increase its signal strength also */
+ flow->cvars.count += i;
flow->dropped += i;
q->backlogs[idx] -= len;
q->memory_usage -= mem;