high latency due to distant clients
John Nielsen
lists at jnielsen.net
Thu Jul 18 22:36:06 UTC 2013
On Jul 18, 2013, at 11:22 AM, Adrian Chadd <adrian at freebsd.org> wrote:
> On Jul 18, 2013, at 11:19 AM, Petar Bogdanovic <petar at smokva.net> wrote:
>
>> On Thu, Jul 18, 2013 at 09:25:19AM -0700, Adrian Chadd wrote:
>>> On 18 July 2013 09:04, Petar Bogdanovic <petar at smokva.net> wrote:
>>>> On Thu, Jul 18, 2013 at 08:59:29AM -0700, Adrian Chadd wrote:
>>>>>
>>>>> I think I fixed this in -HEAD.
>>>>
>>>> Uh-oh, great! Will that change reach a stable release anytime soon?
>>>
>>> When 10.0 is stable, yup. :)
>>>
>>>> And--out of naive curiosity--what was the problem?
>>>
>>> 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.
>>>
>>> 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.
>>>
>>> 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.
>>
>> Thanks for the nice and comprehensive explanation!
>>
>> 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).
>
> 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
More information about the freebsd-wireless
mailing list