rt2800usb: slow down TX status polling
authorStanislaw Gruszka <sgruszka@redhat.com>
Thu, 17 Oct 2013 10:04:31 +0000 (12:04 +0200)
committerMarc Dietrich <marvin24@gmx.de>
Sun, 27 Oct 2013 13:54:39 +0000 (14:54 +0100)
commit005baf39237a91df5003ffe10ecea7ce7d0308df
tree30746165a97eb1cd581ae915af49671663f4d5b2
parente7d1cb7672db760594ba184b67cbd92f1fdfef7b
rt2800usb: slow down TX status polling

Polling TX statuses too frequently has two negative effects. First is
randomly peek CPU usage, causing overall system functioning delays.
Second bad effect is that device is not able to fill TX statuses in
H/W register on some workloads and we get lot of timeouts like below:

ieee80211 phy4: rt2800usb_entry_txstatus_timeout: Warning - TX status timeout for entry 7 in queue 2
ieee80211 phy4: rt2800usb_entry_txstatus_timeout: Warning - TX status timeout for entry 7 in queue 2
ieee80211 phy4: rt2800usb_txdone: Warning - Got TX status for an empty queue 2, dropping

This not only cause flood of messages in dmesg, but also bad throughput,
since rate scaling algorithm can not work optimally.

In the future, we should probably make polling interval be adjusted
automatically, but for now just increase values, this make mentioned
problems gone.

Resolve:
https://bugzilla.kernel.org/show_bug.cgi?id=62781

Cc: stable@vger.kernel.org
Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com>
drivers/net/wireless/rt2x00/rt2800usb.c