2013-06-11 12:38:25

by Richard Genoud

[permalink] [raw]
Subject: rtl8192cu: slow path warning and connection problem v3.10-rc5

Hi,

I've got an usb wireless adapter TP-Link TL-WN725N
http://www.tp-link.com/ca/products/details/?categoryid=241&model=TL-WN725N
It is based on the rtl8192cu chip.
I'm running a recent kernel (3.10-rc5) on a arm-based board (at91sam9g35-ek).
and last linux-firmwares (2892af0)

The problem I've got it that the device authenticates to the AP
(with a slow path warning), but there's no traffic (I can't get an IP
address from DHCP for example).

Here is the log:
***Insert the TP-Link key
[ 22.710937] usb 1-2.3: new high-speed USB device number 3 using atmel-ehci
[ 22.828125] rtl8192cu: Chip version 0x10
[ 22.921875] rtl8192cu: MAC address: a0:f3:c1:1a:28:5f
[ 22.929687] rtl8192cu: Board Type 0
[ 22.929687] rtlwifi: rx_max_size 15360, rx_urb_num 8, in_ep 1
[ 22.937500] rtl8192cu: Loading firmware rtlwifi/rtl8192cufw.bin
[ 22.953125] ieee80211 phy0: Selected rate control algorithm 'rtl_rc'
[ 22.968750] rtlwifi: wireless switch is on

# ip link set wlan0 up
[ 34.656250] rtl8192cu: MAC auto ON okay!
[ 34.695312] rtl8192cu: Tx queue select: 0x05
# iw dev wlan0 scan
BSS 00:1c:10:69:90:fe (on wlan0)
TSF: 1046528539 usec (0d, 00:17:26)
freq: 2412
beacon interval: 100
capability: ESS ShortSlotTime (0x0401)
signal: -58.00 dBm
last seen: 500 ms ago
Information elements from Probe Response frame:
SSID: test
Supported rates: 1.0* 2.0* 5.5* 11.0* 6.0 9.0 12.0 18.0
DS Parameter set: channel 1
TIM: DTIM Count 1 DTIM Period 2 Bitmap Control 0x0 Bitmap[0] 0x0
ERP: Barker_Preamble_Mode
Extended supported rates: 24.0 36.0 48.0 54.0
# iw wlan0 connect test
[ 51.851562] wlan0: authenticate with 00:1c:10:69:90:fe
[ 51.859375] wlan0: Allocated STA 00:1c:10:69:90:fe
[ 51.867187] wlan0: Inserted STA 00:1c:10:69:90:fe
[ 51.875000] wlan0: direct probe to 00:1c:10:69:90:fe (try 1/3)
# [ 52.078125] wlan0: direct probe to 00:1c:10:69:90:fe (try 2/3)
[ 52.281250] wlan0: direct probe to 00:1c:10:69:90:fe (try 3/3)
[ 52.484375] wlan0: authentication with 00:1c:10:69:90:fe timed out
[ 52.484375] wlan0: Removed STA 00:1c:10:69:90:fe
[ 52.492187] wlan0: Destroyed STA 00:1c:10:69:90:fe

# iw wlan0 connect test
# [ 70.718750] wlan0: authenticate with 00:1c:10:69:90:fe
[ 70.718750] wlan0: Allocated STA 00:1c:10:69:90:fe
[ 70.742187] wlan0: Inserted STA 00:1c:10:69:90:fe
[ 70.742187] wlan0: send auth to 00:1c:10:69:90:fe (try 1/3)
[ 70.757812] wlan0: authenticated
[ 70.757812] wlan0: moving STA 00:1c:10:69:90:fe to state 2
[ 70.765625] rtl8192cu 1-2.3:1.0 wlan0: disabling HT as WMM/QoS is not supported by the AP
[ 70.773437] rtl8192cu 1-2.3:1.0 wlan0: disabling VHT as WMM/QoS is not supported by the AP
[ 70.789062] wlan0: associate with 00:1c:10:69:90:fe (try 1/3)
[ 70.804687] wlan0: RX AssocResp from 00:1c:10:69:90:fe (capab=0x401 status=0 aid=1)
[ 70.812500] wlan0: moving STA 00:1c:10:69:90:fe to state 3
[ 70.820312] wlan0: moving STA 00:1c:10:69:90:fe to state 4
[ 70.828125] wlan0: associated
[ 71.187500] ------------[ cut here ]------------
[ 71.187500] WARNING: at kernel/workqueue.c:1365 __queue_work+0x180/0x1f8()
[ 71.187500] CPU: 0 PID: 593 Comm: kworker/0:2 Not tainted 3.10.0-rc5-00133-g691a986 #6
[ 71.187500] Workqueue: rtl92c_usb rtl_watchdog_wq_callback
[ 71.187500] [<c000d2a0>] (unwind_backtrace+0x0/0xf0) from [<c000ba34>] (show_stack+0x10/0x14)
[ 71.187500] [<c000ba34>] (show_stack+0x10/0x14) from [<c00150fc>] (warn_slowpath_common+0x48/0x64)
[ 71.187500] [<c00150fc>] (warn_slowpath_common+0x48/0x64) from [<c00151e0>] (warn_slowpath_null+0x1c/0x24)
[ 71.187500] [<c00151e0>] (warn_slowpath_null+0x1c/0x24) from [<c0029878>] (__queue_work+0x180/0x1f8)
[ 71.187500] [<c0029878>] (__queue_work+0x180/0x1f8) from [<c0029ee8>] (queue_work_on+0x44/0x50)
[ 71.187500] [<c0029ee8>] (queue_work_on+0x44/0x50) from [<c01fd850>] (rtl_watchdog_wq_callback+0x290/0x4e0)
[ 71.187500] [<c01fd850>] (rtl_watchdog_wq_callback+0x290/0x4e0) from [<c002a138>] (process_one_work+0x110/0x358)
[ 71.187500] [<c002a138>] (process_one_work+0x110/0x358) from [<c002a728>] (worker_thread+0xf4/0x308)
[ 71.187500] [<c002a728>] (worker_thread+0xf4/0x308) from [<c002f8b4>] (kthread+0xa4/0xb0)
[ 71.187500] [<c002f8b4>] (kthread+0xa4/0xb0) from [<c00091b0>] (ret_from_fork+0x14/0x24)
[ 71.187500] ---[ end trace 5f274d456b3a4c7f ]---
iw dev wlan0 link
Connected to 00:1c:10:69:90:fe (on wlan0)
SSID: test
freq: 2412
RX: 8896 bytes (256 packets)
TX: 80 bytes (2 packets)
signal: -48 dBm
tx bitrate: 1.0 MBit/s

bss flags: short-slot-time
dtim period: 0
beacon int: 100
# udhcpc -i wlan0 -f -n -q
udhcpc (v1.21.0) started
Sending discover...
Sending discover...
Sending discover...
No lease, failing
**** inserting another key (an older cisco/linksys WUSG54GC)
# [ 108.875000] usb 1-2.2: new high-speed USB device number 4 using atmel-ehci
[ 109.109375] usb 1-2.2: reset high-speed USB device number 4 using atmel-ehci
[ 109.242187] ieee80211 phy1: rt2x00_set_rt: Info - RT chipset 3070, rev 0201 detected
[ 109.265625] ieee80211 phy1: rt2x00_set_rf: Info - RF chipset 0006 detected
[ 109.273437] ieee80211 phy1: Selected rate control algorithm 'minstrel_ht'

