Send users mailing list submissions to
[email protected]
To subscribe or unsubscribe via the World Wide Web, visit
http://rt2x00.serialmonkey.com/mailman/listinfo/users_rt2x00.serialmonkey.com
or, via email, send a message with subject or body 'help' to
[email protected]
You can reach the person managing the list at
[email protected]
When replying, please edit your Subject line so it is more specific
than "Re: Contents of users digest..."
Today's Topics:
1. rt2800pci: broken for 5GHz AP - throughput issues, stalls and
completely dead device (Andreas Hartmann)
2. Re: [PATCH 3/5] rt2x00: rt2800usb: rework txstatus code
(Stanislaw Gruszka)
3. [PATCH] rt2x00: rt2800usb: schedule txdone work on timeout
(Stanislaw Gruszka)
4. Re: So many USB interrupts (Stanislaw Gruszka)
5. Re: [PATCH] rt2x00: increase led's name buffer length
(Stanislaw Gruszka)
----------------------------------------------------------------------
Message: 1
Date: Mon, 19 Mar 2012 08:16:34 +0100
From: Andreas Hartmann <[email protected]>
To: [email protected]
Subject: [rt2x00-users] rt2800pci: broken for 5GHz AP - throughput
issues, stalls and completely dead device
Message-ID: <[email protected]>
Content-Type: text/plain; charset=US-ASCII
Hello,
I tested rt2800pci (device rt2860 - Linksys WMP600N) on a smp machine
with 5 GHz / 802.11n / 40 MHz as AP with netperf and
compat-wireless-2012-03-16 on linux 3.1.10 64bit.
Radio condition is optimal (2 m difference between supplicant and AP,
nothing but air in between (the performance with 2.4 GHz is 14 Mbit/s
TX and 10 Mbit/s RX (as seen by the AP)).
The additional patches "mac80211: revert: retry sending failed BAR
frames later instead of tearing down aggr-v2.patch" and "correct
beaconing" are applied.
I configured hostapd (git-head from yesterday) like this (only relevant
configuration entries):
country_code=DE
ieee80211d=1
hw_mode=a
channel=36
max_num_sta=255
rts_threshold=2347
fragm_threshold=2346
preamble=1
ignore_broadcast_ssid=0
wmm_enabled=1
wmm_ac_bk_cwmin=4
wmm_ac_bk_cwmax=10
wmm_ac_bk_aifs=7
wmm_ac_bk_txop_limit=0
wmm_ac_bk_acm=0
ieee80211n=1
ht_capab=[HT40+][SHORT-GI-40][SHORT-GI-20][TX-STBC1][MAX-AMSDU-3839][RX-STBC12][SMPS-STATIC][GF]
wpa=10
wpa_key_mgmt=WPA-EAP
wpa_pairwise=CCMP
rsn_pairwise=CCMP
crda is version 1.1.1, iw is version 3.3, regdb is 2011.04.28.
As supplicant, I used rt3572 based Linksys WUSB600Nv2 with rt5572sta.
What are the problems?
======================
1. The initial throughput after login is very bad: 5 kBit/s TX and 5.5
MBit/s RX.
2. Starting of netperf doesn't work most of the time - you have to do a
ping (e.g.) before to start BA session.
3. After some time of working and restarting netperf after BA session
has been closed, the device is completely dead.
None of these problems here described appear with the Linksys
WAP610N / 5GHz or even with rt2800pci / 2.4 GHz. If I use rt2800usb
instead of rt3572sta on the supplicant, the problems got even worse.
Following is an example, how the problems can be seen in messages. But
to be honest - they can't be seen at all :-(. But I tried to clarify
what I described above in a few words as a summary. Lets start with
the loading of the complete module stack:
Mar 17 07:34:07 pci kernel: [10493.014876] cfg80211: Calling CRDA to update
world regulatory domain
Mar 17 07:34:07 pci kernel: [10493.019958] cfg80211: World regulatory domain
updated:
Mar 17 07:34:07 pci kernel: [10493.019961] cfg80211: (start_freq - end_freq @
bandwidth), (max_antenna_gain, max_eirp)
Mar 17 07:34:07 pci kernel: [10493.019963] cfg80211: (2402000 KHz - 2472000
KHz @ 40000 KHz), (300 mBi, 2000 mBm)
Mar 17 07:34:07 pci kernel: [10493.019965] cfg80211: (2457000 KHz - 2482000
KHz @ 20000 KHz), (300 mBi, 2000 mBm)
Mar 17 07:34:07 pci kernel: [10493.019967] cfg80211: (2474000 KHz - 2494000
KHz @ 20000 KHz), (300 mBi, 2000 mBm)
Mar 17 07:34:07 pci kernel: [10493.019969] cfg80211: (5170000 KHz - 5250000
KHz @ 40000 KHz), (300 mBi, 2000 mBm)
Mar 17 07:34:07 pci kernel: [10493.019971] cfg80211: (5735000 KHz - 5835000
KHz @ 40000 KHz), (300 mBi, 2000 mBm)
Mar 17 07:34:07 pci kernel: [10493.019983] cfg80211: Calling CRDA for country:
DE
Mar 17 07:34:07 pci kernel: [10493.023730] rt2800pci 0000:06:07.0: PCI INT A ->
GSI 21 (level, low) -> IRQ 21
Mar 17 07:34:07 pci kernel: [10493.024960] cfg80211: Regulatory domain changed
to country: DE
Mar 17 07:34:07 pci kernel: [10493.024962] cfg80211: (start_freq - end_freq @
bandwidth), (max_antenna_gain, max_eirp)
Mar 17 07:34:07 pci kernel: [10493.024964] cfg80211: (2400000 KHz - 2483500
KHz @ 40000 KHz), (N/A, 2000 mBm)
Mar 17 07:34:07 pci kernel: [10493.024966] cfg80211: (5150000 KHz - 5250000
KHz @ 40000 KHz), (N/A, 2000 mBm)
Mar 17 07:34:07 pci kernel: [10493.024967] cfg80211: (5250000 KHz - 5350000
KHz @ 40000 KHz), (N/A, 2000 mBm)
Mar 17 07:34:07 pci kernel: [10493.024969] cfg80211: (5470000 KHz - 5725000
KHz @ 40000 KHz), (N/A, 2698 mBm)
Mar 17 07:34:07 pci kernel: [10493.032302] phy0 -> rt2x00_set_chip: Info -
Chipset detected - rt: 2860, rf: 0002, rev: 0103.
Mar 17 07:34:07 pci kernel: [10493.035805] ieee80211 phy0: Selected rate
control algorithm 'minstrel_ht'
Mar 17 07:34:07 pci kernel: [10493.036780] Registered led device:
rt2800pci-phy0::radio
Mar 17 07:34:07 pci kernel: [10493.036799] Registered led device:
rt2800pci-phy0::assoc
Mar 17 07:34:07 pci kernel: [10493.036814] Registered led device:
rt2800pci-phy0::quality
Mar 17 07:34:07 pci ifup: wlan0 device: RaLink RT2800 802.11n PCI
Mar 17 07:34:07 pci ifup: No configuration found for wlan0
Mar 17 07:34:09 pci kernel: [10495.059541] device wlan0 entered promiscuous mode
Mar 17 07:34:09 pci kernel: [10495.059568] phy0 -> rt2x00lib_request_firmware:
Info - Loading firmware file 'rt2860.bin'.
Mar 17 07:34:09 pci kernel: [10495.062342] phy0 -> rt2x00lib_request_firmware:
Info - Firmware detected - version: 0.34.
Mar 17 07:34:09 pci kernel: [10495.070754] phy0 -> rt2x00mac_conf_tx: Info -
Configured TX queue 0 - CWmin: 3, CWmax: 4, Aifs: 2, TXop: 102.
Mar 17 07:34:09 pci kernel: [10495.070763] phy0 -> rt2x00mac_conf_tx: Info -
Configured TX queue 1 - CWmin: 4, CWmax: 5, Aifs: 2, TXop: 188.
Mar 17 07:34:09 pci kernel: [10495.070771] phy0 -> rt2x00mac_conf_tx: Info -
Configured TX queue 2 - CWmin: 5, CWmax: 10, Aifs: 3, TXop: 0.
Mar 17 07:34:09 pci kernel: [10495.070779] phy0 -> rt2x00mac_conf_tx: Info -
Configured TX queue 3 - CWmin: 5, CWmax: 10, Aifs: 7, TXop: 0.
Mar 17 07:34:09 pci kernel: [10495.074893] br1: port 3(wlan0) entering
forwarding state
Mar 17 07:34:09 pci kernel: [10495.074896] br1: port 3(wlan0) entering
forwarding state
Mar 17 07:34:14 pci kernel: [10500.331579] phy0 -> rt2x00mac_conf_tx: Info -
Configured TX queue 0 - CWmin: 2, CWmax: 3, Aifs: 1, TXop: 47.
Mar 17 07:34:14 pci kernel: [10500.331622] phy0 -> rt2x00mac_conf_tx: Info -
Configured TX queue 1 - CWmin: 3, CWmax: 4, Aifs: 1, TXop: 94.
Mar 17 07:34:14 pci kernel: [10500.331658] phy0 -> rt2x00mac_conf_tx: Info -
Configured TX queue 2 - CWmin: 4, CWmax: 6, Aifs: 3, TXop: 0.
Mar 17 07:34:14 pci kernel: [10500.331692] phy0 -> rt2x00mac_conf_tx: Info -
Configured TX queue 3 - CWmin: 4, CWmax: 10, Aifs: 7, TXop: 0.
...
[parts of login process]
...
Mar 17 07:34:21 pci hostapd: wlan0: STA 00:25:9c:11:22:33 IEEE 802.1X: Sending
EAP Packet (identifier 200)
Mar 17 07:34:24 pci hostapd: Last message 'wlan0: STA 00:25:9c:' repeated 1
times, supressed by syslog-ng on pci.domain.net
Mar 17 07:34:24 pci kernel: [10509.772098] Open BA session requested for
00:25:9c:11:22:33 tid 0
Mar 17 07:34:24 pci kernel: [10509.781137] activated addBA response timer on
tid 0
Mar 17 07:34:24 pci kernel: [10509.781722] switched off addBA timer for tid 0
Mar 17 07:34:24 pci kernel: [10509.781726] Aggregation is on for tid 0
Mar 17 07:34:29 pci kernel: [10514.912116] tx session timer expired on tid 0
Mar 17 07:34:29 pci kernel: [10514.912157] Tx BA session stop requested for
00:25:9c:11:22:33 tid 0
Mar 17 07:34:29 pci kernel: [10514.921147] Stopping Tx BA session for
00:25:9c:11:22:33 tid 0
Mar 17 07:34:29 pci kernel: [10514.921346] Open BA session requested for
00:25:9c:11:22:33 tid 0
Mar 17 07:34:29 pci kernel: [10514.937046] activated addBA response timer on
tid 0
Mar 17 07:34:29 pci kernel: [10514.937561] switched off addBA timer for tid 0
Mar 17 07:34:29 pci kernel: [10514.937565] Aggregation is on for tid 0
Mar 17 07:34:30 pci hostapd: wlan0: STA 00:25:9c:11:22:33 IEEE 802.1X: Sending
EAP Packet (identifier 200)
Mar 17 07:34:30 pci hostapd: wlan0: STA 00:25:9c:11:22:33 IEEE 802.1X: received
EAP packet (code=2 id=200 len=6) from STA: EAP Response-TLS (13)
Mar 17 07:34:30 pci hostapd: wlan0: STA 00:25:9c:11:22:33 RADIUS: Received
RADIUS packet matched with a pending request, round trip time 0.00 sec
Mar 17 07:34:30 pci hostapd: wlan0: STA 00:25:9c:11:22:33 IEEE 802.1X:
decapsulated EAP packet (code=1 id=201 len=1254) from RADIUS server:
EAP-Request-TLS (13)
Mar 17 07:34:30 pci hostapd: wlan0: STA 00:25:9c:11:22:33 IEEE 802.1X: Sending
EAP Packet (identifier 201)
Mar 17 07:34:30 pci hostapd: wlan0: STA 00:25:9c:11:22:33 IEEE 802.1X: received
EAP packet (code=2 id=201 len=1408) from STA: EAP Response-TLS (13)
Mar 17 07:34:30 pci hostapd: wlan0: STA 00:25:9c:11:22:33 RADIUS: Received
RADIUS packet matched with a pending request, round trip time 0.00 sec
Mar 17 07:34:30 pci hostapd: wlan0: STA 00:25:9c:11:22:33 IEEE 802.1X:
decapsulated EAP packet (code=1 id=202 len=6) from RADIUS server:
EAP-Request-TLS (13)
Mar 17 07:34:30 pci hostapd: wlan0: STA 00:25:9c:11:22:33 IEEE 802.1X: Sending
EAP Packet (identifier 202)
Mar 17 07:34:30 pci hostapd: wlan0: STA 00:25:9c:11:22:33 IEEE 802.1X: received
EAP packet (code=2 id=202 len=1046) from STA: EAP Response-TLS (13)
Mar 17 07:34:30 pci hostapd: wlan0: STA 00:25:9c:11:22:33 RADIUS: Received
RADIUS packet matched with a pending request, round trip time 0.00 sec
Mar 17 07:34:30 pci hostapd: wlan0: STA 00:25:9c:11:22:33 IEEE 802.1X:
decapsulated EAP packet (code=1 id=203 len=69) from RADIUS server:
EAP-Request-TLS (13)
Mar 17 07:34:30 pci hostapd: wlan0: STA 00:25:9c:11:22:33 IEEE 802.1X: Sending
EAP Packet (identifier 203)
Mar 17 07:34:30 pci hostapd: wlan0: STA 00:25:9c:11:22:33 IEEE 802.1X: received
EAP packet (code=2 id=203 len=6) from STA: EAP Response-TLS (13)
Mar 17 07:34:30 pci hostapd: wlan0: STA 00:25:9c:11:22:33 RADIUS: Received
RADIUS packet matched with a pending request, round trip time 0.00 sec
Mar 17 07:34:30 pci hostapd: wlan0: STA 00:25:9c:11:22:33 IEEE 802.1X: old
identity '[email protected]' updated with User-Name from Access-Accept 'supp1'
Mar 17 07:34:30 pci hostapd: wlan0: STA 00:25:9c:11:22:33 IEEE 802.1X:
decapsulated EAP packet (code=3 id=203 len=4) from RADIUS server: EAP Success
Mar 17 07:34:30 pci hostapd: wlan0: STA 00:25:9c:11:22:33 IEEE 802.1X: Sending
EAP Packet (identifier 203)
Mar 17 07:34:30 pci hostapd: wlan0: STA 00:25:9c:11:22:33 WPA: sending 1/4 msg
of 4-Way Handshake
Mar 17 07:34:30 pci hostapd: wlan0: STA 00:25:9c:11:22:33 WPA: received
EAPOL-Key frame (2/4 Pairwise)
Mar 17 07:34:30 pci hostapd: wlan0: STA 00:25:9c:11:22:33 WPA: sending 3/4 msg
of 4-Way Handshake
Mar 17 07:34:30 pci hostapd: wlan0: STA 00:25:9c:11:22:33 WPA: received
EAPOL-Key frame (4/4 Pairwise)
Mar 17 07:34:30 pci hostapd: wlan0: STA 00:25:9c:11:22:33 WPA: pairwise key
handshake completed (RSN)
Mar 17 07:34:30 pci hostapd: wlan0: STA 00:25:9c:11:22:33 IEEE 802.1X:
authorizing port
Mar 17 07:34:30 pci hostapd: wlan0: STA 00:25:9c:11:22:33 RADIUS: starting
accounting session 4F643066-00000000
Mar 17 07:34:30 pci hostapd: wlan0: STA 00:25:9c:11:22:33 IEEE 802.1X:
authenticated - EAP type: 13 (TLS)
Mar 17 07:34:30 pci hostapd: wlan0: STA 00:25:9c:11:22:33 WPA: Added PMKSA
cache entry (IEEE 802.1X)
Mar 17 07:34:30 pci hostapd: wlan0: RADIUS Received 20 bytes from RADIUS server
Mar 17 07:34:30 pci hostapd: wlan0: RADIUS Received RADIUS message
Mar 17 07:34:30 pci hostapd: wlan0: STA 00:25:9c:11:22:33 RADIUS: Received
RADIUS packet matched with a pending request, round trip time 0.00 sec
Mar 17 07:34:31 pci kernel: [10516.755212] Rx A-MPDU request on tid 0 result 0
Mar 17 07:35:16 pci kernel: [10562.000113] tx session timer expired on tid 0
Mar 17 07:35:16 pci kernel: [10562.000143] Tx BA session stop requested for
00:25:9c:11:22:33 tid 0
Mar 17 07:35:16 pci kernel: [10562.009048] Stopping Tx BA session for
00:25:9c:11:22:33 tid 0
netperf started
poor throughput of AP:
TX: 5 kbit/s
RX: 5.5 Mbit/s
netperf stopped
Mar 17 07:36:03 pci kernel: [10608.692299] Tx BA session stop requested for
00:25:9c:11:22:33 tid 0
Mar 17 07:36:03 pci kernel: [10608.701022] Stopping Tx BA session for
00:25:9c:11:22:33 tid 0
ping
waiting for reopen of BA session (if the BA session isn't opened
before netperf is started, netperf won't work (=data stream is 0) -
most of the time)
Mar 17 07:35:29 pci kernel: [10575.346964] Open BA session requested for
00:25:9c:11:22:33 tid 0
Mar 17 07:35:29 pci kernel: [10575.355149] activated addBA response timer on
tid 0
Mar 17 07:35:29 pci kernel: [10575.355638] switched off addBA timer for tid 0
Mar 17 07:35:29 pci kernel: [10575.355643] Aggregation is on for tid 0
ping stopped
netperf started again
TX: 10 Mbit/s
RX: 8.6 Mbit/s
Mar 17 07:35:53 pci kernel: [10599.065017] ieee80211 phy0: release an RX
reorder frame due to timeout on earlier frames
Mar 17 07:35:53 pci kernel: [10599.065021] ieee80211 phy0: release an RX
reorder frame due to timeout on earlier frames
Mar 17 07:35:53 pci kernel: [10599.065024] ieee80211 phy0: release an RX
reorder frame due to timeout on earlier frames
Mar 17 07:35:53 pci kernel: [10599.065026] ieee80211 phy0: release an RX
reorder frame due to timeout on earlier frames
Mar 17 07:35:53 pci kernel: [10599.065028] ieee80211 phy0: release an RX
reorder frame due to timeout on earlier frames
Mar 17 07:35:53 pci kernel: [10599.065030] ieee80211 phy0: release an RX
reorder frame due to timeout on earlier frames
Mar 17 07:35:53 pci kernel: [10599.065032] ieee80211 phy0: release an RX
reorder frame due to timeout on earlier frames
Mar 17 07:36:03 pci kernel: [10608.692299] Tx BA session stop requested for
00:25:9c:11:22:33 tid 0
Mar 17 07:36:03 pci kernel: [10608.701022] Stopping Tx BA session for
00:25:9c:11:22:33 tid 0
Mar 17 07:36:03 pci kernel: [10608.786081] Open BA session requested for
00:25:9c:11:22:33 tid 0
Mar 17 07:36:03 pci kernel: [10608.795804] activated addBA response timer on
tid 0
Mar 17 07:36:03 pci kernel: [10608.831854] switched off addBA timer for tid 0
Mar 17 07:36:03 pci kernel: [10608.831856] Aggregation is on for tid 0
Mar 17 07:36:13 pci kernel: [10619.290983] Tx BA session stop requested for
00:25:9c:11:22:33 tid 0
Mar 17 07:36:13 pci kernel: [10619.299155] Stopping Tx BA session for
00:25:9c:11:22:33 tid 0
Mar 17 07:36:13 pci kernel: [10619.372708] Open BA session requested for
00:25:9c:11:22:33 tid 0
Mar 17 07:36:13 pci kernel: [10619.381117] activated addBA response timer on
tid 0
Mar 17 07:36:13 pci kernel: [10619.387187] switched off addBA timer for tid 0
Mar 17 07:36:13 pci kernel: [10619.387189] Aggregation is on for tid 0
Mar 17 07:36:44 pci kernel: [10649.895062] Tx BA session stop requested for
00:25:9c:11:22:33 tid 0
Mar 17 07:36:44 pci kernel: [10649.908149] Stopping Tx BA session for
00:25:9c:11:22:33 tid 0
Mar 17 07:36:44 pci kernel: [10649.999093] Open BA session requested for
00:25:9c:11:22:33 tid 0
Mar 17 07:36:44 pci kernel: [10650.008033] activated addBA response timer on
tid 0
Mar 17 07:36:44 pci kernel: [10650.015082] switched off addBA timer for tid 0
Mar 17 07:36:44 pci kernel: [10650.015084] Aggregation is on for tid 0
...
netperf stopped
Mar 17 07:42:19 pci kernel: [10985.136041] tx session timer expired on tid 0
Mar 17 07:42:19 pci kernel: [10985.136139] Tx BA session stop requested for
00:25:9c:11:22:33 tid 0
Mar 17 07:42:19 pci kernel: [10985.145156] Stopping Tx BA session for
00:25:9c:11:22:33 tid 0
netperf start
-> no data stream any more, no start of BA session
netperf stop
ping (which works) or waiting for opening BA because of some other
reason
netperf start works again with old throughput.
netperf stopped again
ping
pause (30s - BA session is stopped meanwhile)
netperf start (-> no data stream)
ping (no reply)
-> AP-device is dead. It's impossible to reconnect (Association works,
Authentication times out (from the point of view of the supplicant)).
You hvae to reload the driver to get it working again.
=> (re-)starting of netperf isn't a problem, as long
as the TX BA session isn't stopped (most of the time).
Kind regards,
Andreas
------------------------------
Message: 2
Date: Mon, 19 Mar 2012 08:52:24 +0100
From: Stanislaw Gruszka <[email protected]>
To: Jakub Kicinski <[email protected]>
Cc: [email protected], [email protected]
Subject: Re: [rt2x00-users] [PATCH 3/5] rt2x00: rt2800usb: rework
txstatus code
Message-ID: <[email protected]>
Content-Type: text/plain; charset=us-ascii
On Sat, Mar 17, 2012 at 05:53:11PM +0100, Jakub Kicinski wrote:
> I feel a bit guilty to comment on a patch you have first posted more
> than a week ago and that have already been merged but to jump in with
No problems, it's never too late for code review :-)
> > Make changes on txdone work. Schedule it from
> > rt2800usb_tx_sta_fifo_read_completed() callback when first valid status
> > show up. Check in callback if tx status timeout happens, and schedule
> > work on that condition too. That make possible to remove tx status
> > timeout from generic watchdog. I moved that to rt2800usb.
>
> Does above mean that you want to check for timeouts in
> rt2800usb_tx_sta_fifo_read_completed? You don't seem to be doing so.
Good catch, I'll post fix shortly.
> > + if (rt2800usb_txstatus_pending(rt2x00dev) &&
> > + test_and_set_bit(TX_STATUS_READING, &rt2x00dev->flags))
>
> I would put a bang before that test_and...
I don't understand what you mean, perhaps you could post a patch
or provide code snipset here, so I could comment.
> > + while (!kfifo_is_empty(&rt2x00dev->txstatus_fifo) ||
> > + rt2800usb_txstatus_timeout(rt2x00dev)) {
> >
> > - rt2800usb_txdone_nostatus(rt2x00dev);
> > + rt2800usb_txdone(rt2x00dev);
> >
> > - /*
> > - * The hw may delay sending the packet after DMA complete
> > - * if the medium is busy, thus the TX_STA_FIFO entry is
> > - * also delayed -> use a timer to retrieve it.
> > - */
> > - if (rt2800usb_txstatus_pending(rt2x00dev))
> > - mod_timer(&rt2x00dev->txstatus_timer, jiffies +
> > msecs_to_jiffies(2));
> > + rt2800usb_txdone_nostatus(rt2x00dev);
> > +
> > + /*
> > + * The hw may delay sending the packet after DMA complete
> > + * if the medium is busy, thus the TX_STA_FIFO entry is
> > + * also delayed -> use a timer to retrieve it.
> > + */
> > + if (rt2800usb_txstatus_pending(rt2x00dev))
> > + rt2800usb_async_read_tx_status(rt2x00dev);
>
> How is it possible that this call will ever start the timer? The
> reading "thread" won't exit if rt2800usb_txstatus_pending returns true
> and every dma_done will schedule reading itself.
I do not understand your objection here too. If rt2800usb_txstatus_pending()
will return true and if TX_STATUS_READING bit is not set, we will run hrtimer
to read status after 500 micro seconds. We exit the loop if kfifo is empty
and no entry timed out waiting to get corresponding TX status.
Thanks
Stanislaw
------------------------------
Message: 3
Date: Mon, 19 Mar 2012 09:39:45 +0100
From: Stanislaw Gruszka <[email protected]>
To: "John W. Linville" <[email protected]>
Cc: [email protected], [email protected]
Subject: [rt2x00-users] [PATCH] rt2x00: rt2800usb: schedule txdone
work on timeout
Message-ID: <[email protected]>
This is fix for my current commit
ed61e2b02027935520d1be884fac0b2ffce8379a
"rt2x00: rt2800usb: rework txdone code"
We should schedule txdone work on timeout, otherwise if newer get
tx status from hardware, we will never report tx status to mac80211
and eventually never wakeup tx queue.
Reported-by: Jakub Kicinski <[email protected]>
Signed-off-by: Stanislaw Gruszka <[email protected]>
---
drivers/net/wireless/rt2x00/rt2800usb.c | 8 +++++++-
1 files changed, 7 insertions(+), 1 deletions(-)
diff --git a/drivers/net/wireless/rt2x00/rt2800usb.c
b/drivers/net/wireless/rt2x00/rt2800usb.c
index cd490ab..f97f846 100644
--- a/drivers/net/wireless/rt2x00/rt2800usb.c
+++ b/drivers/net/wireless/rt2x00/rt2800usb.c
@@ -163,7 +163,13 @@ static bool rt2800usb_tx_sta_fifo_read_completed(struct
rt2x00_dev *rt2x00dev,
/* Reschedule urb to read TX status again instantly */
return true;
- } else if (rt2800usb_txstatus_pending(rt2x00dev)) {
+ }
+
+ /* Check if there is any entry that timedout waiting on TX status */
+ if (rt2800usb_txstatus_timeout(rt2x00dev))
+ queue_work(rt2x00dev->workqueue, &rt2x00dev->txdone_work);
+
+ if (rt2800usb_txstatus_pending(rt2x00dev)) {
/* Read register after 250 us */
hrtimer_start(&rt2x00dev->txstatus_timer, ktime_set(0, 250000),
HRTIMER_MODE_REL);
--
1.7.1
------------------------------
Message: 4
Date: Mon, 19 Mar 2012 11:55:57 +0100
From: Stanislaw Gruszka <[email protected]>
To: Michael Fox <[email protected]>
Cc: [email protected]
Subject: Re: [rt2x00-users] So many USB interrupts
Message-ID: <[email protected]>
Content-Type: text/plain; charset=us-ascii
On Fri, Mar 16, 2012 at 02:41:51PM -0700, Michael Fox wrote:
> Following up: I find that turning power management off (iwconfig wlan0 power
> off) reduces the number of interrupts dramatically, to about 70/s.
[snip]
> > I'm using rt2800usb on a 32-bit machine with a USB 1.1 (full-speed, 12Mbps,
> > uhci) port. linux-2.6.33 with a very recent compat-wireless.
> >
> > I have also tested this device for comparison on a 64-bit machine with a
> > USB 2.0 (480Mbps, ehci) port. linux-3.3.
On ehci I have (interrupts/s):
power on: 158.05
power off: 64.92
> > It works well. The only problem is that on the 32-bit-USB-1.1 machine
> > there's a lot of interrupts, about 1000/s when the interface comes up, and
> > up to 3000/s depending on traffic. This bogs down the machine a bit. By
> > comparison, on the 64-bit-USB-2.0 machine, there seems to be about 200
> > interrupts/s. A further comparison is a built in, iwlagn device which runs
> > at about 20 interrupts/s.
I'm not seeing anything obviously wrong here. During power-save we
read/write periodically various PS related registers, as we autowakeup
a few times per seconds to check beacon to see if AP buffered frames
to us.
Perhaps system power consumption (CPU, bus) cost is bigger on PS then
benefit of have radio disabled. Then we have to disable PS by default.
However I don't know how power consumption on the system can be
measured.
Stanislaw
------------------------------
Message: 5
Date: Mon, 19 Mar 2012 12:03:34 +0100
From: Stanislaw Gruszka <[email protected]>
To: Jakub Kicinski <[email protected]>
Cc: [email protected], [email protected]
Subject: Re: [rt2x00-users] [PATCH] rt2x00: increase led's name buffer
length
Message-ID: <[email protected]>
Content-Type: text/plain; charset=us-ascii
On Sun, Mar 18, 2012 at 12:16:52AM +0100, Jakub Kicinski wrote:
> With 9-letter driver names phy's number was truncated
> to two characters, which caused warnings when creating
> sysfs entries for leds on systems with multiple devices.
>
> Signed-off-by: Jakub Kicinski <[email protected]>
> ---
> drivers/net/wireless/rt2x00/rt2x00leds.c | 16 ++++++++--------
> 1 files changed, 8 insertions(+), 8 deletions(-)
>
> diff --git a/drivers/net/wireless/rt2x00/rt2x00leds.c
> b/drivers/net/wireless/rt2x00/rt2x00leds.c
> index ca585e3..8679d78 100644
> --- a/drivers/net/wireless/rt2x00/rt2x00leds.c
> +++ b/drivers/net/wireless/rt2x00/rt2x00leds.c
> @@ -124,17 +124,15 @@ static int rt2x00leds_register_led(struct rt2x00_dev
> *rt2x00dev,
>
> void rt2x00leds_register(struct rt2x00_dev *rt2x00dev)
> {
> - char dev_name[16];
> - char name[32];
> + char name[36];
> int retval;
> unsigned long on_period;
> unsigned long off_period;
> -
> - snprintf(dev_name, sizeof(dev_name), "%s-%s",
> - rt2x00dev->ops->name, wiphy_name(rt2x00dev->hw->wiphy));
> + const char *phy_name = wiphy_name(rt2x00dev->hw->wiphy);
>
> if (rt2x00dev->led_radio.flags & LED_INITIALIZED) {
> - snprintf(name, sizeof(name), "%s::radio", dev_name);
> + snprintf(name, sizeof(name), "%s-%s::radio",
> + rt2x00dev->ops->name, phy_name);
I guess simpler would be just increase dev_name length, but patch looks
correct to me anyway.
Reviewed-by: Stanislaw Gruszka <[email protected]>
------------------------------
_______________________________________________
users mailing list
[email protected]
http://rt2x00.serialmonkey.com/mailman/listinfo/users_rt2x00.serialmonkey.com
End of users Digest, Vol 37, Issue 23
*************************************