Bug 77581 - mwifiex sdio as AP multicast transmit queue 1 timed out
Summary: mwifiex sdio as AP multicast transmit queue 1 timed out
Status: CLOSED PATCH_ALREADY_AVAILABLE
Alias: None
Product: Drivers
Classification: Unclassified
Component: network-wireless (show other bugs)
Hardware: ARM Linux
: P1 normal
Assignee: networking_wireless@kernel-bugs.osdl.org
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2014-06-10 08:22 UTC by Michael Hirsch
Modified: 2014-06-25 15:24 UTC (History)
3 users (show)

See Also:
Kernel Version: 3.15.0-rc5
Tree: Mainline
Regression: No


Attachments
debug output mwifiex during iperf (85.51 KB, text/plain)
2014-06-10 15:44 UTC, Michael Hirsch
Details
hostapd_conf (281 bytes, application/octet-stream)
2014-06-13 11:22 UTC, Michael Hirsch
Details

Description Michael Hirsch 2014-06-10 08:22:33 UTC
I have an issue with mwifiex (sdio, SD8787) in AP mode. It does not send out multicast packages. Also, after a while I see a "transmit queue 1 timed out".

- Kernel Version is: 3.15.0-rc5
- Firmware is 14.66.9.p96 (I also tried with others, no change)
- Platform is a TI AM335x

Steps to reproduce:

1. create bridge & ap:

brctl addbr br0
brctl addif br0 eth0
iw phy phy0 interface add ap0 type __ap
brctl addif br0 ap0
ifconfig br0 up
ifconfig eth0 up
hostapd /etc/hostapd.conf
dhclient br0

2. Connect a STA to the AP

3. start iperf:

e.g. iperf -c 239.255.255.239 -u -T 32 -i 1 -l 1 -b 1K -t 1000