# ip link set wlan1 up
[ 116.234375] ieee80211 phy1: rt2x00lib_request_firmware: Info - Loading firmware file 'rt2870.bin'
[ 116.250000] ieee80211 phy1: rt2x00lib_request_firmware: Info - Firmware detected - version: 0.29
# iw dev wlan1 scan
BSS 00:1c:10:69:90:fe (on wlan1)
TSF: 1144496990 usec (0d, 00:19:04)
freq: 2412
beacon interval: 100
capability: ESS ShortSlotTime (0x0401)
signal: -27.00 dBm
last seen: 1429 ms ago
SSID: test
Supported rates: 1.0* 2.0* 5.5* 11.0* 6.0 9.0 12.0 18.0
DS Parameter set: channel 1
ERP: Barker_Preamble_Mode
Extended supported rates: 24.0 36.0 48.0 54.0
BSS 00:17:9a:84:fb:94 (on wlan1)
TSF: 5965523554325 usec (69d, 01:05:23)
freq: 2437
beacon interval: 100
capability: ESS Privacy ShortPreamble ShortSlotTime (0x0431)
signal: -55.00 dBm
last seen: 960 ms ago
Information elements from Probe Response frame:
SSID: paratronic
Supported rates: 1.0* 2.0* 5.5* 11.0* 6.0 12.0 24.0 36.0
DS Parameter set: channel 6
Country: GB Environment: Indoor/Outdoor
Channels [1 - 13] @ 14 dBm
ERP: <no flags>
Extended supported rates: 9.0 18.0 48.0 54.0
WMM: * Parameter version 1
* BE: CW 15-1023, AIFSN 3
* BK: CW 15-1023, AIFSN 7
* VI: CW 7-15, AIFSN 2, TXOP 3008 usec
* VO: CW 3-7, AIFSN 2, TXOP 1504 usec
# iw wlan1 connect test
[ 135.710937] wlan1: authenticate with 00:1c:10:69:90:fe
[ 135.718750] wlan1: Allocated STA 00:1c:10:69:90:fe
[ 135.726562] wlan1: Inserted STA 00:1c:10:69:90:fe
[ 135.734375] wlan1: send auth to 00:1c:10:69:90:fe (try 1/3)
[ 135.742187] wlan1: authenticated
[ 135.742187] wlan1: moving STA 00:1c:10:69:90:fe to state 2
# [ 135.750000] rt2800usb 1-2.2:1.0 wlan1: disabling HT as WMM/QoS is not supported by the AP
[ 135.757812] rt2800usb 1-2.2:1.0 wlan1: disabling VHT as WMM/QoS is not supported by the AP
[ 135.773437] wlan1: associate with 00:1c:10:69:90:fe (try 1/3)
[ 135.773437] wlan1: RX AssocResp from 00:1c:10:69:90:fe (capab=0x401 status=0 aid=2)
[ 135.789062] wlan1: moving STA 00:1c:10:69:90:fe to state 3
[ 135.796875] wlan1: moving STA 00:1c:10:69:90:fe to state 4
[ 135.812500] wlan1: associated

# udhcpc -i wlan1 -f -n -q
udhcpc (v1.21.0) started
Sending discover...
Sending select for 10.125.0.205...
Lease of 10.125.0.205 obtained, lease time 60
deleting routers
route: SIOCDELRT: No such process
# ping 10.125.0.201
PING 10.125.0.201 (10.125.0.201): 56 data bytes

--- 10.125.0.201 ping statistics ---
3 packets transmitted, 0 packets received, 100% packet loss
# ping 10.125.0.1
PING 10.125.0.1 (10.125.0.1): 56 data bytes
64 bytes from 10.125.0.1: seq=0 ttl=64 time=6.966 ms
64 bytes from 10.125.0.1: seq=1 ttl=64 time=2.677 ms
64 bytes from 10.125.0.1: seq=2 ttl=64 time=2.895 ms

--- 10.125.0.1 ping statistics ---
3 packets transmitted, 3 packets received, 0% packet loss
round-trip min/avg/max = 2.677/4.179/6.966 ms
#

So it works allright with the other key, but not with the tp-link one.

Did I do something wrong ?

Regards,
Richard.


2013-06-27 14:38:24

by Larry Finger

[permalink] [raw]
Subject: Re: rtl8192cu: slow path warning

On 06/27/2013 02:33 AM, Richard Genoud wrote:
>
> Yes, of course, you can add my
> Reported-by: Richard Genoud <[email protected]>
>
> But the patch doesn't compile on my platform ( since I'm on ARM, I
> haven't got a PCI bus, so rtlwifi/pci.c is not compiled ) :
>
> ERROR: "rtl_lps_change_work_callback"
> [drivers/net/wireless/rtlwifi/rtlwifi.ko] undefined!

I was planning on eventually reworking the problem to have only a single
instance of that INIT_WORK() macro, rather than one for PCI and one for USB. The
reason for delaying was that that fix would likely be too invasive for 3.10rc7
or for backporting to stable.

Let me create that patch and I will get you a copy.

Thanks for testing,

Larry



2013-06-27 07:33:42

by Richard Genoud

[permalink] [raw]
Subject: Re: rtl8192cu: slow path warning

