From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-lb0-x234.google.com (mail-lb0-x234.google.com [IPv6:2a00:1450:4010:c04::234]) (using TLSv1 with cipher RC4-SHA (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by huchra.bufferbloat.net (Postfix) with ESMTPS id C05E421F30B for ; Wed, 1 Apr 2015 21:48:44 -0700 (PDT) Received: by lboc7 with SMTP id c7so51149240lbo.1 for ; Wed, 01 Apr 2015 21:48:41 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=content-type:mime-version:subject:from:in-reply-to:date:cc :message-id:references:to; bh=S+nANItNPp8xqnkHsb9NV7qEJKx7G9N1MEKWEmjOs9o=; b=WlDqshiMNG20HfGRy+4+wtzF3CANyKp3BHJe0LxWFIeO0hdFGzeNrLpFffVe1WxdcO ckzB3cxruDTSL/xSIMgqn3KLlW3iuCBXRgNUZRLwn9iwMGfr5a1GW2ByamSda3O2BakZ 3+bygXieBbb/tw/cY6rU9dEmHSNCXECCKyM3GQpmtmvx+AU0uqRofdE6mwOMJjQQMxXc /a1rmCbLUt7/I52SxZNYg05Ei2E6c/ccioWP3fkRbQwEiMqzrRbR9IZaYKQeR8s3gvX4 oNxyrNAolKV/QAlbWpwp/jmZQFiQqarKRF7fre6p1OKdXdW7pK4SwkIysGmUwnlSopIH m7Dg== X-Received: by 10.152.204.168 with SMTP id kz8mr15471268lac.70.1427950121796; Wed, 01 Apr 2015 21:48:41 -0700 (PDT) Received: from bass.home.chromatix.fi (109-108-20-73.bb.dnainternet.fi. [109.108.20.73]) by mx.google.com with ESMTPSA id 8sm806856lau.11.2015.04.01.21.48.39 (version=TLSv1 cipher=ECDHE-RSA-RC4-SHA bits=128/128); Wed, 01 Apr 2015 21:48:40 -0700 (PDT) Content-Type: multipart/mixed; boundary="Apple-Mail=_34A4FDD1-D548-402E-81D6-B4339165B61B" Mime-Version: 1.0 (Mac OS X Mail 8.2 \(2070.6\)) From: Jonathan Morton In-Reply-To: Date: Thu, 2 Apr 2015 07:48:37 +0300 Message-Id: <66618FF0-2531-40F2-B296-A9F12A731070@gmail.com> References: <7081A75C-899A-4DB7-8D77-935A37B362D8@gmail.com> <5509957B.30600@pollere.com> <491C7497-BE3E-452B-A797-C7FC1102E7ED@gmail.com> <750FA673-E20D-4D48-9386-097D32CD31FB@gmail.com> <51665FD7-629A-4B8C-B258-2E9AF8E3B5D0@gmx.de> To: Dave Taht X-Mailer: Apple Mail (2.2070.6) Cc: "codel@lists.bufferbloat.net" Subject: Re: [Codel] The next slice of cake 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, 02 Apr 2015 04:49:13 -0000 --Apple-Mail=_34A4FDD1-D548-402E-81D6-B4339165B61B Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset=utf-8 > On 30 Mar, 2015, at 22:28, Dave Taht wrote: >=20 >> I made a lot of progress over the weekend, and got cake3 running on a = sacrificial box today. No crashes yet! >=20 > Preliminary patches always appreciated. I plan to do a build thursday > for a test cycle this weekend of various things. Have a go with this, then. I took the time to do quite a lot of little = cleanup things, such as suppressing the statistics output of classes = that are not in use. Tests on the Pentium-MMX show similar throughput and latency = capabilities to the first version of cake, but this version has more = robust behaviour in high-traffic situations - and the Diffserv logic is = also far more useful. I=E2=80=99m working towards getting OProfile = running on at least one of my desktop-type machines; hopefully it=E2=80=99= ll work sufficiently well on the Pentium-MMX, since that=E2=80=99s the = easiest one to drive into saturation. The kernel patch applies on top of the previous one, but the iproute2 = patch should apply to stock. Note that the current git version of = iproute2 seems to have a problem with displaying the stats from an = ingress filter. - Jonathan Morton --Apple-Mail=_34A4FDD1-D548-402E-81D6-B4339165B61B Content-Disposition: attachment; filename=cake3-take7.patch.gz Content-Type: application/x-gzip; name="cake3-take7.patch.gz" Content-Transfer-Encoding: base64 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 HR80v/j2zQuk/y8gkZQIKNEAAA== --Apple-Mail=_34A4FDD1-D548-402E-81D6-B4339165B61B Content-Disposition: attachment; filename=iproute2-cake3.patch.gz Content-Type: application/x-gzip; name="iproute2-cake3.patch.gz" Content-Transfer-Encoding: base64 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 --Apple-Mail=_34A4FDD1-D548-402E-81D6-B4339165B61B--