output:
------------------------------------------------------------
Client connecting to 239.255.255.239, UDP port 5001
Sending 12 byte datagrams
Setting multicast TTL to 32
UDP buffer size:  160 KByte (default)
------------------------------------------------------------
[  3] local 192.168.44.137 port 49883 connected with 239.255.255.239 port 5001
[ ID] Interval       Transfer     Bandwidth
[  3]  0.0- 1.0 sec   132 Bytes  1.06 Kbits/sec
[  3]  1.0- 2.0 sec   120 Bytes   960 bits/sec
[  3]  2.0- 3.0 sec   132 Bytes  1.06 Kbits/sec
[  3]  3.0- 4.0 sec   120 Bytes   960 bits/sec
[  3]  4.0- 5.0 sec   132 Bytes  1.06 Kbits/sec
[  3]  5.0- 6.0 sec   120 Bytes   960 bits/sec
[  3]  6.0- 7.0 sec   120 Bytes   960 bits/sec
[  3]  7.0- 8.0 sec   132 Bytes  1.06 Kbits/sec
[  3]  8.0- 9.0 sec   120 Bytes   960 bits/sec
[  3]  9.0-10.0 sec   132 Bytes  1.06 Kbits/sec
[  3] 10.0-11.0 sec   120 Bytes   960 bits/sec
[  3] 11.0-12.0 sec   120 Bytes   960 bits/sec
[  3] 12.0-13.0 sec   132 Bytes  1.06 Kbits/sec
[  3] 13.0-14.0 sec   120 Bytes   960 bits/sec
[  3] 14.0-15.0 sec   132 Bytes  1.06 Kbits/sec
[  3] 15.0-16.0 sec   120 Bytes   960 bits/sec
[  3] 16.0-17.0 sec   132 Bytes  1.06 Kbits/sec
[  3] 17.0-18.0 sec   120 Bytes   960 bits/sec
[  3] 18.0-19.0 sec   120 Bytes   960 bits/sec
[  3] 19.0-20.0 sec   132 Bytes  1.06 Kbits/sec
[  3] 20.0-21.0 sec   120 Bytes   960 bits/sec
[  563.011794] ------------[ cut here ]------------
[  563.016736] WARNING: CPU: 0 PID: 0 at net/sched/sch_generic.c:264 dev_watchdog+0x280/0x28c()
[  563.025740] NETDEV WATCHDOG: ap0 (mwifiex_sdio): transmit queue 1 timed out
[  563.033061] Modules linked in: bridge stp llc mwifiex_sdio mwifiex snd_soc_s800 snd_soc_davinci_mcasp snd_soc_tas5086 snd_soc_cs4271 snd_soc_ak5386 snd_soc_ak4104 snd_soc_ap
[  563.051522] CPU: 0 PID: 0 Comm: swapper Not tainted 3.15.0-rc5 #5
[  563.057973] [<c001473c>] (unwind_backtrace) from [<c00122a4>] (show_stack+0x10/0x14)
[  563.066127] [<c00122a4>] (show_stack) from [<c003ada0>] (warn_slowpath_common+0x6c/0x84)
[  563.074632] [<c003ada0>] (warn_slowpath_common) from [<c003ade8>] (warn_slowpath_fmt+0x30/0x40)
[  563.083774] [<c003ade8>] (warn_slowpath_fmt) from [<c0448f88>] (dev_watchdog+0x280/0x28c)
[  563.092378] [<c0448f88>] (dev_watchdog) from [<c00440d4>] (call_timer_fn+0x6c/0xe4)
[  563.100422] [<c00440d4>] (call_timer_fn) from [<c0044668>] (run_timer_softirq+0x1c8/0x26c)
[  563.109129] [<c0044668>] (run_timer_softirq) from [<c003eb60>] (__do_softirq+0x12c/0x2b0)
[  563.117727] [<c003eb60>] (__do_softirq) from [<c003efe8>] (irq_exit+0xc8/0x104)
[  563.125413] [<c003efe8>] (irq_exit) from [<c000f8a4>] (handle_IRQ+0x58/0xb8)
[  563.132828] [<c000f8a4>] (handle_IRQ) from [<c0008684>] (omap3_intc_handle_irq+0x8c/0x9c)
[  563.141384] [<c0008684>] (omap3_intc_handle_irq) from [<c0012dc4>] (__irq_svc+0x44/0x78)
[  563.149875] Exception stack(0xc0747f58 to 0xc0747fa0)
[  563.155195] 7f40:    00000001 00000001
[  563.163783] 7f60: 00000000 c0750fa8 c074e0d0 00000000 c0746000 00000000 c079c420 c07a921a
[  563.172372] 7f80: c0746000 ffffffed 00000000 c0747fa0 c006c198 c000f9ec 20000013 ffffffff
[  563.180931] [<c0012dc4>] (__irq_svc) from [<c000f9ec>] (arch_cpu_idle+0x24/0x30)
[  563.188710] [<c000f9ec>] (arch_cpu_idle) from [<c0064f20>] (cpu_startup_entry+0x114/0x21c)
[  563.197397] [<c0064f20>] (cpu_startup_entry) from [<c070fa20>] (start_kernel+0x304/0x310)
[  563.205979] ---[ end trace 260fa0c259770f88 ]---
[  563.210825] mwifiex_sdio mmc0:0001:1: 26320 : Tx timeout(#1), bss_type-num = 1-0
[  3] 21.0-22.0 sec   108 Bytes   864 bits/sec
[  3] 22.0-23.0 sec   144 Bytes  1.15 Kbits/sec
[  3] 23.0-24.0 sec   120 Bytes   960 bits/sec
[  3] 24.0-25.0 sec   132 Bytes  1.06 Kbits/sec
[  3] 25.0-26.0 sec   120 Bytes   960 bits/sec
[  3] 26.0-27.0 sec   132 Bytes  1.06 Kbits/sec
[  3] 27.0-28.0 sec   120 Bytes   960 bits/sec
[  3] 28.0-29.0 sec   132 Bytes  1.06 Kbits/sec
[  3] 29.0-30.0 sec   120 Bytes   960 bits/sec
[  3] 30.0-31.0 sec   120 Bytes   960 bits/sec
[  573.011824] mwifiex_sdio mmc0:0001:1: 27301 : Tx timeout(#2), bss_type-num = 1-0
[  3] 31.0-32.0 sec   132 Bytes  1.06 Kbits/sec
[  3] 32.0-33.0 sec   120 Bytes   960 bits/sec
[  3] 33.0-34.0 sec   132 Bytes  1.06 Kbits/sec
[  3] 34.0-35.0 sec   120 Bytes   960 bits/sec
[  3] 35.0-36.0 sec   120 Bytes   960 bits/sec
[  3] 36.0-37.0 sec   132 Bytes  1.06 Kbits/sec
[  3] 37.0-38.0 sec   120 Bytes   960 bits/sec
[  3]  0.0-39.0 sec  4.76 KBytes  1000 bits/sec


- On STA side I can't see any multicast incoming. (wireshark, tcpdump, iperf -s)

- I'm not sure if it's related to https://bugzilla.kernel.org/show_bug.cgi?id=70191.

- Apart from that the SD8787 as AP works fine.

Any Idea how to fix that? I can open a bug at bugzilla.kernel.org if needed.

Best regards

Michael
Comment 1 Bing Zhao 2014-06-10 15:23:44 UTC
Hi Michael, could you give it a try with a newer SD8787 firmware?
http://git.marvell.com/?p=mwifiex-firmware.git;a=summary
git://git.marvell.com/mwifiex-firmware.git
Comment 2 Michael Hirsch 2014-06-10 15:29:31 UTC
Hello! Thanks for the answer!

tested with 

mwifiex_sdio mmc0:0001:1: driver_version = mwifiex 1.0 (14.66.9.p192) 

still the same. Do you need anything else? E.g. mwifi debug output?

Best

Michael
Comment 3 Bing Zhao 2014-06-10 15:35:00 UTC
Yes, please enable dynamic_debug:

echo "module mwifiex +p" > /sys/kernel/debug/dynamic_debug/control
echo "module mwifiex_sdio +p" > /sys/kernel/debug/dynamic_debug/control
Comment 4 Michael Hirsch 2014-06-10 15:44:05 UTC
Created attachment 138921 [details]
debug output mwifiex during iperf
Comment 5 Bing Zhao 2014-06-11 18:05:21 UTC
Thanks Michael for the logs. We are not able to reproduce it on our platforms. Could you post your hostapd.conf file? Does the unicast packet work for you?
Comment 6 Michael Hirsch 2014-06-13 11:20:32 UTC
thanks for testing. Unicast works for me. tested with

iperf -c 192.168.44.148 -u -t 100 -i 1

The iperf server receives those massages, no timeout.

>We are not able to reproduce it on our platforms.
What platform have you tested? If it's not the driver nor the firmware the next candidate would be the sdio driver level. But it needs some fantasy as we have no known problems if the platform works as STA. And there are thousands of devices on this platform in the market. Do you have an advice?

Could you retest with my hostapd.conf (even if it really basic)?

Thanks in advance and best regards

Michael
Comment 7 Michael Hirsch 2014-06-13 11:22:23 UTC
Created attachment 139611 [details]
hostapd_conf
Comment 8 Bing Zhao 2014-06-20 18:50:27 UTC
Hi Michael, could you please apply this patch?
http://marc.info/?l=linux-wireless&m=140328997917046&w=2
Comment 9 Michael Hirsch 2014-06-24 08:21:41 UTC
Hi,

I can confirm the patch fixes the issue. Thanks!

Note You need to log in before you can comment on or make changes to this bug.