2013/6/26 Larry Finger <[email protected]>:
> On 06/26/2013 09:22 AM, Richard GENOUD wrote:
>>
>> Using 3.10-rc7, I'm still seeing the warning, BUT ONLY on the first
>> connection.
>>
>> [ 40.312500] usb 2-2: default language 0x0409
>> [ 40.312500] usb 2-2: udev 2, busnum 2, minor = 129
>> [ 40.320312] usb 2-2: New USB device found, idVendor=0bda,
>> idProduct=8176
>> [ 40.328125] usb 2-2: New USB device strings: Mfr=1, Product=2,
>> SerialNumber=3
>> [ 40.328125] usb 2-2: Product: 802.11n WLAN Adapter
>> [ 40.335937] usb 2-2: Manufacturer: Realtek
>> [ 40.343750] usb 2-2: SerialNumber: 00e04c000001
>> [ 40.343750] usb 2-2: usb_probe_device
>> [ 40.351562] usb 2-2: configuration #1 chosen from 1 choice
>> [ 40.351562] usb 2-2: adding 2-2:1.0 (config #1, interface 0)
>> [ 40.500000] cfg80211: Calling CRDA to update world regulatory domain
>> [ 40.648437] rtl8192cu 2-2:1.0: usb_probe_interface
>> [ 40.656250] rtl8192cu 2-2:1.0: usb_probe_interface - got id
>> [ 40.664062] rtl8192cu: Chip version 0x10
>> [ 40.757812] rtl8192cu: MAC address: a0:f3:c1:1e:02:a0
>> [ 40.765625] rtl8192cu: Board Type 0
>> [ 40.773437] rtlwifi: rx_max_size 15360, rx_urb_num 8, in_ep 1
>> [ 40.773437] rtl8192cu: Loading firmware rtlwifi/rtl8192cufw.bin
>> [ 40.781250] usbcore: registered new interface driver rtl8192cu
>> [ 40.835937] ieee80211 phy0: Selected rate control algorithm 'rtl_rc'
>> [ 40.843750] rtlwifi: wireless switch is on
>> # ip link set wlan0 up
>> [ 59.921875] rtl8192cu: MAC auto ON okay!
>> [ 59.960937] rtl8192cu: Tx queue select: 0x05
>> # iw wlan0 connect test
>> [ 75.390625] wlan0: authenticate with f8:1a:67:1a:df:88
>> [ 75.421875] wlan0: send auth to f8:1a:67:1a:df:88 (try 1/3)
>> [ 75.437500] wlan0: authenticated
>> [ 75.453125] wlan0: associate with f8:1a:67:1a:df:88 (try 1/3)
>> [ 75.460937] wlan0: RX AssocResp from f8:1a:67:1a:df:88 (capab=0x401
>> status=0 aid=2)
>> [ 75.468750] wlan0: associated
>> [ 76.375000] ------------[ cut here ]------------
>> [ 76.375000] WARNING: at kernel/workqueue.c:1365
>> __queue_work+0x168/0x200()
>> [ 76.375000] Modules linked in: rtl8192cu rtl8192c_common rtlwifi
>> mac80211 cfg80211 rfkill ehci_atmel ehci_hcd atmel_usba_udc udc_core
>> ohci_hcd
>> [ 76.375000] CPU: 0 PID: 308 Comm: kworker/0:1 Not tainted 3.10.0-rc7
>> #36
>> [ 76.375000] Workqueue: rtl92c_usb rtl_watchdog_wq_callback [rtlwifi]
>> [ 76.375000] [<c000d9bc>] (unwind_backtrace+0x0/0xf0) from [<c000b9ec>]
>> (show_stack+0x10/0x14)
>> [ 76.375000] [<c000b9ec>] (show_stack+0x10/0x14) from [<c0015c00>]
>> (warn_slowpath_common+0x4c/0x68)
>> [ 76.375000] [<c0015c00>] (warn_slowpath_common+0x4c/0x68) from
>> [<c0015c38>] (warn_slowpath_null+0x1c/0x24)
>> [ 76.375000] [<c0015c38>] (warn_slowpath_null+0x1c/0x24) from
>> [<c0029e40>] (__queue_work+0x168/0x200)
>> [ 76.375000] [<c0029e40>] (__queue_work+0x168/0x200) from [<c0029f2c>]
>> (queue_work_on+0x44/0x50)
>> [ 76.375000] [<c0029f2c>] (queue_work_on+0x44/0x50) from [<bf09bb54>]
>> (rtl_watchdog_wq_callback+0x320/0x404 [rtlwifi])
>> [ 76.375000] [<bf09bb54>] (rtl_watchdog_wq_callback+0x320/0x404
>> [rtlwifi]) from [<c002b168>] (process_one_work+0x10c/0x354)
>> [ 76.375000] [<c002b168>] (process_one_work+0x10c/0x354) from
>> [<c002b784>] (worker_thread+0x130/0x380)
>> [ 76.375000] [<c002b784>] (worker_thread+0x130/0x380) from [<c0030330>]
>> (kthread+0xa4/0xb0)
>> [ 76.375000] [<c0030330>] (kthread+0xa4/0xb0) from [<c00092f0>]
>> (ret_from_fork+0x14/0x24)
>> [ 76.375000] ---[ end trace e116b4b3d671f3d2 ]---
>
>
> The WARNING is the result of a workqueue not being initialized for the USB
> driver.
>
> Please try the attached patch. As you have posted on a public mailing list,
> May I assume that it will be OK to use your address in Reported-by/Tested-by
> lines in the patch submission?
>
> Thanks,
>
> Larry
>
Yes, of course, you can add my
Reported-by: Richard Genoud <[email protected]>

But the patch doesn't compile on my platform ( since I'm on ARM, I
haven't got a PCI bus, so rtlwifi/pci.c is not compiled ) :

ERROR: "rtl_lps_change_work_callback"
[drivers/net/wireless/rtlwifi/rtlwifi.ko] undefined!


Best regards,
Richard.

PS: duckducking the warning, I found this automated report also :
https://retrace.fedoraproject.org/faf/reports/142038/

--
for me, ck means con kolivas and not calvin klein... does it mean I'm a geek ?

2013-06-28 08:58:14

by Richard Genoud

[permalink] [raw]
Subject: Re: rtl8192cu: slow path warning

On [jeu., 27.06.2013 13:20:52], Larry Finger wrote:
> On 06/27/2013 02:33 AM, Richard Genoud wrote:
> >Yes, of course, you can add my
> >Reported-by: Richard Genoud <[email protected]>
> >
> >But the patch doesn't compile on my platform ( since I'm on ARM, I
> >haven't got a PCI bus, so rtlwifi/pci.c is not compiled ) :
> >
> >ERROR: "rtl_lps_change_work_callback"
> >[drivers/net/wireless/rtlwifi/rtlwifi.ko] undefined!
> >
> >
> >Best regards,
> >Richard.
> >
> >PS: duckducking the warning, I found this automated report also :
> >https://retrace.fedoraproject.org/faf/reports/142038/
>
> A revised patch for the warning is attached. The fix relatively
> simple and the only difference between this one and the earlier
> version is that routine rtl_lps_change_work_callback() was moved
> from pci.c to ps.c. As a result, it will be available for ARM and
> other architectures without a PCI bus.
>
> Larry
>
>

> Index: wireless-testing-save/drivers/net/wireless/rtlwifi/pci.c
> ===================================================================
> --- wireless-testing-save.orig/drivers/net/wireless/rtlwifi/pci.c
> +++ wireless-testing-save/drivers/net/wireless/rtlwifi/pci.c
> @@ -1008,19 +1008,6 @@ static void _rtl_pci_prepare_bcn_tasklet
> return;
> }
>
> -static void rtl_lps_change_work_callback(struct work_struct *work)
> -{
> - struct rtl_works *rtlworks =
> - container_of(work, struct rtl_works, lps_change_work);
> - struct ieee80211_hw *hw = rtlworks->hw;
> - struct rtl_priv *rtlpriv = rtl_priv(hw);
> -
> - if (rtlpriv->enter_ps)
> - rtl_lps_enter(hw);
> - else
> - rtl_lps_leave(hw);
> -}
> -
> static void _rtl_pci_init_trx_var(struct ieee80211_hw *hw)
> {
> struct rtl_pci *rtlpci = rtl_pcidev(rtl_pcipriv(hw));
> Index: wireless-testing-save/drivers/net/wireless/rtlwifi/ps.h
> ===================================================================
> --- wireless-testing-save.orig/drivers/net/wireless/rtlwifi/ps.h
> +++ wireless-testing-save/drivers/net/wireless/rtlwifi/ps.h
> @@ -49,5 +49,6 @@ void rtl_swlps_rf_awake(struct ieee80211
> void rtl_swlps_rf_sleep(struct ieee80211_hw *hw);
> void rtl_p2p_ps_cmd(struct ieee80211_hw *hw, u8 p2p_ps_state);
> void rtl_p2p_info(struct ieee80211_hw *hw, void *data, unsigned int len);
> +void rtl_lps_change_work_callback(struct work_struct *work);
>
> #endif
> Index: wireless-testing-save/drivers/net/wireless/rtlwifi/usb.c
> ===================================================================
> --- wireless-testing-save.orig/drivers/net/wireless/rtlwifi/usb.c
> +++ wireless-testing-save/drivers/net/wireless/rtlwifi/usb.c
> @@ -1070,6 +1070,8 @@ int rtl_usb_probe(struct usb_interface *
> spin_lock_init(&rtlpriv->locks.usb_lock);
> INIT_WORK(&rtlpriv->works.fill_h2c_cmd,
> rtl_fill_h2c_cmd_work_callback);
> + INIT_WORK(&rtlpriv->works.lps_change_work,
> + rtl_lps_change_work_callback);
>
> rtlpriv->usb_data_index = 0;
> init_completion(&rtlpriv->firmware_loading_complete);
> Index: wireless-testing-save/drivers/net/wireless/rtlwifi/ps.c
> ===================================================================
> --- wireless-testing-save.orig/drivers/net/wireless/rtlwifi/ps.c
> +++ wireless-testing-save/drivers/net/wireless/rtlwifi/ps.c
> @@ -611,6 +611,18 @@ void rtl_swlps_rf_sleep(struct ieee80211
> MSECS(sleep_intv * mac->vif->bss_conf.beacon_int - 40));
> }
>
> +void rtl_lps_change_work_callback(struct work_struct *work)
> +{
> + struct rtl_works *rtlworks =
> + container_of(work, struct rtl_works, lps_change_work);
> + struct ieee80211_hw *hw = rtlworks->hw;
> + struct rtl_priv *rtlpriv = rtl_priv(hw);
> +
> + if (rtlpriv->enter_ps)
> + rtl_lps_enter(hw);
> + else
> + rtl_lps_leave(hw);
> +}
>
> void rtl_swlps_wq_callback(void *data)
> {

Tested the patch on 3.10-rc7, ARM at91sam9g35, usb key TP-link
TL-WN725N.
I haven't seen the WARNING any more.
Tests done: (DHCP request)
client with no security
client WEP
client WPA
AP with no security
AP WEP
AP+WAP test failed (bust it was like that before the patch also)

Tested-by: Richard Genoud <[email protected]>


2013-06-28 14:16:56

by Larry Finger

[permalink] [raw]
Subject: Re: rtl8192cu: slow path warning

On 06/28/2013 08:53 AM, Maxime Ripard wrote:
> Hi Larry,
>
> On Thu, Jun 27, 2013 at 01:20:52PM -0500, Larry Finger wrote:
>> A revised patch for the warning is attached. The fix relatively
>> simple and the only difference between this one and the earlier
>> version is that routine rtl_lps_change_work_callback() was moved
>> from pci.c to ps.c. As a result, it will be available for ARM and
>> other architectures without a PCI bus.
>
> I just tested it on top of 3.10-rc7 with an imx28, and it works fine.
>
> You can add my
> Tested-by: Maxime Ripard <[email protected]>

Sorry, I pushed the patch before I read this message, and I missed a Tested-by
for you. I will wait for any feedback on the patch, and then send a V2.

Thanks for testing.

Larry



2013-06-28 13:53:17

by [email protected]

[permalink] [raw]
Subject: Re: rtl8192cu: slow path warning

Hi Larry,

On Thu, Jun 27, 2013 at 01:20:52PM -0500, Larry Finger wrote:
> A revised patch for the warning is attached. The fix relatively
> simple and the only difference between this one and the earlier
> version is that routine rtl_lps_change_work_callback() was moved
> from pci.c to ps.c. As a result, it will be available for ARM and
> other architectures without a PCI bus.

I just tested it on top of 3.10-rc7 with an imx28, and it works fine.

You can add my
Tested-by: Maxime Ripard <[email protected]>

Thanks!
Maxime

--
Maxime Ripard, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com


Attachments:
(No filename) (652.00 B)
signature.asc (836.00 B)
Digital signature
Download all attachments

2013-06-26 14:22:55

by Richard Genoud

[permalink] [raw]
Subject: rtl8192cu: slow path warning

On [mar., 11.06.2013 14:38:15], Richard GENOUD wrote:
> Hi,
>
> I've got an usb wireless adapter TP-Link TL-WN725N
> http://www.tp-link.com/ca/products/details/?categoryid=241&model=TL-WN725N
> It is based on the rtl8192cu chip.
> I'm running a recent kernel (3.10-rc5) on a arm-based board (at91sam9g35-ek).
> and last linux-firmwares (2892af0)
>
> Here is the log:
> ***Insert the TP-Link key
> [ 22.710937] usb 1-2.3: new high-speed USB device number 3 using atmel-ehci
> [ 22.828125] rtl8192cu: Chip version 0x10
> [ 22.921875] rtl8192cu: MAC address: a0:f3:c1:1a:28:5f
> [ 22.929687] rtl8192cu: Board Type 0
> [ 22.929687] rtlwifi: rx_max_size 15360, rx_urb_num 8, in_ep 1
> [ 22.937500] rtl8192cu: Loading firmware rtlwifi/rtl8192cufw.bin
> [ 22.953125] ieee80211 phy0: Selected rate control algorithm 'rtl_rc'
> [ 22.968750] rtlwifi: wireless switch is on
>
> # ip link set wlan0 up
> [ 34.656250] rtl8192cu: MAC auto ON okay!
> [ 34.695312] rtl8192cu: Tx queue select: 0x05
> # iw dev wlan0 scan
> BSS 00:1c:10:69:90:fe (on wlan0)
> TSF: 1046528539 usec (0d, 00:17:26)
> freq: 2412
> beacon interval: 100
> capability: ESS ShortSlotTime (0x0401)
> signal: -58.00 dBm
> last seen: 500 ms ago
> Information elements from Probe Response frame:
> SSID: test
> Supported rates: 1.0* 2.0* 5.5* 11.0* 6.0 9.0 12.0 18.0
> DS Parameter set: channel 1
> TIM: DTIM Count 1 DTIM Period 2 Bitmap Control 0x0 Bitmap[0] 0x0
> ERP: Barker_Preamble_Mode
> Extended supported rates: 24.0 36.0 48.0 54.0
> # iw wlan0 connect test
> [ 51.851562] wlan0: authenticate with 00:1c:10:69:90:fe
> [ 51.859375] wlan0: Allocated STA 00:1c:10:69:90:fe
> [ 51.867187] wlan0: Inserted STA 00:1c:10:69:90:fe
> [ 51.875000] wlan0: direct probe to 00:1c:10:69:90:fe (try 1/3)
> # [ 52.078125] wlan0: direct probe to 00:1c:10:69:90:fe (try 2/3)
> [ 52.281250] wlan0: direct probe to 00:1c:10:69:90:fe (try 3/3)
> [ 52.484375] wlan0: authentication with 00:1c:10:69:90:fe timed out
> [ 52.484375] wlan0: Removed STA 00:1c:10:69:90:fe
> [ 52.492187] wlan0: Destroyed STA 00:1c:10:69:90:fe
>
> # iw wlan0 connect test
> # [ 70.718750] wlan0: authenticate with 00:1c:10:69:90:fe
> [ 70.718750] wlan0: Allocated STA 00:1c:10:69:90:fe
> [ 70.742187] wlan0: Inserted STA 00:1c:10:69:90:fe
> [ 70.742187] wlan0: send auth to 00:1c:10:69:90:fe (try 1/3)
> [ 70.757812] wlan0: authenticated
> [ 70.757812] wlan0: moving STA 00:1c:10:69:90:fe to state 2
> [ 70.765625] rtl8192cu 1-2.3:1.0 wlan0: disabling HT as WMM/QoS is not supported by the AP
> [ 70.773437] rtl8192cu 1-2.3:1.0 wlan0: disabling VHT as WMM/QoS is not supported by the AP
> [ 70.789062] wlan0: associate with 00:1c:10:69:90:fe (try 1/3)
> [ 70.804687] wlan0: RX AssocResp from 00:1c:10:69:90:fe (capab=0x401 status=0 aid=1)
> [ 70.812500] wlan0: moving STA 00:1c:10:69:90:fe to state 3
> [ 70.820312] wlan0: moving STA 00:1c:10:69:90:fe to state 4
> [ 70.828125] wlan0: associated
> [ 71.187500] ------------[ cut here ]------------
> [ 71.187500] WARNING: at kernel/workqueue.c:1365 __queue_work+0x180/0x1f8()
> [ 71.187500] CPU: 0 PID: 593 Comm: kworker/0:2 Not tainted 3.10.0-rc5-00133-g691a986 #6
> [ 71.187500] Workqueue: rtl92c_usb rtl_watchdog_wq_callback
> [ 71.187500] [<c000d2a0>] (unwind_backtrace+0x0/0xf0) from [<c000ba34>] (show_stack+0x10/0x14)
> [ 71.187500] [<c000ba34>] (show_stack+0x10/0x14) from [<c00150fc>] (warn_slowpath_common+0x48/0x64)
> [ 71.187500] [<c00150fc>] (warn_slowpath_common+0x48/0x64) from [<c00151e0>] (warn_slowpath_null+0x1c/0x24)
> [ 71.187500] [<c00151e0>] (warn_slowpath_null+0x1c/0x24) from [<c0029878>] (__queue_work+0x180/0x1f8)
> [ 71.187500] [<c0029878>] (__queue_work+0x180/0x1f8) from [<c0029ee8>] (queue_work_on+0x44/0x50)
> [ 71.187500] [<c0029ee8>] (queue_work_on+0x44/0x50) from [<c01fd850>] (rtl_watchdog_wq_callback+0x290/0x4e0)
> [ 71.187500] [<c01fd850>] (rtl_watchdog_wq_callback+0x290/0x4e0) from [<c002a138>] (process_one_work+0x110/0x358)
> [ 71.187500] [<c002a138>] (process_one_work+0x110/0x358) from [<c002a728>] (worker_thread+0xf4/0x308)
> [ 71.187500] [<c002a728>] (worker_thread+0xf4/0x308) from [<c002f8b4>] (kthread+0xa4/0xb0)
> [ 71.187500] [<c002f8b4>] (kthread+0xa4/0xb0) from [<c00091b0>] (ret_from_fork+0x14/0x24)
> [ 71.187500] ---[ end trace 5f274d456b3a4c7f ]---
Hi,

Using 3.10-rc7, I'm still seeing the warning, BUT ONLY on the first
connection.

[ 40.312500] usb 2-2: default language 0x0409
[ 40.312500] usb 2-2: udev 2, busnum 2, minor = 129
[ 40.320312] usb 2-2: New USB device found, idVendor=0bda, idProduct=8176
[ 40.328125] usb 2-2: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[ 40.328125] usb 2-2: Product: 802.11n WLAN Adapter
[ 40.335937] usb 2-2: Manufacturer: Realtek
[ 40.343750] usb 2-2: SerialNumber: 00e04c000001
[ 40.343750] usb 2-2: usb_probe_device
[ 40.351562] usb 2-2: configuration #1 chosen from 1 choice
[ 40.351562] usb 2-2: adding 2-2:1.0 (config #1, interface 0)
[ 40.500000] cfg80211: Calling CRDA to update world regulatory domain
[ 40.648437] rtl8192cu 2-2:1.0: usb_probe_interface
[ 40.656250] rtl8192cu 2-2:1.0: usb_probe_interface - got id
[ 40.664062] rtl8192cu: Chip version 0x10
[ 40.757812] rtl8192cu: MAC address: a0:f3:c1:1e:02:a0
[ 40.765625] rtl8192cu: Board Type 0
[ 40.773437] rtlwifi: rx_max_size 15360, rx_urb_num 8, in_ep 1
[ 40.773437] rtl8192cu: Loading firmware rtlwifi/rtl8192cufw.bin
[ 40.781250] usbcore: registered new interface driver rtl8192cu
[ 40.835937] ieee80211 phy0: Selected rate control algorithm 'rtl_rc'
[ 40.843750] rtlwifi: wireless switch is on
# ip link set wlan0 up
[ 59.921875] rtl8192cu: MAC auto ON okay!
[ 59.960937] rtl8192cu: Tx queue select: 0x05
# iw wlan0 connect test
[ 75.390625] wlan0: authenticate with f8:1a:67:1a:df:88
[ 75.421875] wlan0: send auth to f8:1a:67:1a:df:88 (try 1/3)
[ 75.437500] wlan0: authenticated
[ 75.453125] wlan0: associate with f8:1a:67:1a:df:88 (try 1/3)
[ 75.460937] wlan0: RX AssocResp from f8:1a:67:1a:df:88 (capab=0x401 status=0 aid=2)
[ 75.468750] wlan0: associated
[ 76.375000] ------------[ cut here ]------------
[ 76.375000] WARNING: at kernel/workqueue.c:1365 __queue_work+0x168/0x200()
[ 76.375000] Modules linked in: rtl8192cu rtl8192c_common rtlwifi mac80211 cfg80211 rfkill ehci_atmel ehci_hcd atmel_usba_udc udc_core ohci_hcd
[ 76.375000] CPU: 0 PID: 308 Comm: kworker/0:1 Not tainted 3.10.0-rc7 #36
[ 76.375000] Workqueue: rtl92c_usb rtl_watchdog_wq_callback [rtlwifi]
[ 76.375000] [<c000d9bc>] (unwind_backtrace+0x0/0xf0) from [<c000b9ec>] (show_stack+0x10/0x14)
[ 76.375000] [<c000b9ec>] (show_stack+0x10/0x14) from [<c0015c00>] (warn_slowpath_common+0x4c/0x68)
[ 76.375000] [<c0015c00>] (warn_slowpath_common+0x4c/0x68) from [<c0015c38>] (warn_slowpath_null+0x1c/0x24)
[ 76.375000] [<c0015c38>] (warn_slowpath_null+0x1c/0x24) from [<c0029e40>] (__queue_work+0x168/0x200)
[ 76.375000] [<c0029e40>] (__queue_work+0x168/0x200) from [<c0029f2c>] (queue_work_on+0x44/0x50)
[ 76.375000] [<c0029f2c>] (queue_work_on+0x44/0x50) from [<bf09bb54>] (rtl_watchdog_wq_callback+0x320/0x404 [rtlwifi])
[ 76.375000] [<bf09bb54>] (rtl_watchdog_wq_callback+0x320/0x404 [rtlwifi]) from [<c002b168>] (process_one_work+0x10c/0x354)
[ 76.375000] [<c002b168>] (process_one_work+0x10c/0x354) from [<c002b784>] (worker_thread+0x130/0x380)
[ 76.375000] [<c002b784>] (worker_thread+0x130/0x380) from [<c0030330>] (kthread+0xa4/0xb0)
[ 76.375000] [<c0030330>] (kthread+0xa4/0xb0) from [<c00092f0>] (ret_from_fork+0x14/0x24)
[ 76.375000] ---[ end trace e116b4b3d671f3d2 ]---

# iw wlan0 disconnect
[ 86.289062] wlan0: deauthenticating from f8:1a:67:1a:df:88 by local choice (reason=3)
[ 86.312500] cfg80211: Calling CRDA to update world regulatory domain
# iw wlan0 connect test
[ 91.671875] wlan0: authenticate with f8:1a:67:1a:df:88
[ 91.687500] wlan0: send auth to f8:1a:67:1a:df:88 (try 1/3)
[ 91.695312] wlan0: authenticated
[ 91.710937] wlan0: associate with f8:1a:67:1a:df:88 (try 1/3)
[ 91.718750] wlan0: RX AssocResp from f8:1a:67:1a:df:88 (capab=0x401 status=0 aid=1)
[ 91.726562] wlan0: associated

# iw wlan0 disconnect
[ 98.929687] wlan0: deauthenticating from f8:1a:67:1a:df:88 by local choice (reason=3)
[ 98.953125] cfg80211: Calling CRDA to update world regulatory domain
# iw wlan0 connect test
[ 101.554687] wlan0: authenticate with f8:1a:67:1a:df:88
[ 101.578125] wlan0: send auth to f8:1a:67:1a:df:88 (try 1/3)
[ 101.585937] wlan0: authenticated
[ 101.593750] wlan0: associate with f8:1a:67:1a:df:88 (try 1/3)
[ 101.625000] wlan0: RX AssocResp from f8:1a:67:1a:df:88 (capab=0x401 status=0 aid=1)
[ 101.632812] wlan0: associated
[ 114.523437] wlan0: Connection to AP f8:1a:67:1a:df:88 lost
[ 114.546875] cfg80211: Calling CRDA to update world regulatory domain


Best regards,
Richard.

2013-06-27 18:20:54

by Larry Finger

[permalink] [raw]
Subject: Re: rtl8192cu: slow path warning

On 06/27/2013 02:33 AM, Richard Genoud wrote:
> Yes, of course, you can add my
> Reported-by: Richard Genoud <[email protected]>
>
> But the patch doesn't compile on my platform ( since I'm on ARM, I
> haven't got a PCI bus, so rtlwifi/pci.c is not compiled ) :
>
> ERROR: "rtl_lps_change_work_callback"
> [drivers/net/wireless/rtlwifi/rtlwifi.ko] undefined!
>
>
> Best regards,
> Richard.
>
> PS: duckducking the warning, I found this automated report also :
> https://retrace.fedoraproject.org/faf/reports/142038/

A revised patch for the warning is attached. The fix relatively simple and the
only difference between this one and the earlier version is that routine
rtl_lps_change_work_callback() was moved from pci.c to ps.c. As a result, it
will be available for ARM and other architectures without a PCI bus.

Larry



Attachments:
rtl8192cu_init_work (2.67 kB)

2013-06-11 13:42:41

by Richard Genoud

[permalink] [raw]
Subject: Re: rtl8192cu: slow path warning and connection problem v3.10-rc5

2013/6/11 Richard GENOUD <[email protected]>:
> Hi,
>
> I've got an usb wireless adapter TP-Link TL-WN725N
> http://www.tp-link.com/ca/products/details/?categoryid=241&model=TL-WN725N
> It is based on the rtl8192cu chip.
> I'm running a recent kernel (3.10-rc5) on a arm-based board (at91sam9g35-ek).
> and last linux-firmwares (2892af0)
> # iw wlan0 connect test
> # [ 70.718750] wlan0: authenticate with 00:1c:10:69:90:fe
> [ 70.718750] wlan0: Allocated STA 00:1c:10:69:90:fe
> [ 70.742187] wlan0: Inserted STA 00:1c:10:69:90:fe
> [ 70.742187] wlan0: send auth to 00:1c:10:69:90:fe (try 1/3)
> [ 70.757812] wlan0: authenticated
> [ 70.757812] wlan0: moving STA 00:1c:10:69:90:fe to state 2
> [ 70.765625] rtl8192cu 1-2.3:1.0 wlan0: disabling HT as WMM/QoS is not supported by the AP
> [ 70.773437] rtl8192cu 1-2.3:1.0 wlan0: disabling VHT as WMM/QoS is not supported by the AP
> [ 70.789062] wlan0: associate with 00:1c:10:69:90:fe (try 1/3)
> [ 70.804687] wlan0: RX AssocResp from 00:1c:10:69:90:fe (capab=0x401 status=0 aid=1)
> [ 70.812500] wlan0: moving STA 00:1c:10:69:90:fe to state 3
> [ 70.820312] wlan0: moving STA 00:1c:10:69:90:fe to state 4
> [ 70.828125] wlan0: associated
> [ 71.187500] ------------[ cut here ]------------
> [ 71.187500] WARNING: at kernel/workqueue.c:1365 __queue_work+0x180/0x1f8()
> [ 71.187500] CPU: 0 PID: 593 Comm: kworker/0:2 Not tainted 3.10.0-rc5-00133-g691a986 #6
> [ 71.187500] Workqueue: rtl92c_usb rtl_watchdog_wq_callback
> [ 71.187500] [<c000d2a0>] (unwind_backtrace+0x0/0xf0) from [<c000ba34>] (show_stack+0x10/0x14)
> [ 71.187500] [<c000ba34>] (show_stack+0x10/0x14) from [<c00150fc>] (warn_slowpath_common+0x48/0x64)
> [ 71.187500] [<c00150fc>] (warn_slowpath_common+0x48/0x64) from [<c00151e0>] (warn_slowpath_null+0x1c/0x24)
> [ 71.187500] [<c00151e0>] (warn_slowpath_null+0x1c/0x24) from [<c0029878>] (__queue_work+0x180/0x1f8)
> [ 71.187500] [<c0029878>] (__queue_work+0x180/0x1f8) from [<c0029ee8>] (queue_work_on+0x44/0x50)
> [ 71.187500] [<c0029ee8>] (queue_work_on+0x44/0x50) from [<c01fd850>] (rtl_watchdog_wq_callback+0x290/0x4e0)
> [ 71.187500] [<c01fd850>] (rtl_watchdog_wq_callback+0x290/0x4e0) from [<c002a138>] (process_one_work+0x110/0x358)
> [ 71.187500] [<c002a138>] (process_one_work+0x110/0x358) from [<c002a728>] (worker_thread+0xf4/0x308)
> [ 71.187500] [<c002a728>] (worker_thread+0xf4/0x308) from [<c002f8b4>] (kthread+0xa4/0xb0)
> [ 71.187500] [<c002f8b4>] (kthread+0xa4/0xb0) from [<c00091b0>] (ret_from_fork+0x14/0x24)
> [ 71.187500] ---[ end trace 5f274d456b3a4c7f ]---

I've should have check this before, but the connection problem is
corrected with the patch "rtlwifi: rtl8192cu: Fix problem in
connecting to WEP or WPA(1) networks"
Sorry for that...

Anyway, running 3.10-rc5 with the for-davem wireless branch, I still
have the slow path warning


# iw wlan0 connect test
# [ 42.226562] wlan0: authenticate with 00:1c:10:69:90:fe
[ 42.226562] wlan0: Allocated STA 00:1c:10:69:90:fe
[ 42.250000] wlan0: Inserted STA 00:1c:10:69:90:fe
[ 42.250000] wlan0: send auth to 00:1c:10:69:90:fe (try 1/3)
[ 42.281250] wlan0: authenticated
[ 42.289062] wlan0: moving STA 00:1c:10:69:90:fe to state 2
[ 42.296875] rtl8192cu 1-2.3:1.0 wlan0: disabling HT as WMM/QoS is
not supported by the AP
[ 42.304687] rtl8192cu 1-2.3:1.0 wlan0: disabling VHT as WMM/QoS is
not supported by the AP
[ 42.312500] wlan0: associate with 00:1c:10:69:90:fe (try 1/3)
[ 42.335937] wlan0: RX AssocResp from 00:1c:10:69:90:fe (capab=0x401
status=0 aid=1)
[ 42.343750] wlan0: moving STA 00:1c:10:69:90:fe to state 3
[ 42.343750] wlan0: moving STA 00:1c:10:69:90:fe to state 4
[ 42.351562] wlan0: associated

[ 44.179687] ------------[ cut here ]------------
[ 44.179687] WARNING: at kernel/workqueue.c:1365 __queue_work+0x180/0x1f8()
[ 44.179687] CPU: 0 PID: 580 Comm: kworker/0:2 Not tainted
3.10.0-rc5-00150-g4b16b55 #10
[ 44.179687] Workqueue: rtl92c_usb rtl_watchdog_wq_callback
[ 44.179687] [<c000d2a0>] (unwind_backtrace+0x0/0xf0) from
[<c000ba34>] (show_stack+0x10/0x14)
[ 44.179687] [<c000ba34>] (show_stack+0x10/0x14) from [<c00150fc>]
(warn_slowpath_common+0x48/0x64)
[ 44.179687] [<c00150fc>] (warn_slowpath_common+0x48/0x64) from
[<c00151e0>] (warn_slowpath_null+0x1c/0x24)
[ 44.179687] [<c00151e0>] (warn_slowpath_null+0x1c/0x24) from
[<c0029878>] (__queue_work+0x180/0x1f8)
[ 44.179687] [<c0029878>] (__queue_work+0x180/0x1f8) from
[<c0029ee8>] (queue_work_on+0x44/0x50)
[ 44.179687] [<c0029ee8>] (queue_work_on+0x44/0x50) from
[<c01fd850>] (rtl_watchdog_wq_callback+0x290/0x4e0)
[ 44.179687] [<c01fd850>] (rtl_watchdog_wq_callback+0x290/0x4e0)
from [<c002a138>] (process_one_work+0x110/0x358)
[ 44.179687] [<c002a138>] (process_one_work+0x110/0x358) from
[<c002a728>] (worker_thread+0xf4/0x308)
[ 44.179687] [<c002a728>] (worker_thread+0xf4/0x308) from
[<c002f8b4>] (kthread+0xa4/0xb0)
[ 44.179687] [<c002f8b4>] (kthread+0xa4/0xb0) from [<c00091b0>]
(ret_from_fork+0x14/0x24)
[ 44.179687] ---[ end trace d23aec3c204a06ee ]---

regards,
Richard.

2013-06-26 15:54:07

by Larry Finger

[permalink] [raw]
Subject: Re: rtl8192cu: slow path warning

On 06/26/2013 09:22 AM, Richard GENOUD wrote:
> Using 3.10-rc7, I'm still seeing the warning, BUT ONLY on the first
> connection.
>
> [ 40.312500] usb 2-2: default language 0x0409
> [ 40.312500] usb 2-2: udev 2, busnum 2, minor = 129
> [ 40.320312] usb 2-2: New USB device found, idVendor=0bda, idProduct=8176
> [ 40.328125] usb 2-2: New USB device strings: Mfr=1, Product=2, SerialNumber=3
> [ 40.328125] usb 2-2: Product: 802.11n WLAN Adapter
> [ 40.335937] usb 2-2: Manufacturer: Realtek
> [ 40.343750] usb 2-2: SerialNumber: 00e04c000001
> [ 40.343750] usb 2-2: usb_probe_device
> [ 40.351562] usb 2-2: configuration #1 chosen from 1 choice
> [ 40.351562] usb 2-2: adding 2-2:1.0 (config #1, interface 0)
> [ 40.500000] cfg80211: Calling CRDA to update world regulatory domain
> [ 40.648437] rtl8192cu 2-2:1.0: usb_probe_interface
> [ 40.656250] rtl8192cu 2-2:1.0: usb_probe_interface - got id
> [ 40.664062] rtl8192cu: Chip version 0x10
> [ 40.757812] rtl8192cu: MAC address: a0:f3:c1:1e:02:a0
> [ 40.765625] rtl8192cu: Board Type 0
> [ 40.773437] rtlwifi: rx_max_size 15360, rx_urb_num 8, in_ep 1
> [ 40.773437] rtl8192cu: Loading firmware rtlwifi/rtl8192cufw.bin
> [ 40.781250] usbcore: registered new interface driver rtl8192cu
> [ 40.835937] ieee80211 phy0: Selected rate control algorithm 'rtl_rc'
> [ 40.843750] rtlwifi: wireless switch is on
> # ip link set wlan0 up
> [ 59.921875] rtl8192cu: MAC auto ON okay!
> [ 59.960937] rtl8192cu: Tx queue select: 0x05
> # iw wlan0 connect test
> [ 75.390625] wlan0: authenticate with f8:1a:67:1a:df:88
> [ 75.421875] wlan0: send auth to f8:1a:67:1a:df:88 (try 1/3)
> [ 75.437500] wlan0: authenticated
> [ 75.453125] wlan0: associate with f8:1a:67:1a:df:88 (try 1/3)
> [ 75.460937] wlan0: RX AssocResp from f8:1a:67:1a:df:88 (capab=0x401 status=0 aid=2)
> [ 75.468750] wlan0: associated
> [ 76.375000] ------------[ cut here ]------------
> [ 76.375000] WARNING: at kernel/workqueue.c:1365 __queue_work+0x168/0x200()
> [ 76.375000] Modules linked in: rtl8192cu rtl8192c_common rtlwifi mac80211 cfg80211 rfkill ehci_atmel ehci_hcd atmel_usba_udc udc_core ohci_hcd
> [ 76.375000] CPU: 0 PID: 308 Comm: kworker/0:1 Not tainted 3.10.0-rc7 #36
> [ 76.375000] Workqueue: rtl92c_usb rtl_watchdog_wq_callback [rtlwifi]
> [ 76.375000] [<c000d9bc>] (unwind_backtrace+0x0/0xf0) from [<c000b9ec>] (show_stack+0x10/0x14)
> [ 76.375000] [<c000b9ec>] (show_stack+0x10/0x14) from [<c0015c00>] (warn_slowpath_common+0x4c/0x68)
> [ 76.375000] [<c0015c00>] (warn_slowpath_common+0x4c/0x68) from [<c0015c38>] (warn_slowpath_null+0x1c/0x24)
> [ 76.375000] [<c0015c38>] (warn_slowpath_null+0x1c/0x24) from [<c0029e40>] (__queue_work+0x168/0x200)
> [ 76.375000] [<c0029e40>] (__queue_work+0x168/0x200) from [<c0029f2c>] (queue_work_on+0x44/0x50)
> [ 76.375000] [<c0029f2c>] (queue_work_on+0x44/0x50) from [<bf09bb54>] (rtl_watchdog_wq_callback+0x320/0x404 [rtlwifi])
> [ 76.375000] [<bf09bb54>] (rtl_watchdog_wq_callback+0x320/0x404 [rtlwifi]) from [<c002b168>] (process_one_work+0x10c/0x354)
> [ 76.375000] [<c002b168>] (process_one_work+0x10c/0x354) from [<c002b784>] (worker_thread+0x130/0x380)
> [ 76.375000] [<c002b784>] (worker_thread+0x130/0x380) from [<c0030330>] (kthread+0xa4/0xb0)
> [ 76.375000] [<c0030330>] (kthread+0xa4/0xb0) from [<c00092f0>] (ret_from_fork+0x14/0x24)
> [ 76.375000] ---[ end trace e116b4b3d671f3d2 ]---

The WARNING is the result of a workqueue not being initialized for the USB driver.

Please try the attached patch. As you have posted on a public mailing list, May
I assume that it will be OK to use your address in Reported-by/Tested-by lines
in the patch submission?

Thanks,

Larry


Attachments:
rtl8192cu_init_work (1.71 kB)

2013-07-23 12:43:33

by Paul Rolland

[permalink] [raw]
Subject: Re: rtl8192cu: slow path warning

Hello,

On Thu, 27 Jun 2013 09:33:20 +0200
Richard Genoud <[email protected]> wrote:

> Yes, of course, you can add my
> Reported-by: Richard Genoud <[email protected]>
>
> But the patch doesn't compile on my platform ( since I'm on ARM, I
> haven't got a PCI bus, so rtlwifi/pci.c is not compiled ) :
>
> ERROR: "rtl_lps_change_work_callback"
> [drivers/net/wireless/rtlwifi/rtlwifi.ko] undefined!

Is that the reason why this patch is not yet in 3.10.x or 3.11-rcY ?
I'm running a 3.10.1 with USB dongle including 8192CU, and I can see this
warning when the machine starts.
I've check 3.10.1, 3.10.2 and 3.11-rc3 source code, but this fix is not
there. Is there a different fix that went in in 3.10.2 or 3.11-rc?

Best,
Paul


Attachments:
signature.asc (198.00 B)

2013-07-23 15:05:28

by Larry Finger

[permalink] [raw]
Subject: Re: rtl8192cu: slow path warning

On 07/23/2013 07:29 AM, Paul Rolland (ポール・ロラン) wrote:
> Hello,
>
> On Thu, 27 Jun 2013 09:33:20 +0200
> Richard Genoud <[email protected]> wrote:
>
>> Yes, of course, you can add my
>> Reported-by: Richard Genoud <[email protected]>
>>
>> But the patch doesn't compile on my platform ( since I'm on ARM, I
>> haven't got a PCI bus, so rtlwifi/pci.c is not compiled ) :
>>
>> ERROR: "rtl_lps_change_work_callback"
>> [drivers/net/wireless/rtlwifi/rtlwifi.ko] undefined!
>
> Is that the reason why this patch is not yet in 3.10.x or 3.11-rcY ?
> I'm running a 3.10.1 with USB dongle including 8192CU, and I can see this
> warning when the machine starts.
> I've check 3.10.1, 3.10.2 and 3.11-rc3 source code, but this fix is not
> there. Is there a different fix that went in in 3.10.2 or 3.11-rc?

The reason that patch is not in mainline is that it takes time. If you want to
have it, you can get the official patch from
http://marc.info/?l=linux-wireless&m=137242880222442&w=2, or you need to
implement kernels from the wireless-testing git tree, where it was added on June
28 as commit bcfb879. My original patch included the following note for John
Linville:

"Ideally, this patch should be pushed to the 3.10 stream; however, at this late
time that is not possible. Please push it for 3.11 and the Cc to stable will get
it into 3.10.X."

As you see, it was marked with a Cc for Stable, and it will be propagated to
3.10 when it gets incorporated by Linus. I think I have done all that I can do
for now.

If you want to lobby Linus to get stuff accepted faster, that is your
prerogative; however, I could not recommend that action, and I certainly will
never do anything like that.

Larry


2013-07-23 14:29:30

by Paul Rolland

[permalink] [raw]
Subject: Re: rtl8192cu: slow path warning

Hello Richard,

If you still have the required HW and still would like a patch to remove
that warning on your machine, could you please try the attached one ?

I slightly reworked the original patch by moving the function
rtl_lps_change_work_callback from pci.c to ps.c.

I've successfully compiled that on my machine, but I have PCI set in
my .config, so I'd like your feedback.

Best,
Paul

On Tue, 23 Jul 2013 14:29:07 +0200
Paul Rolland (ポール・ロラン) <[email protected]> wrote:

> Hello,
>
> On Thu, 27 Jun 2013 09:33:20 +0200
> Richard Genoud <[email protected]> wrote:
>
> > Yes, of course, you can add my
> > Reported-by: Richard Genoud <[email protected]>
> >
> > But the patch doesn't compile on my platform ( since I'm on ARM, I
> > haven't got a PCI bus, so rtlwifi/pci.c is not compiled ) :
> >
> > ERROR: "rtl_lps_change_work_callback"
> > [drivers/net/wireless/rtlwifi/rtlwifi.ko] undefined!
>
> Is that the reason why this patch is not yet in 3.10.x or 3.11-rcY ?
> I'm running a 3.10.1 with USB dongle including 8192CU, and I can see this
> warning when the machine starts.
> I've check 3.10.1, 3.10.2 and 3.11-rc3 source code, but this fix is not
> there. Is there a different fix that went in in 3.10.2 or 3.11-rc?
>
> Best,
> Paul


Attachments:
(No filename) (1.25 kB)
patch (2.40 kB)
signature.asc (198.00 B)
Download all attachments

2013-07-23 15:01:15

by Richard Genoud

[permalink] [raw]
Subject: Re: rtl8192cu: slow path warning

2013/7/23 Paul Rolland <[email protected]>:
> Hello Richard,
>
> If you still have the required HW and still would like a patch to remove
> that warning on your machine, could you please try the attached one ?
>
> I slightly reworked the original patch by moving the function
> rtl_lps_change_work_callback from pci.c to ps.c.
>
> I've successfully compiled that on my machine, but I have PCI set in
> my .config, so I'd like your feedback.
>
> Best,
> Paul

Hi Paul,

Well, I don't know why this patch didn't make it to 3.11-rc1, but it
seems that the patch you sent is the same as Larry's second patch :
https://lkml.org/lkml/2013/6/27/548

Best regards,
Richard.

2013-07-23 15:51:39

by Paul Rolland

[permalink] [raw]
Subject: Re: rtl8192cu: slow path warning

Hello Larry,

On Tue, 23 Jul 2013 10:05:26 -0500
Larry Finger <[email protected]> wrote:

> The reason that patch is not in mainline is that it takes time. If you
> want to have it, you can get the official patch from
> http://marc.info/?l=linux-wireless&m=137242880222442&w=2, or you need to
> implement kernels from the wireless-testing git tree, where it was added
> on June 28 as commit bcfb879. My original patch included the following
> note for John Linville:
>
> "Ideally, this patch should be pushed to the 3.10 stream; however, at
> this late time that is not possible. Please push it for 3.11 and the Cc
> to stable will get it into 3.10.X."
>
> As you see, it was marked with a Cc for Stable, and it will be propagated
> to 3.10 when it gets incorporated by Linus. I think I have done all that
> I can do for now.
>
> If you want to lobby Linus to get stuff accepted faster, that is your
> prerogative; however, I could not recommend that action, and I certainly
> will never do anything like that.

Neither will I... I was just wondering and asking, nothing else, as I'm
also facing this warning.

I'm glad to see the link you sent is presenting a patch that is the same as
the one I prepared. I'm going to use that while waiting for the patch to
hit mainline !

Thanks for replying,
Best,
Paul


Attachments:
signature.asc (198.00 B)