Search Linux Wireless

Re: bug: iwlwifi, aggregation, and mac80211's reorder buffer

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Sun, Mar 13, 2011 at 5:47 PM, wwguy <wey-yi.w.guy@xxxxxxxxx> wrote:
> On Sun, 2011-03-13 at 12:59 -0700, Daniel Halperin wrote:
>> On Fri, Mar 11, 2011 at 12:13 AM, Guy, Wey-Yi <wey-yi.w.guy@xxxxxxxxx> wrote:
>> >> (1) Why does iwlwifi default to an aggregation frame limit of 31? I
>> >> didn't see any negative effects from 63 frame limit and performance
>> >> improved dramatically
>> > if I remember correctly, we change from 63 to 31 while we have some 11n
>> > performance issue. even later we found out frame limit is not the main
>> > reason of low tpt, but we did not change it back since at the time we
>> > did not see any performance different, I believe we can use different
>> > frame limit, but I will prefer make it more flexible, maybe something
>> > could be change by either module parameter or debugfs. Also I am not
>> > sure are there any behavior differences between different devices and
>> > different versions of ucode.
>>
>> 63 hasn't hurt me yet, though the scheduler still does occasionally
>> send a 64th frame that shifts the reorder buffer's window.  Is there a
>> chance that 64 will work as a max?  63 seems an odd choice.
>
> it is limited by uCode, did not have chance to look at what the reason
> is yet. my initial guess without look at the code, 63 = 0x3F which use 6
> bits and 64=0x40 is 7 bits, but I am not sure, I will check

A few followups: in iwl-prph.h, we see that the default SCD window
size and AGG FRAME LIMIT are both 64 [1]. Indeed, the various masks on
these fields are 7 bits long. I bet an agg frame limit of 64 would
work just fine.

BUT, it looks like when we set up aggregation, we set the scheduler to
ALWAYS use the default maximum of 64 frames for both these parameters
[2] when configuring the agg queue. This is probably why the scheduler
is willing to send long batches and have many outstanding frames.  I
bet that the fix is to make these parameters match the ones that come
down from mac80211.  If I get time later, I will see if I can fix
this.

Dan

[1] https://github.com/mirrors/linux-2.6/blob/master/drivers/net/wireless/iwlwifi/iwl-prph.h#L336
[2] https://github.com/mirrors/linux-2.6/blob/master/drivers/net/wireless/iwlwifi/iwl-agn-tx.c#L270
--
To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux Host AP]     [ATH6KL]     [Linux Bluetooth]     [Linux Netdev]     [Kernel Newbies]     [Linux Kernel]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Samba]     [Device Mapper]
  Powered by Linux