rt73usb - test results and questions

Live forum: http://rt2x00.serialmonkey.com/viewtopic.php?t=4776

tharvey

05-05-2008 22:56:59

Here's some results from tests I ran using the following
[listz1922rcv]
rt2x00 version v2.1.5 from compat-wireless-2008-05-05
Kernel linux 2.6.22.6
ARCH i.MX31 (ARM)
[/listuz1922rcv]

Mode
[listz1922rcv]
adhoc - I can pair up with another node. Max bandwidth tested to be about 17.9Mbps
managed - I could not associate with an AP which I could see 'strongly' in a scan (tried w/ and w/o WEP encryption)
[/listuz1922rcv]

Issues
[listz1922rcv]
can't get/set txpower (not even sure the chip allows setting it, although it would appear based on glancing at rt73usb.c). iwconfig always shows 5dBm (clearly wrong) and iwlist always says 'unknown transmit-power information'
can't get/set rate - iwconfig does not display rate and iwlist says 'unknown bit-rate information'
in either adhoc or managed mode, when bringing the interface up I get a 'scheduling while atomic' BUG
[codez1922rcv]
BUG: scheduling while atomic: rt73usb/0x00000001/1921
[<c0025d50>] (dump_stack+0x0/0x14) from [<c0238bc4>] (schedule+0x64/0x678)
[<c0238b60>] (schedule+0x0/0x678) from [<c0239e64>] (schedule_timeout+0x9c/0xd0)
[<c0239dc8>] (schedule_timeout+0x0/0xd0) from [<c0239664>] (wait_for_completion_timeout+0xb8/0x170)
r7:00000032 r6:c773bd24 r5:c773a000 r4:c773bce8
[<c02395ac>] (wait_for_completion_timeout+0x0/0x170) from [<c0180cb4>] (usb_start_wait_urb+0x6c/0x11c)
r7:000001f4 r6:c77501a0 r5:00000000 r4:00000000
[<c0180c48>] (usb_start_wait_urb+0x0/0x11c) from [<c0180f58>] (usb_control_msg+0xd4/0xf8)
r8:00000007 r7:00000004 r6:fffffff4 r5:00003040 r4:c7725b20
[<c0180e84>] (usb_control_msg+0x0/0xf8) from [<bf04d4e8>] (rt2x00usb_vendor_request+0xa4/0x104 [rt2x00usb])
[<bf04d444>] (rt2x00usb_vendor_request+0x0/0x104 [rt2x00usb]) from [<bf04d624>] (rt2x00usb_vendor_req_buff_lock+0xdc/0x114 [rt2x00usb])
[<bf04d548>] (rt2x00usb_vendor_req_buff_lock+0x0/0x114 [rt2x00usb]) from [<bf04d6b0>] (rt2x00usb_vendor_request_buff+0x54/0x6c [rt2x00usb])
[<bf04d65c>] (rt2x00usb_vendor_request_buff+0x0/0x6c [rt2x00usb]) from [<bf0535b4>] (rt73usb_config_erp+0x38/0xd0 [rt73usb])
[<bf05357c>] (rt73usb_config_erp+0x0/0xd0 [rt73usb]) from [<bf0490a4>] (rt2x00lib_config_erp+0x94/0xa0 [rt2x00lib])
[<bf049010>] (rt2x00lib_config_erp+0x0/0xa0 [rt2x00lib]) from [<bf047b4c>] (rt2x00lib_intf_scheduled_iter+0xe4/0xec [rt2x00lib])
r5:c773a000 r4:c773befc
[<bf047a68>] (rt2x00lib_intf_scheduled_iter+0x0/0xec [rt2x00lib]) from [<bf035608>] (ieee80211_iterate_active_interfaces+0x7c/0xc0 [mac80211])
[<bf03558c>] (ieee80211_iterate_active_interfaces+0x0/0xc0 [mac80211]) from [<bf047088>] (rt2x00lib_intf_scheduled+0x20/0x28 [rt2x00lib])
r7:c76514c8 r6:c76653c0 r5:c773a000 r4:c76514cc
[<bf047068>] (rt2x00lib_intf_scheduled+0x0/0x28 [rt2x00lib]) from [<c0052170>] (run_workqueue+0xc8/0x188)
[<c00520a8>] (run_workqueue+0x0/0x188) from [<c0052ce0>] (worker_thread+0xe8/0xfc)
r8:00000000 r7:00000000 r6:c76653c0 r5:c773a000 r4:c773bfb0
[<c0052bf8>] (worker_thread+0x0/0xfc) from [<c0056518>] (kthread+0x5c/0x94)
r6:c0052bf8 r5:c76653c0 r4:c773a000
[<c00564bc>] (kthread+0x0/0x94) from [<c0044000>] (do_exit+0x0/0x8e8)
r6:00000000 r5:00000000 r4:00000000
BUG: scheduling while atomic: rt73usb/0x00000001/1921
[<c0025d50>] (dump_stack+0x0/0x14) from [<c0238bc4>] (schedule+0x64/0x678)
[<c0238b60>] (schedule+0x0/0x678) from [<c0239e64>] (schedule_timeout+0x9c/0xd0)
[<c0239dc8>] (schedule_timeout+0x0/0xd0) from [<c0239664>] (wait_for_completion_timeout+0xb8/0x170)
r7:00000032 r6:c773bd24 r5:c773a000 r4:c773bce8
[<c02395ac>] (wait_for_completion_timeout+0x0/0x170) from [<c0180cb4>] (usb_start_wait_urb+0x6c/0x11c)
r7:000001f4 r6:c77501a0 r5:00000000 r4:00000000
[<c0180c48>] (usb_start_wait_urb+0x0/0x11c) from [<c0180f58>] (usb_control_msg+0xd4/0xf8)
r8:00000006 r7:00000004 r6:fffffff4 r5:00003040 r4:c7725b20
[<c0180e84>] (usb_control_msg+0x0/0xf8) from [<bf04d4e8>] (rt2x00usb_vendor_request+0xa4/0x104 [rt2x00usb])
[<bf04d444>] (rt2x00usb_vendor_request+0x0/0x104 [rt2x00usb]) from [<bf04d608>] (rt2x00usb_vendor_req_buff_lock+0xc0/0x114 [rt2x00usb])
[<bf04d548>] (rt2x00usb_vendor_req_buff_lock+0x0/0x114 [rt2x00usb]) from [<bf04d6b0>] (rt2x00usb_vendor_request_buff+0x54/0x6c [rt2x00usb])
[<bf04d65c>] (rt2x00usb_vendor_request_buff+0x0/0x6c [rt2x00usb]) from [<bf0535f0>] (rt73usb_config_erp+0x74/0xd0 [rt73usb])
[<bf05357c>] (rt73usb_config_erp+0x0/0xd0 [rt73usb]) from [<bf0490a4>] (rt2x00lib_config_erp+0x94/0xa0 [rt2x00lib])
[<bf049010>] (rt2x00lib_config_erp+0x0/0xa0 [rt2x00lib]) from [<bf047b4c>] (rt2x00lib_intf_scheduled_iter+0xe4/0xec [rt2x00lib])
r5:c773a000 r4:c773befc
[<bf047a68>] (rt2x00lib_intf_scheduled_iter+0x0/0xec [rt2x00lib]) from [<bf035608>] (ieee80211_iterate_active_interfaces+0x7c/0xc0 [mac80211])
[<bf03558c>] (ieee80211_iterate_active_interfaces+0x0/0xc0 [mac80211]) from [<bf047088>] (rt2x00lib_intf_scheduled+0x20/0x28 [rt2x00lib])
r7:c76514c8 r6:c76653c0 r5:c773a000 r4:c76514cc
[<bf047068>] (rt2x00lib_intf_scheduled+0x0/0x28 [rt2x00lib]) from [<c0052170>] (run_workqueue+0xc8/0x188)
[<c00520a8>] (run_workqueue+0x0/0x188) from [<c0052ce0>] (worker_thread+0xe8/0xfc)
r8:00000000 r7:00000000 r6:c76653c0 r5:c773a000 r4:c773bfb0
[<c0052bf8>] (worker_thread+0x0/0xfc) from [<c0056518>] (kthread+0x5c/0x94)
r6:c0052bf8 r5:c76653c0 r4:c773a000
[<c00564bc>] (kthread+0x0/0x94) from [<c0044000>] (do_exit+0x0/0x8e8)
r6:00000000 r5:00000000 r4:00000000
BUG: scheduling while atomic: rt73usb/0x00000001/1921
[<c0025d50>] (dump_stack+0x0/0x14) from [<c0238bc4>] (schedule+0x64/0x678)
[<c0238b60>] (schedule+0x0/0x678) from [<c0239e64>] (schedule_timeout+0x9c/0xd0)
[<c0239dc8>] (schedule_timeout+0x0/0xd0) from [<c0239664>] (wait_for_completion_timeout+0xb8/0x170)
r7:00000032 r6:c773bd24 r5:c773a000 r4:c773bce8
[<c02395ac>] (wait_for_completion_timeout+0x0/0x170) from [<c0180cb4>] (usb_start_wait_urb+0x6c/0x11c)
r7:000001f4 r6:c77501a0 r5:00000000 r4:00000000
[<c0180c48>] (usb_start_wait_urb+0x0/0x11c) from [<c0180f58>] (usb_control_msg+0xd4/0xf8)
r8:00000007 r7:00000004 r6:fffffff4 r5:00003050 r4:c7725b20
[<c0180e84>] (usb_control_msg+0x0/0xf8) from [<bf04d4e8>] (rt2x00usb_vendor_request+0xa4/0x104 [rt2x00usb])
[<bf04d444>] (rt2x00usb_vendor_request+0x0/0x104 [rt2x00usb]) from [<bf04d624>] (rt2x00usb_vendor_req_buff_lock+0xdc/0x114 [rt2x00usb])
[<bf04d548>] (rt2x00usb_vendor_req_buff_lock+0x0/0x114 [rt2x00usb]) from [<bf04d6b0>] (rt2x00usb_vendor_request_buff+0x54/0x6c [rt2x00usb])
[<bf04d65c>] (rt2x00usb_vendor_request_buff+0x0/0x6c [rt2x00usb]) from [<bf053608>] (rt73usb_config_erp+0x8c/0xd0 [rt73usb])
[<bf05357c>] (rt73usb_config_erp+0x0/0xd0 [rt73usb]) from [<bf0490a4>] (rt2x00lib_config_erp+0x94/0xa0 [rt2x00lib])
[<bf049010>] (rt2x00lib_config_erp+0x0/0xa0 [rt2x00lib]) from [<bf047b4c>] (rt2x00lib_intf_scheduled_iter+0xe4/0xec [rt2x00lib])
r5:c773a000 r4:c773befc
[<bf047a68>] (rt2x00lib_intf_scheduled_iter+0x0/0xec [rt2x00lib]) from [<bf035608>] (ieee80211_iterate_active_interfaces+0x7c/0xc0 [mac80211])
[<bf03558c>] (ieee80211_iterate_active_interfaces+0x0/0xc0 [mac80211]) from [<bf047088>] (rt2x00lib_intf_scheduled+0x20/0x28 [rt2x00lib])
r7:c76514c8 r6:c76653c0 r5:c773a000 r4:c76514cc
[<bf047068>] (rt2x00lib_intf_scheduled+0x0/0x28 [rt2x00lib]) from [<c0052170>] (run_workqueue+0xc8/0x188)
[<c00520a8>] (run_workqueue+0x0/0x188) from [<c0052ce0>] (worker_thread+0xe8/0xfc)
r8:00000000 r7:00000000 r6:c76653c0 r5:c773a000 r4:c773bfb0
[<c0052bf8>] (worker_thread+0x0/0xfc) from [<c0056518>] (kthread+0x5c/0x94)
r6:c0052bf8 r5:c76653c0 r4:c773a000
[<c00564bc>] (kthread+0x0/0x94) from [<c0044000>] (do_exit+0x0/0x8e8)
r6:00000000 r5:00000000 r4:00000000
BUG: scheduling while atomic: rt73usb/0x00000001/1921
[<c0025d50>] (dump_stack+0x0/0x14) from [<c0238bc4>] (schedule+0x64/0x678)
[<c0238b60>] (schedule+0x0/0x678) from [<c0239e64>] (schedule_timeout+0x9c/0xd0)
[<c0239dc8>] (schedule_timeout+0x0/0xd0) from [<c0239664>] (wait_for_completion_timeout+0xb8/0x170)
r7:00000032 r6:c773bd24 r5:c773a000 r4:c773bce8
[<c02395ac>] (wait_for_completion_timeout+0x0/0x170) from [<c0180cb4>] (usb_start_wait_urb+0x6c/0x11c)
r7:000001f4 r6:c77501a0 r5:00000000 r4:00000000
[<c0180c48>] (usb_start_wait_urb+0x0/0x11c) from [<c0180f58>] (usb_control_msg+0xd4/0xf8)
r8:00000006 r7:00000004 r6:fffffff4 r5:00003050 r4:c7725b20
[<c0180e84>] (usb_control_msg+0x0/0xf8) from [<bf04d4e8>] (rt2x00usb_vendor_request+0xa4/0x104 [rt2x00usb])
[<bf04d444>] (rt2x00usb_vendor_request+0x0/0x104 [rt2x00usb]) from [<bf04d608>] (rt2x00usb_vendor_req_buff_lock+0xc0/0x114 [rt2x00usb])
[<bf04d548>] (rt2x00usb_vendor_req_buff_lock+0x0/0x114 [rt2x00usb]) from [<bf04d6b0>] (rt2x00usb_vendor_request_buff+0x54/0x6c [rt2x00usb])
[<bf04d65c>] (rt2x00usb_vendor_request_buff+0x0/0x6c [rt2x00usb]) from [<bf053640>] (rt73usb_config_erp+0xc4/0xd0 [rt73usb])
[<bf05357c>] (rt73usb_config_erp+0x0/0xd0 [rt73usb]) from [<bf0490a4>] (rt2x00lib_config_erp+0x94/0xa0 [rt2x00lib])
[<bf049010>] (rt2x00lib_config_erp+0x0/0xa0 [rt2x00lib]) from [<bf047b4c>] (rt2x00lib_intf_scheduled_iter+0xe4/0xec [rt2x00lib])
r5:c773a000 r4:c773befc
[<bf047a68>] (rt2x00lib_intf_scheduled_iter+0x0/0xec [rt2x00lib]) from [<bf035608>] (ieee80211_iterate_active_interfaces+0x7c/0xc0 [mac80211])
[<bf03558c>] (ieee80211_iterate_active_interfaces+0x0/0xc0 [mac80211]) from [<bf047088>] (rt2x00lib_intf_scheduled+0x20/0x28 [rt2x00lib])
r7:c76514c8 r6:c76653c0 r5:c773a000 r4:c76514cc
[<bf047068>] (rt2x00lib_intf_scheduled+0x0/0x28 [rt2x00lib]) from [<c0052170>] (run_workqueue+0xc8/0x188)
[<c00520a8>] (run_workqueue+0x0/0x188) from [<c0052ce0>] (worker_thread+0xe8/0xfc)
r8:00000000 r7:00000000 r6:c76653c0 r5:c773a000 r4:c773bfb0
[<c0052bf8>] (worker_thread+0x0/0xfc) from [<c0056518>] (kthread+0x5c/0x94)
r6:c0052bf8 r5:c76653c0 r4:c773a000
[<c00564bc>] (kthread+0x0/0x94) from [<c0044000>] (do_exit+0x0/0x8e8)
r6:00000000 r5:00000000 r4:00000000
[/codez1922rcv]
[/listuz1922rcv]

