rt2800usb: slow down TX status polling
authorStanislaw Gruszka <sgruszka@redhat.com>
Fri, 18 Oct 2013 09:36:54 +0000 (11:36 +0200)
committerJohn W. Linville <linville@tuxdriver.com>
Fri, 18 Oct 2013 17:41:11 +0000 (13:41 -0400)
commit36165fd5b00bf8163f89c21bb16a3e9834555b10
tree666b0e1b64584cd684e0e8c3d06f32c380cc4a69
parent5671ab05cf2a579218985ef56595387932d78ee4
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>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
drivers/net/wireless/rt2x00/rt2800usb.c