From owner-freebsd-wireless@FreeBSD.ORG Thu Jul 18 22:36:06 2013 Return-Path: Delivered-To: freebsd-wireless@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by hub.freebsd.org (Postfix) with ESMTP id 093CFEDA for ; Thu, 18 Jul 2013 22:36:06 +0000 (UTC) (envelope-from lists@jnielsen.net) Received: from ns1.jnielsen.net (secure.freebsdsolutions.net [69.55.234.48]) by mx1.freebsd.org (Postfix) with ESMTP id C7F53D19 for ; Thu, 18 Jul 2013 22:36:05 +0000 (UTC) Received: from [10.10.1.32] (office.betterlinux.com [199.58.199.60]) (authenticated bits=0) by ns1.jnielsen.net (8.14.4/8.14.4) with ESMTP id r6IMV02k040562 (version=TLSv1/SSLv3 cipher=AES128-SHA bits=128 verify=NOT); Thu, 18 Jul 2013 18:31:00 -0400 (EDT) (envelope-from lists@jnielsen.net) Content-Type: text/plain; charset=us-ascii Mime-Version: 1.0 (Mac OS X Mail 6.5 \(1508\)) Subject: Re: high latency due to distant clients From: John Nielsen In-Reply-To: <20130718171945.GA6817@pintail.NGC004> Date: Thu, 18 Jul 2013 16:31:10 -0600 Content-Transfer-Encoding: quoted-printable Message-Id: <9A1C017F-E982-4317-B92F-4B2D494A3081@jnielsen.net> References: <20130718155200.GA381@pintail.NGC004> <20130718160436.GB381@pintail.NGC004> <20130718171945.GA6817@pintail.NGC004> To: Petar Bogdanovic X-Mailer: Apple Mail (2.1508) X-DCC-Etherboy-Metrics: ns1.jnielsen.net 1002; Body=2 Fuz1=2 Fuz2=2 X-Virus-Scanned: clamav-milter 0.97.8 at ns1.jnielsen.net X-Virus-Status: Clean Cc: freebsd-wireless@freebsd.org X-BeenThere: freebsd-wireless@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "Discussions of 802.11 stack, tools device driver development." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 18 Jul 2013 22:36:06 -0000 On Jul 18, 2013, at 11:22 AM, Adrian Chadd wrote: > On Jul 18, 2013, at 11:19 AM, Petar Bogdanovic = wrote: >=20 >> On Thu, Jul 18, 2013 at 09:25:19AM -0700, Adrian Chadd wrote: >>> On 18 July 2013 09:04, Petar Bogdanovic wrote: >>>> On Thu, Jul 18, 2013 at 08:59:29AM -0700, Adrian Chadd wrote: >>>>>=20 >>>>> I think I fixed this in -HEAD. >>>>=20 >>>> Uh-oh, great! Will that change reach a stable release anytime = soon? >>>=20 >>> When 10.0 is stable, yup. :) >>>=20 >>>> And--out of naive curiosity--what was the problem? >>>=20 >>> The ath driver before 11n support went in would just fill the = hardware >>> TX queue with frames. There's no per-station queue or any kind of = fair >>> queuing. So if you fill the TX queue in the driver with frames to a >>> far away station, it'll block all frames to other stations whilst >>> they're transmitted and retransmitted. >>>=20 >>> When I introduced 11n support, I added per-station and >>> per-traffic-class queues in the driver as part of A-MPDU support. I >>> software queue almost everything first and then schedule frames to = the >>> hardware from these software queued frames. This has the side effect >>> of making it fairer between multiple stations, especially if one of >>> them is far away. It will only schedule a small number of frames to >>> each station before going to another station, rather than possibly >>> being backed up with 128 frames just to a single destination. >>>=20 >>> Now, it's likely there's more work that can be done to improve that >>> behaviour with slow, far away clients. The framework is there in >>> -HEAD. I've just not sat down and made it work. So if you update to >>> -HEAD and you still have problems, we can tweak things and = experiment. >>=20 >> Thanks for the nice and comprehensive explanation! >>=20 >> I'll prepare the upgrade during the next couple of weeks and report >> back. It will probably be 9.1 userland and HEAD kernel (that = approach >> worked well in the past). >=20 > I really do suggest -HEAD everything. If it makes you feel any better, I've been running -HEAD (with = semi-regular updates) on my ALIX AP for a while without any trouble. Of = course, I do the builds on another box... I'm happy to share make = settings, etc if that would be useful. JN