Questions
[listz1922rcv]
should I be able to get/set rate (I was able to with legacy rt73 driver but it wouldn't allow me to set OFDM rates and my max throughput tested to be 5.5Mbps)
should I be able to get/set txpower?
Any idea's why I can't associate with an AP? I've tried two different AP's with and without WEP encryption
Is the 'scheduling while atomic' a known issue?
[/listuz1922rcv]

Tim

IvD

06-05-2008 10:21:47


should I be able to get/set rate (I was able to with legacy rt73 driver but it wouldn't allow me to set OFDM rates and my max throughput tested to be 5.5Mbps)
[/quote3276m8nj]

Yes you should be able to set the rates. Please note that adhoc specifications don't allow OFDM rates.
I am not sure if mac80211 allows bypassing this rule, but rt73 legacy does by using a iwpriv command.
off course this requires a change at both ends of the network..


should I be able to get/set txpower?
[/quote3276m8nj]

As far as I know yes, but I am not sure how well mac80211 accepts it. As far as rt2x00 is concerned it should be possible, and mac80211 can set the txpower for the driver. I am not sure about the user interface implementation.


Any idea's why I can't associate with an AP? I've tried two different AP's with and without WEP encryption
[/quote3276m8nj]

Without debug information. No idea. perhaps related to the scheduling while atomic problems. Those sort of things can really mess up the driver.


Is the 'scheduling while atomic' a known issue?
[/quote3276m8nj]

Well your the first to report it for rt73usb, but a few days ago I heard the same for rt2500usb.
I have found the cause of the problem, and am working on a fix.

alex-it

06-05-2008 11:42:05

rt73usb v. 2.1.4 works fine in my system

* rt2x00 version 2.1.4 (from "linux-backports-modules-hardy" package)
* kernel 2.6.24-17-generic
* Linux distribution Ubuntu 8.04 "Hardy Heron"

I can change txpower and rates. Connection to AP works regularly, also with WPA. Speed and stability are good.

My two cents ;)

IvD

06-05-2008 17:25:12

Could you try attached patch to see if the scheduling while atomic error has gone?

tharvey

06-05-2008 21:24:15

Could you try attached patch to see if the scheduling while atomic error has gone?[/quotegtrzobh8]

Seemed to fix that particular issue. D

tharvey

06-05-2008 21:29:25

[quoteu7myepxf]Yes you should be able to set the rates. Please note that adhoc specifications don't allow OFDM rates.
I am not sure if mac80211 allows bypassing this rule, but rt73 legacy does by using a iwpriv command.
off course this requires a change at both ends of the network..
[/quoteu7myepxf]

I wasn't aware that adhoc spec didn't allow OFDM - where in the spec specifically is that?

I'm using wirless extensions. Should I be using something else for testing rate/txpower?

Gutmensch

02-06-2008 20:31:12

ok unfortuneatly I had to do some testing too ;-)

