* [Codel] fiddling with codel at really low rates
@ 2014-05-04 18:35 Dave Taht
0 siblings, 0 replies; only message in thread
From: Dave Taht @ 2014-05-04 18:35 UTC (permalink / raw)
To: codel
[-- Attachment #1: Type: text/plain, Size: 1487 bytes --]
While there are many issues I have with this paper,
http://pure.abdn.ac.uk:8080/portal/files/27528015/CK_AQM.pdf
one of the things I found encouraging from looking at the graphs that
cubic vs codel starts outperforming ared significantly, in terms of
packet drop, at about 2.5mbits.
In the attached graph I combined the comparison in figure 7 from that
paper to directly compare ared vs codel (forgive me my lousy gimp
skills), and the trendline for drops at speeds > 2.5Mbits is strongly
encouraging vs a vs everything else.
As to why codel drops more than ared below that speed, there are
multiple explanations, notably
that htb or BQL are buffering up a packet and this leads to an
effective path length in excess of a mtu in size. Kathie long ago
suggested disabling the ns2 inhibit at a mtu as it was a good idea in
the ns2 model which had no underlying network layers to deal with, but
not so much in the real world. the attached patch does that. I'm a
little dubious as to what it will do in the case of TSO, and will try
to have a sane testing regime for it in some future version of
cerowrt.
(presently what we do in cerowrt's sqm system is increase the target
and interval to account for an extra mtu's transmission rate at rates
below 4mbit)
Other options might be to change htb to peek at the next packet rather
than buffer it up, or use cbq which so far as I know uses an estimate,
rather than the actual nextpacket.
--
Dave Täht
[-- Attachment #2: aredpaper.png --]
[-- Type: image/png, Size: 41802 bytes --]
[-- Attachment #3: 0001-Codel-disable-drop-inhibit.patch --]
[-- Type: text/x-patch, Size: 966 bytes --]
From 612ff68ad16bcc25236b44302b556f40cb19af93 Mon Sep 17 00:00:00 2001
From: Dave Taht <dave.taht@bufferbloat.net>
Date: Sun, 4 May 2014 11:08:09 -0700
Subject: [PATCH] Codel - disable drop inhibit
At nearly any rate, the underlying OS may well have a packet
buffered up, so the drop inhibit built into codel is redundant
and hurts things at low rates, in particular.
---
include/net/codel.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/include/net/codel.h b/include/net/codel.h
index fe0eab3..15c5e43 100644
--- a/include/net/codel.h
+++ b/include/net/codel.h
@@ -234,7 +234,7 @@ static bool codel_should_drop(const struct sk_buff *skb,
stats->maxpacket = qdisc_pkt_len(skb);
if (codel_time_before(vars->ldelay, params->target) ||
- sch->qstats.backlog <= stats->maxpacket) {
+ sch->qstats.backlog <= 0) {
/* went below - stay below for at least interval */
vars->first_above_time = 0;
return false;
--
1.7.9.5
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2014-05-04 18:35 UTC | newest]
Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2014-05-04 18:35 [Codel] fiddling with codel at really low rates Dave Taht
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox