From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-pb0-f43.google.com (mail-pb0-f43.google.com [209.85.160.43]) (using TLSv1 with cipher RC4-SHA (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority" (verified OK)) by huchra.bufferbloat.net (Postfix) with ESMTPS id 07A3821F0D4 for ; Mon, 27 Aug 2012 05:18:03 -0700 (PDT) Received: by pbbrq2 with SMTP id rq2so10245948pbb.16 for ; Mon, 27 Aug 2012 05:18:02 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=subject:from:to:cc:in-reply-to:references:content-type:date :message-id:mime-version:x-mailer:content-transfer-encoding; bh=uUkRfyU4R1WSs1MXf62SEPh3W230twG2DyCUR2Q2H48=; b=Y5m3dWQJPrNU9xBwhGTHGWqd/tBMaMZxnH6Bh8n8fXSuyfolIsUwr7s1UrwaAiEoCA s++m3ZpJtSFQWCpUwn4JcdDvQz43BlFceprMZ8+QRCP4y9JN44NDw1UmfgsB0B1eZDNh M5+onmPw+3BzKegthny8ajX6Gjvxq+34JLZmPobN2///fQFlF5GbxHsqJBO0R19ks2Bl RPTxMhHTX3waQ37Ti20Don769XkgZ6uXksO5AS+jxibLIxfBj9XB0wv5kJy4XeQ4a4AG LP4AqN8NGZoF/jmpLJGfluVA5VOqpUB4zxIRhbw0WxmWbItTm0NI2FSUGBnM+D5ZW9Ju 250g== Received: by 10.68.203.196 with SMTP id ks4mr17069971pbc.107.1346069882674; Mon, 27 Aug 2012 05:18:02 -0700 (PDT) Received: from [10.10.4.249] (0127ahost2.starwoodbroadband.com. [12.105.246.2]) by mx.google.com with ESMTPS id hr9sm14598786pbc.36.2012.08.27.05.18.01 (version=SSLv3 cipher=OTHER); Mon, 27 Aug 2012 05:18:01 -0700 (PDT) From: Eric Dumazet To: Dave =?ISO-8859-1?Q?T=E4ht?= In-Reply-To: <1346007773-26679-2-git-send-email-dave.taht@bufferbloat.net> References: <1346007773-26679-1-git-send-email-dave.taht@bufferbloat.net> <1346007773-26679-2-git-send-email-dave.taht@bufferbloat.net> Content-Type: text/plain; charset="UTF-8" Date: Mon, 27 Aug 2012 05:17:59 -0700 Message-ID: <1346069879.2420.249.camel@edumazet-glaptop> Mime-Version: 1.0 X-Mailer: Evolution 2.28.3 Content-Transfer-Encoding: 8bit Cc: codel@lists.bufferbloat.net Subject: Re: [Codel] [RFC PATCH] codel: tighten responsiveness and more reliably deal with loads 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: Mon, 27 Aug 2012 12:18:03 -0000 On Sun, 2012-08-26 at 12:02 -0700, Dave Täht wrote: > From: Dave Taht > > This updates the codel algorithm to more closely match the current > experimental ns2 code. Not presently recomended for mainline. > > 1) It shortens the search for the minimum by reducing the window over > the intervals and re-running the control law to better schedule > the estimate. > 2) Holds onto the drop schedule harder when re-entering drop state. > 3) Corrects for newton method running in reverse. > > --- > include/net/codel.h | 39 +++++++++++++++++++++++---------------- > 1 file changed, 23 insertions(+), 16 deletions(-) > > diff --git a/include/net/codel.h b/include/net/codel.h > index 389cf62..57031ad 100644 > --- a/include/net/codel.h > +++ b/include/net/codel.h > + codel_Newton_step(vars); > + codel_Newton_step(vars); This makes no sense for several reasons : 1) If we do the vars->count = 1; vars->rec_inv_sqrt = ~0U >> REC_INV_SQRT_SHIFT; Then there is no need of _any_ Newton steps. The rec_inv_sqrt value is the good one. 2) If we change vars->count to vars->count - 2 Then a single step is enough. I can understand that with the current way : vars->count = vars->count - vars->lastcount then we can have a slight error, but this gave no difference in codel experimental behavior. I would say that codel response to bad queue is pretty easy (doing count ++ at each drop), but changes in count to adapt to oscillations between good and bad queues is yet to be investigated. Do we have to do 0) current way (count - lastcount) 1) count = count - 1 2) count = count - 2 3) count = count * 88% 4) count = count * 75% 5) count = count * 50% 6) count = count * 25% 7) count = some clever function using history of previous changes ... In my prior tests, 1) and 2) were pretty bad, I am sure it is not the right way. (the count = 1 is only done when queue was idle for a long time)