I experienced this "Vendor Request" bug first with rt2x00, then I tried rt73, and finally ndiswrapper.

To describe the bug

Everything works fine, wireless connection is established at start-up, nothing wrong so far. But if you're starting to exceed maximum speed (for example loading files via samba), the connection breaks immediately. Error log shows tons of messages like "vendor request blabla, write failed at 0x0.."

I was desperate and finally tested another USB port, which was built-in, the other was an external USB 2.0 pci card - and to my surprise I didn't get this error anymore. So maybe it's some problem concerning special USB hubs? I could donate this card to your project if you're interested, because I don't need it anymore... if so, then please PM address ;-)

scifi

03-06-2008 19:04:05

I don't know if this is related, but I'd like to share my experience too. I was testing the rt73 legacy driver, and I would get a disconnect after 10 or so minutes. The connection could be re-established by unloading and loading back the driver.
After some experiments, I developed a theory. I eliminated USB extension cables between the motherboard and the USB-WiFi stick, and the problem disappeared. So my conclusion was that a USB extension cable could trigger the problem. I observed the problem with the cable that came with my USB stick. Also I observed it with the shorter cable between the motherboard and the USB connectors on the front of the PC case. The problem was gone when I plugged the USB stick into a USB connector on the back of the motherboard (soldered directly into it).
Basically, my theory was that the rt73 legacy driver could not handle USB packet corruptions caused by low-quality cabling and high-speed USB signaling.
I could be completely wrong, of course...