From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from homiemail-a84.g.dreamhost.com (unknown [69.163.253.179]) by huchra.bufferbloat.net (Postfix) with ESMTP id DFC5E21F14E for ; Tue, 11 Mar 2014 15:32:30 -0700 (PDT) Received: from homiemail-a84.g.dreamhost.com (localhost [127.0.0.1]) by homiemail-a84.g.dreamhost.com (Postfix) with ESMTP id 18F8D1DE071; Tue, 11 Mar 2014 15:32:30 -0700 (PDT) Received: from kmn.local (c-98-210-250-14.hsd1.ca.comcast.net [98.210.250.14]) (using TLSv1 with cipher DHE-RSA-AES128-SHA (128/128 bits)) (No client certificate requested) (Authenticated sender: nichols@pollere.net) by homiemail-a84.g.dreamhost.com (Postfix) with ESMTPSA id F3B721DE059; Tue, 11 Mar 2014 15:32:29 -0700 (PDT) Message-ID: <531F8EFD.5010807@pollere.com> Date: Tue, 11 Mar 2014 15:32:29 -0700 From: Kathleen Nichols User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.7; rv:24.0) Gecko/20100101 Thunderbird/24.3.0 MIME-Version: 1.0 To: "codel@lists.bufferbloat.net" X-Enigmail-Version: 1.6 Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: quoted-printable Subject: [Codel] missing part of section 6.2 of draft-nichols-tsvwg-codel-02 X-BeenThere: codel@lists.bufferbloat.net X-Mailman-Version: 2.1.13 Precedence: list List-Id: CoDel AQM discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 11 Mar 2014 22:32:31 -0000 It has come to my attention that part of section 6.2 of the draft is missing, apparently due to passing through several programs in order to conform to the holy Internet Draft format. Since the missing part is quite interesting, here it is. When people without time to mess around with this archaic stuff stop doing Internet Drafts, the IETF will then only have drafts by people with time to mess around with this archaic stuff. Here is how it should read (points a, b, and c were missing): 6.2 CoDel in the datacenter Nandita Dukkipati=92s team at Google was quick to realize that the CoDel building blocks could be applied to bufferbloat problems in datacenter servers, not just to Internet routers. The Linux CoDel queueing discipline (Qdisc) was adapted in three ways to tackle this bufferbloat problem. a) The default CoDel action was modified to be a direct feedback from Qdisc to the TCP layer at dequeue. The direct feedback simply reduces TCP=92s congestion window just as congestion control would do in the even= t of drop. The scheme falls back to ECN marking or packet drop if the TCP socket lock could not be acquired at dequeue. b) Being located in the server makes it possible to monitor the actual RTT to use as CoDel=92s interval rather than making a =93best guess=94 of= RTT. The CoDel interval is dynamically adjusted by using the maximum TCP round-trip time (RTT) of those connections sharing the same Qdisc/bucket. In particular, there is a history entry of the maximum RTT experienced over the last second. As a packet is dequeued, the RTT estimate is accessed from its TCP socket. If the estimate is larger than the current CoDel interval, the CoDel interval is immediately refreshed to the new value. If the CoDel interval is not refreshed for over a second, it is decreased it to the history entry and the process repeated. The use of the dynamic TCP RTT estimate lets interval adapt to the actual maximum value currently seen and thus lets the controller space its drop intervals appropriately. c) Since the mathematics of computing the set point are invariant, a target of 5% of the RTT or CoDel interval was used here. Non-data packets were not dropped as these are typically small and sometimes critical control packets. Being located on the server, there is no concern with misbehaving users scamming such a policy as there would be in an Internet router. In several data center workload benchmarks, which are typically bursty, CoDel reduced the queueing latencies at the Qdisc, and thereby improved the mean and 99 percentile latencies from several tens of milliseconds to less than one millisecond. The minimum tracking part of the CoDel framework proved useful in disambiguating =93good=94 queue versus =93bad=94 queue, particularly helpful in controlling Qdisc buffers that are inherently bursty because of TCP Segmentation Offload.