From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-wg0-f41.google.com (mail-wg0-f41.google.com [74.125.82.41]) (using TLSv1 with cipher RC4-SHA (128/128 bits)) (Client did not present a certificate) by huchra.bufferbloat.net (Postfix) with ESMTPS id E478820221E; Thu, 30 Aug 2012 16:19:19 -0700 (PDT) Received: by wgbds1 with SMTP id ds1so441955wgb.4 for ; Thu, 30 Aug 2012 16:19:18 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type:content-transfer-encoding; bh=hZjX51h+tCKCwJhfnkBtL4LvayBB7OsIBTDX/iGMBPQ=; b=jYr6QL9O39+HTP+30Tfinq3YSlFNzCTSr6PZgm5zErYjodMaI/Abnsp8JNfUv8EozD fRT1hU3o8UY44XH5JKeVsm4/6f3PoYUGsg1mQP6TRGUuOxw3cwGOYc4Q+ni3EJV7sRxv S/AlBj+o5+bayAeIxLFAX4LDW8rDMwSXe4BD4ChbWtQ1p4V0CpWCtZihX3sasAe2Cdkk 9cJ6tg41OfA7RAjB/gWpPZLbfCXTixVBjtAxm0XCJtK0zf7sejltF3jT+ekr70FrKDBk NYKrlwjY5Jy411PWjeHzyS9DkWcl3hPnMB6XODmCHKZqGL+mo/2GSAxpADXZtkouzgfh b6Gg== MIME-Version: 1.0 Received: by 10.216.71.82 with SMTP id q60mr3977910wed.64.1346368758043; Thu, 30 Aug 2012 16:19:18 -0700 (PDT) Received: by 10.223.159.134 with HTTP; Thu, 30 Aug 2012 16:19:17 -0700 (PDT) In-Reply-To: <1346367998.2586.33.camel@edumazet-glaptop> References: <1346367998.2586.33.camel@edumazet-glaptop> Date: Thu, 30 Aug 2012 16:19:17 -0700 Message-ID: From: Dave Taht To: Eric Dumazet Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Cc: codel@lists.bufferbloat.net, cerowrt-devel@lists.bufferbloat.net Subject: Re: [Codel] better mixing in fq_codel 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: Thu, 30 Aug 2012 23:19:20 -0000 On Thu, Aug 30, 2012 at 4:06 PM, Eric Dumazet wrot= e: > On Thu, 2012-08-30 at 15:59 -0700, Dave Taht wrote: >> I have finally found the source of the issues I was having with htb + >> fq_codel at low bandwidths, and it wasn't htb to the extent I thought >> it was. >> >> It was fq_codel's use of byte quantums, which was resulting in head of >> line blocking for multiple streams. >> >> The undesirable behavior (quantum of 1500) >> >> A new stream, 15 acks (1500 bytes or so) >> B new stream, 4 acks (66 bytes each) >> C new stream, 1 packet, 1500 bytes >> >> Each stream would be delivered in an entire quantum's quantity before >> the next. This is basically something that is nearly unnoticable at >> higher bandwidths, but down here in the slow moving mud, it's quite >> significant. At 1 mbit, 1500 bytes is forever... >> >> Better mixing behavior results from >> >> A 1 packet >> B 1 packet >> C 1 packet (if not larger than quantum) >> A 1 packet "" >> B 1 packet "" >> ... >> >> While I have a patch for this (all 5 lines of it), which does this >> sort of mixing, it crashes under load, but I'll get there. Behavior >> before it crashes is rather nice, where before I was observing >> something like 36 ms of delay with htb for: small packets, "sparse" or >> ANT streams under a variety of loads, it drops below 3ms in the >> general case for those. Both qos-scripts and simple-qos benefit >> hugely. >> >> One of these three sets of changes to fq_codel_dequeue or enqueue is >> dubious. (well, I have a half dozen other patches and fixups to codel >> and fq_codel in the queue too, so have to rip out each). But yea! this >> is the low bandwidth behavior we want! > > > You dont need a patch, fq_codel has a quantum parameter, default to 1514 > > Just set it to 256 if you really feel the need. In that case it will deliver 3 acks in a row from stream A, and then 3 acks in stream B, in the linux 3.5 version, and push the the 1500 byte packet from my example to the old flows queue - instead of delivering A 1 ack, B 1 ack, push the C 1500 byte packet to the old flows queue, then deliver A,B,A,B,A,B, A, A, A etc (and note with more flows mixing gets better) as I just proposed. (actually I got the idea from the current ns2 sfqcodel model.) This variant however preserves the "prioritize the new stream slightly idea", admittedly less than before... > > > --=20 Dave T=E4ht http://www.bufferbloat.net/projects/cerowrt/wiki - "3.3.8-17 is out with fq_codel!"