Re: [aqm] I-D Action: draft-ietf-aqm-codel-03.txt
"Klatsky, Carl" <Carl_Klatsky@comcast.com> Thu, 07 July 2016 19:12 UTC
Return-Path: <Carl_Klatsky@comcast.com>
X-Original-To: aqm@ietfa.amsl.com
Delivered-To: aqm@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 9B1B912D0AC for <aqm@ietfa.amsl.com>; Thu, 7 Jul 2016 12:12:51 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -3.327
X-Spam-Level:
X-Spam-Status: No, score=-3.327 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RP_MATCHES_RCVD=-1.426, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id P0L0EENfe9gw for <aqm@ietfa.amsl.com>; Thu, 7 Jul 2016 12:12:49 -0700 (PDT)
Received: from pacdcmhout01.cable.comcast.com (PACDCMHOUT01.cable.comcast.com [68.87.31.167]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 78A6112B068 for <aqm@ietf.org>; Thu, 7 Jul 2016 12:12:49 -0700 (PDT)
X-AuditID: 44571fa7-fa76f98000001305-48-577ea9b064d5
Received: from PACDCEX48.cable.comcast.com (cas-umc02.ndceast.pa.bo.comcast.net [68.87.34.28]) (using TLS with cipher AES256-SHA256 (256/256 bits)) (Client did not present a certificate) by (SMTP Gateway) with SMTP id 40.0F.04869.0B9AE775; Thu, 7 Jul 2016 15:12:48 -0400 (EDT)
Received: from PACDCEX43.cable.comcast.com (24.40.2.142) by PACDCEX48.cable.comcast.com (24.40.2.147) with Microsoft SMTP Server (TLS) id 15.0.1130.7; Thu, 7 Jul 2016 15:12:46 -0400
Received: from PACDCEX43.cable.comcast.com ([fe80::3aea:a7ff:fe36:87a8]) by PACDCEX43.cable.comcast.com ([fe80::3aea:a7ff:fe36:87a8%19]) with mapi id 15.00.1130.005; Thu, 7 Jul 2016 15:12:46 -0400
From: "Klatsky, Carl" <Carl_Klatsky@comcast.com>
To: Jonathan Morton <chromatix99@gmail.com>, Michael Menth <menth@uni-tuebingen.de>
Thread-Topic: [aqm] I-D Action: draft-ietf-aqm-codel-03.txt
Thread-Index: AQHRfxb87A5LHxhy8060NvHhQsbonJ9iwUKAgAHv6ACAcwh1AIA2FogAgAAMhYCAABZcAIAAArgw
Date: Thu, 07 Jul 2016 19:12:45 +0000
Message-ID: <7ad383c30696497dae5dfd89ded5274f@PACDCEX43.cable.comcast.com>
References: <20160316000053.5163.88345.idtracker@ietfa.amsl.com> <56EEC35B.3000007@mti-systems.com> <56F0635A.7060004@student.kit.edu> <CAPRuP3k9NuTpK7WsRfOymJbTSup5aY7RgUtEDd-wsapXJxbKVg@mail.gmail.com> <1467892048445.64588@student.kit.edu> <577E4C53.9030909@uni-tuebingen.de> <88A51A3A-64EE-4A6C-99A5-7EA8DC33CC8B@gmail.com>
In-Reply-To: <88A51A3A-64EE-4A6C-99A5-7EA8DC33CC8B@gmail.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-ms-exchange-transport-fromentityheader: Hosted
x-originating-ip: [68.87.29.10]
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-CFilter-Loop: Forward
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFnrBIsWRmVeSWpSXmKPExsXiEq4ko7thZV24QfseFYveY/PYLNbsk7RY uO0Ho8Wv70vYLCYdXchi8ebIWhaLxRM62Cw+TZjOanH9O7sDp8fOWXfZPRZsKvVYsuQnk8eC hTuYPU6e6mXz6Nrbwu7Rv/8hu8eEG48ZAziiuGxSUnMyy1KL9O0SuDIu/D/HVPBCrWLngXls DYwvVLsYOTkkBEwkDm9YwtbFyMUhJDCHSaLz53soZyejxL09N6GcE4wSn891MIG0sAkYSPy6 +5UFxBYRCJX4O+UAO0gRs8BxJonLE1+xgySEBawk1n/awwpRZC3Rt3oLG4QdJfGiYTZYDYuA isT3ufcZQWxeAS+Jhp2bmSG2nWOSWLh6BlARBwengK3EvEt2IDWMAmIS30+tATuCWUBc4taT +UwQPwhILNlznhnCFpV4+fgfK4RtILF16T4WCFte4siEfywgI5kFNCXW79KHGKMoMaX7ITvE CYISJ2c+gSoXlzh8ZAfrBEaJWUi2zULonoWkexaS7gWMLKsY5QoSk1OSczPyS0sMDPWSE5Ny UvWS83OTE4tLQPQmRnD8yy/fwXjvhdMhRgEORiUeXovWunAh1sSy4srcQ4wSHMxKIrycy4FC vCmJlVWpRfnxRaU5qcWHGKU5WJTEeV9NigkXEkhPLEnNTk0tSC2CyTJxcEo1MAb9ZHz895wP T9e8JjOmwMclR516vsyznLku0mkKv5z7ty0Prkq2/H2+VrqAJc5bY8bivIuBMYd5rdbr6Qpf Ep00w3D6+blZSUdibE54TJ2+RmzX0/3FLdnTIuU+fJDQcD2cJin75Wg9S7fzHIatHPxH3yca n1QUS/4702OKaP9X8cnyxYHH+pRYijMSDbWYi4oTAXquyHf7AgAA
Archived-At: <https://mailarchive.ietf.org/arch/msg/aqm/Io2hnrk5S89YLQEHBbpajMV3lN8>
X-Mailman-Approved-At: Thu, 07 Jul 2016 12:23:28 -0700
Cc: "Goltsman, Polina" <polina.goltsman@student.kit.edu>, Andrew Mcgregor <andrewmcgr@google.com>, Fabian Schwarzkopf <f.schwarzkopf@yahoo.de>, Wesley Eddy <wes@mti-systems.com>, Dave Taht <dave.taht@gmail.com>, Jana Iyengar <jri@google.com>, "Bless, Roland (TM)" <roland.bless@kit.edu>, "aqm@ietf.org" <aqm@ietf.org>
Subject: Re: [aqm] I-D Action: draft-ietf-aqm-codel-03.txt
X-BeenThere: aqm@ietf.org
X-Mailman-Version: 2.1.17
Precedence: list
List-Id: "Discussion list for active queue management and flow isolation." <aqm.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/aqm>, <mailto:aqm-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/aqm/>
List-Post: <mailto:aqm@ietf.org>
List-Help: <mailto:aqm-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/aqm>, <mailto:aqm-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 07 Jul 2016 19:13:58 -0000
> On 7 Jul, 2016, at 15:34, Michael Menth <menth@uni-tuebingen.de> wrote: > >> Based on our evaluations, with pure CoDel (without FQ-CoDel), >> "reentering" is actually a common case. I think Dave and Toke should >> have more experimental results to answer this question. (I included >> Dave in CC) > > We also studied this issue about one or two years ago. The algorithm > controlling the reentering of the dropping mode may have a significant > impact on control variables, drop rates, drop pattern depending on the > traffic. It can also impact utilization. Most interesting is probably > Fig. 6 on page 7 in > https://atlas.informatik.uni-tuebingen.de/~menth/papers/Menth16e.pdf That’s a very interesting paper for Codel enthusiasts. IMHO, Codel-ACT performs much better on the important metrics than plain Codel, especially when faced with multiplexed flows. [CK] I am familiar with CoDel and FQ-CoDel, but what is CoDel-ACT? I had also noticed the potential for Codel’s count to increase unboundedly while working on Cake; in fact when implemented as a 16-bit counter, it would wrap around on certain workloads, causing apparently chaotic behaviour. I therefore modified the variant of Codel that Cake used to *halve* the count on re-entry, a much more aggressive reduction than Codel-ACT uses, as well as using a saturating increment to prevent wraparound. However, I kept the basic behaviour of waiting a full interval before re-entry. More recently, I have changed Cake over to use COBALT, which is a combination of Codel and BLUE; Codel is intended to handle responsive flows which behave in a TCP-like manner, and BLUE to take over if the flow proves to be unresponsive (by running into the queue length limit). COBALT uses a re-implemented version of Codel with a much simplified main loop. It also has a novel re-entry behaviour: the count is reduced while the queue length is below target by running the algorithm in reverse, without marking or dropping. This means that very short non-dropping periods result in a slight reduction in count, and longer periods result in a larger reduction; the reduction also occurs faster when count is high. With your paper in mind, I may also change it to use the shorter re-entry delay of Codel-ACT, as you explain very clearly how it may be beneficial, and this shows in the graphs as a lower peak delay and a reduction in loss synchronisation between flows. I also think it will allow Codel to adapt more cleanly to RTTs significantly shorter than it is configured for - this is important where the defaults are set for internet-scale traffic, and people unthinkingly rely on those defaults in a LAN environment. Here is the relevant part of COBALT’s Codel implementation, showing the re-entry count reduction strategy: if(next_due && vars->dropping) { /* Use ECN mark if possible, otherwise drop */ drop = !(vars->ecn_marked = INET_ECN_set_ce(skb)); vars->count++; if(!vars->count) vars->count--; cobalt_invsqrt(vars); vars->drop_next = cobalt_control_law(vars->drop_next, p->interval, vars->rec_inv_sqrt); } else { while(next_due) { vars->count--; cobalt_invsqrt(vars); vars->drop_next = cobalt_control_law(vars->drop_next, p->interval, vars->rec_inv_sqrt); schedule = now - vars->drop_next; next_due = vars->count && schedule >= 0; } } The full code can be found here: https://github.com/dtaht/sch_cake/blob/master/cobalt.c - Jonathan Morton _______________________________________________ aqm mailing list aqm@ietf.org https://www.ietf.org/mailman/listinfo/aqm
- Re: [aqm] I-D Action: draft-ietf-aqm-codel-03.txt Roland Bless
- Re: [aqm] I-D Action: draft-ietf-aqm-codel-03.txt Jonathan Morton
- Re: [aqm] I-D Action: draft-ietf-aqm-codel-03.txt Klatsky, Carl
- Re: [aqm] I-D Action: draft-ietf-aqm-codel-03.txt Dave Täht
- Re: [aqm] I-D Action: draft-ietf-aqm-codel-03.txt Jonathan Morton
- Re: [aqm] I-D Action: draft-ietf-aqm-codel-03.txt Michael Menth
- Re: [aqm] I-D Action: draft-ietf-aqm-codel-03.txt Goltsman, Polina
- [aqm] I-D Action: draft-ietf-aqm-codel-03.txt internet-drafts
- Re: [aqm] I-D Action: draft-ietf-aqm-codel-03.txt Wesley Eddy
- Re: [aqm] I-D Action: draft-ietf-aqm-codel-03.txt Polina Goltsman
- Re: [aqm] I-D Action: draft-ietf-aqm-codel-03.txt Wesley Eddy
- Re: [aqm] I-D Action: draft-ietf-aqm-codel-03.txt Andrew Mcgregor