Search Linux Wireless

Re: ieee80211 phy0: rt2x00queue_write_tx_frame: Error - Dropping frame due to full tx queue...?

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

 



On Tue, Apr 17, 2018 at 07:32:57AM -0600, Kofi Agor wrote:
> Some minor changes to our patch:
> 
>    1. We (Craig Matsuura) found that disabling/enable the txtasklet worked
>    better than tearing down and recreating the txtasklet each time. It also
>    resolved a kernel oops we were experiencing.
>    2. Cleaned up the patch a bit and gave credit to the developers
>    3. There's a companion patch along with the txqueue patch that I forgot
>    to add when I submitted the txqueue patch the first time. It resolves an
>    rtnl deadlock during device unregistration. This should resolve the ifdown
>    issue you were experiencing.

I can see few problems with this patch (except that it's messy and hard
to read):
- it does not detect HW hung and does not reset the HW when needed
  as watchdog is supposed to do
- it waits only 100ms for TX status for each entry what is not enough,
  when then TX status will show up, we will get "Got TX status for an
  empty queue" error, but more importantly we do not feed rate control
  algorithm with proper data
- it push TX status to upper layers without filling it properly (what
  confuses rc algorithm even more) via rt2x00lib_txdone_nomatch()
  instead of rt2x00lib_txdone_noinfo(), which is intended for case when
  we have no status information.

Patch can help on situation when hardware do not provide TX status for each
sent frame, but there is much better way to handle this problem, see usb
version of the driver i.e. rt2800usb_work_txdone().

Cheers
Stanislaw




[Index of Archives]     [Linux Host AP]     [ATH6KL]     [Linux Wireless Personal Area Network]     [Linux Bluetooth]     [Wireless Regulations]     [Linux Netdev]     [Kernel Newbies]     [Linux Kernel]     [IDE]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite Hiking]     [MIPS Linux]     [ARM Linux]     [Linux RAID]

  Powered by Linux