From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-wg0-x229.google.com (mail-wg0-x229.google.com [IPv6:2a00:1450:400c:c00::229]) (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 3769721F19C for ; Sat, 11 Jan 2014 11:14:41 -0800 (PST) Received: by mail-wg0-f41.google.com with SMTP id n12so1508707wgh.2 for ; Sat, 11 Jan 2014 11:14:39 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:date:message-id:subject:from:to:content-type :content-transfer-encoding; bh=zDAqTneCWLxdSS6UGVi96oDP/0yWglCjyU9UxLw8Z0E=; b=nhCK5cGihucbvVi4waufmM8J3BAkbbmvDeBHhEK+DMQBxfVSiEiXvJEpwAY8dqFYc+ XzQt+uWFQDl6mm+oQ9qjuNUcFf6eFkrC4ukdWte0CFa+s93NWKzzD6P/GrpOVY/G6nz+ k4JbEKOYK9fYO3SQIXpF0fZ+7g1cocXVmby1mgdELs96kKqZ0Vwj6KVfvLLInnsKijNd cLfGLTANSv87510BWnUhRMZvuCrQXBUzwuIstxJFcaKKSc+UeyXerM+kCkujHYAUPQnb Ei6LrxLDIvP0lVNc5zQErRSayMfToOVwbRUbIPZeceFm5g9Hkv8CXRnohAJOy55H5Kau BxhA== MIME-Version: 1.0 X-Received: by 10.194.57.243 with SMTP id l19mr14699990wjq.54.1389467678834; Sat, 11 Jan 2014 11:14:38 -0800 (PST) Received: by 10.217.123.69 with HTTP; Sat, 11 Jan 2014 11:14:38 -0800 (PST) Date: Sat, 11 Jan 2014 14:14:38 -0500 Message-ID: From: Dave Taht To: "cerowrt-devel@lists.bufferbloat.net" Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Subject: [Cerowrt-devel] improving performance on wifi under contention X-BeenThere: cerowrt-devel@lists.bufferbloat.net X-Mailman-Version: 2.1.13 Precedence: list List-Id: Development issues regarding the cerowrt test router project List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 11 Jan 2014 19:14:50 -0000 X-List-Received-Date: Sat, 11 Jan 2014 19:14:50 -0000 There are quite a few things I'd like to try before declaring cerowrt stable. That said, I'm pretty happy with the last release, and can probably live without some long desired features in order to retire the last release. So +1 on the enthusiasm there... I need to write down and publish here the 12+ or so fit and finish things that need to get done, and think on the bigger issues, which I'll do tomorrow afternoon. there are also some bigger bugs in the bug database worth reviewing by everyone... some folk should try the thc tools to stress out the ipv6 stuff and look at the unaligned instructions... we didn't get all of them that hit at boot... there was a crash reported by the iwl folk on a fragmentation thing... One performance test on my agenda was improving performance under wifi when multiple stations are active. (running rrul from two wifi stations through cero to a local server for example). With the current system, packet aggregation goes to hell rapidly, partially= due to overbuffering, and partially due to per-station queueing not being done in the driver yet. I'd long thought that a short term partial fix for this would be to use a per destination hash on the fq_codel queues. But I'm unsure if code like this would work, and there are side effects from not doing better mixing on a per-sta basis (which we want to do in the driver at some point) that might cancel things out... however, if someone could make this work and test it, I'd love it. IFACE=3Dsw00 qdisc add dev $IFACE handle 1 root mq qdisc add dev $IFACE parent 1:1 handle 10 fq_codel limit 1000 quantum 1514 # VO queue doesn't aggregate, should probable switch to nfq_codel # Would like to send multicast to VO, too # 3 big packets or a LOT of acks. qdisc add dev sw00 parent 1:2 handle 20 fq_codel limit 1000 quantum 4542 qdisc add dev sw00 parent 1:3 handle 30 fq_codel limit 1000 quantum 4542 qdisc add dev sw00 parent 1:4 handle 40 fq_codel limit 1000 quantum 4542 # use fq_codel to bunch up packets per device rather than per flow tc filter add dev $IFACE prio 1 protocol all parent 10: handle 1 flow hash = \ keys dst divisor 1024 baseclass 10:1 tc filter add dev $IFACE prio 1 protocol all parent 20: handle 1 flow hash = \ keys dst divisor 1024 baseclass 20:1 tc filter add dev $IFACE prio 1 protocol all parent 30: handle 1 flow hash = \ keys dst divisor 1024 baseclass 30:1 tc filter add dev $IFACE prio 1 protocol all parent 40: handle 1 flow hash = \ keys dst divisor 1024 baseclass 40:1 a tc filter show dev $IFACE # shows nothing. bug? which is where I left that months ago. --=20 Dave T=E4ht Fixing bufferbloat with cerowrt: http://www.teklibre.com/cerowrt/subscribe.= html