[rt2x00-users] [RFC/RFT] rt2x00: Fix rt2800usb TX status report matching to a TX queue entry.
Andreas Hartmann
andihartmann at 01019freenet.de
Thu Feb 16 18:33:26 EST 2012
Hi Gertjan,
Am Wed, 15 Feb 2012 23:13:28 +0100
schrieb Gertjan van Wingerde <gwingerde at gmail.com>:
> rt2800usb tries to match a TX status report to a TX queue entry by putting
> an indication of the TX queue entry index in the TXWI, which is then copied
> to the TX status report.
>
> This, however, assumes that for each frame the TXWI field containing this
> index indication is correctly copied to the TX status report.
>
> As it turns out, this assumption is not correct, as the device, when
> aggregating frames, reports the TXWI field of the first aggregated frame
> in the TX status reports of all the aggregated frames.
>
> This causes a lot of mismatching of TX status reports, causing rt2800usb to
> miss TX status reports for TX-ed frames that actually are correctly received.
>
> Fix this by no longer including this index indication in the TXWI field and
> by not checking this index indication anymore when trying to match a TX
> status report to a TX queue entry.
>
> The net result is that rt2800usb now no longer spews out endless dmesg logs of:
> phy0 -> rt2800usb_txdone_entry_check: Warning - TX status report missed for queue <x> entry <y>
I did a short test (802.11n on a single core STA with the last rt3572
patches applied (same compat-wireless as used for the last check, but
with your additional patch)) which showed up two things:
1. You achieved your primary goal: get rid of
the rt2800usb_txdone_entry_check warnings.
2. There are some other entries now, probably these which Ivo meant:
kernel: [21058.994029] phy0 -> rt2x00queue_flush_queue: Warning - Queue 0 failed to flush
kernel: [21060.002297] phy0 -> rt2x00usb_watchdog_tx_status: Warning - TX queue 0 status timed out, invoke forced tx handler
very often, about each second:
kernel: [21128.004179] wlan1: detected beacon loss from AP - sending probe request
...
kernel: [21133.183417] wlan1: cancelling probereq poll due to a received beacon
...
kernel: [21312.002269] phy0 -> rt2x00usb_watchdog_tx_status: Warning - TX queue 2 status timed out, invoke forced tx handler
After stopping the test with netperf (and a idle connection again),
the following messages came up:
kernel: [21357.507039] ieee80211 phy0: wlan1: No probe response from AP 94:1b:a2:34:d2:a5 after 500ms, try 1/5
kernel: [21358.002278] phy0 -> rt2x00usb_watchdog_tx_status: Warning - TX queue 0 status timed out, invoke forced tx handler
kernel: [21358.010281] ieee80211 phy0: wlan1: No probe response from AP 94:1b:a2:34:d2:a5 after 500ms, try 2/5
kernel: [21358.368219] wlan1: cancelling probereq poll due to a received beacon
kernel: [21359.002358] phy0 -> rt2x00usb_watchdog_tx_status: Warning - TX queue 0 status timed out, invoke forced tx handler
kernel: [21359.181028] phy0 -> rt2x00queue_flush_queue: Warning - Queue 0 failed to flush
kernel: [21360.002317] phy0 -> rt2x00usb_watchdog_tx_status: Warning - TX queue 0 status timed out, invoke forced tx handler
kernel: [21361.004031] wlan1: detected beacon loss from AP - sending probe request
kernel: [21361.507042] ieee80211 phy0: wlan1: No probe response from AP 94:1b:a2:34:d2:a5 after 500ms, try 1/5
kernel: [21362.002354] phy0 -> rt2x00usb_watchdog_tx_status: Warning - TX queue 0 status timed out, invoke forced tx handler
kernel: [21362.010234] ieee80211 phy0: wlan1: No probe response from AP 94:1b:a2:34:d2:a5 after 500ms, try 2/5
kernel: [21362.511045] ieee80211 phy0: wlan1: No probe response from AP 94:1b:a2:34:d2:a5 after 500ms, try 3/5
kernel: [21362.669193] wlan1: cancelling probereq poll due to a received beacon
kernel: [21363.002312] phy0 -> rt2x00usb_watchdog_tx_status: Warning - TX queue 0 status timed out, invoke forced tx handler
....
Thank you,
kind regards,
Andreas
More information about the users
mailing list