[Codel] [PATCH 2/2] codel: The missing fourth state
Dave Täht
dave.taht at bufferbloat.net
Mon May 7 05:16:44 EDT 2012
I'm not saying this is correct. But it would account for a quantum miss.
As for good queue vs bad queue... don't know.
In testing with 1 or 50 streams, at 100Mbit, it seems to do the job.
I look forward to reading the actual paper.
---
net/sched/sch_codel.c | 10 ++++++----
1 file changed, 6 insertions(+), 4 deletions(-)
diff --git a/net/sched/sch_codel.c b/net/sched/sch_codel.c
index a9e6383..55c75de 100644
--- a/net/sched/sch_codel.c
+++ b/net/sched/sch_codel.c
@@ -195,9 +195,11 @@ static u32 count_rescale(struct codel_sched_data *q, codel_time_t now) {
default:
c = q->count - 1;
}
- c = max(1U, c);
- }
- return (u32) c;
+ } else {
+ c = q->count >> 4;
+ }
+ c = max(1U, c);
+ return (u32) c;
}
static struct sk_buff *codel_dequeue(struct Qdisc *sch)
@@ -247,7 +249,7 @@ static struct sk_buff *codel_dequeue(struct Qdisc *sch)
}
} else if (drop &&
(codel_time_before(now - q->drop_next,
- 16 * q->interval) ||
+ 16 * q->interval) ||
codel_time_after_eq(now - q->first_above_time,
2 * q->interval))) {
codel_drop(sch, skb);
--
1.7.9.5
More information about the Codel
mailing list