2012-01-20 09:53:07

by Martin Hundebøll

[permalink] [raw]
Subject: wl1271: ERROR watchdog interrupt received! starting recovery.

Hi,

I'm running an ad-hoc network with two pandaboards using the following commands to setup the network:

root@panda0 # ip link set dev wlan0 address 7e:78:47:8c:26:52
root@panda0 # iw dev wlan0 set type ibss
root@panda0 # ip link set dev wlan0 up
root@panda0 # iw dev wlan0 ibss join panda-mesh 2412 02:72:CF:28:19:1A
root@panda0 # iw phy phy0 set rts 100
root@panda0 # ip addr add 10.10.10.52/24 dev wlan0

and

root@panda1 # ip link set dev wlan0 address 7e:78:47:8c:26:53
root@panda1 # iw dev wlan0 set type ibss
root@panda1 # ip link set dev wlan0 up
root@panda1 # iw dev wlan0 ibss join panda-mesh 2412 02:72:CF:28:19:1A
root@panda1 # iw phy phy0 set rts 100
root@panda1 # ip addr add 10.10.10.53/24 dev wlan0

After this, the nodes list each other in a station dump. I then run ping:

root@panda0 # ping 10.10.10.53

but only two requests are transmitted before the devices restart as seen in the attached dmesg logs. The tcpdump from panda1 is attached in tcpdump.txt. I have attached the kernel config and here is some additional info:

root@panda0 # uname -a
Linux n52 3.1.6-1-ARCH #1 SMP PREEMPT Tue Jan 3 03:26:01 UTC 2012 armv7l ARMv7 Processor rev 2 (v7l) OMAP4 Panda board GNU/Linux

root@panda0 # modinfo wl12xx
filename: /lib/modules/3.1.6-1-ARCH/kernel/drivers/net/wireless/wl12xx/wl12xx.ko.gz
author: Juuso Oikarinen <[email protected]>
author: Luciano Coelho <[email protected]>
license: GPL
srcversion: DC3EDD5C82CB353BCE97039
depends: mac80211,cfg80211
vermagic: 3.1.6-1-ARCH SMP preempt mod_unload modversions ARMv7 p2v8
parm: debug_level:wl12xx debugging level (uint)
parm: fwlog:charp
parm: keymap:FW logger options: continuous, ondemand, dbgpins or disable

I see some commit logs from medio 2011 about the wl12xx watchdog, so I assume that they have made it into the 3.1 kernel.

Kind regards,
Martin Hundebøll


Attachments:
panda0.log (26.95 kB)
panda1.log (28.79 kB)
tcpdump.txt (749.00 B)
config (94.17 kB)
Download all attachments

2012-01-27 13:49:27

by Martin Hundebøll

[permalink] [raw]
Subject: Re: wl1271: ERROR watchdog interrupt received! starting recovery.

On 2012-01-20 10:52, Martin Hundebøll wrote:
> I'm running an ad-hoc network with two pandaboards using the following commands to setup the network:
>
> root@panda0 # ip link set dev wlan0 address 7e:78:47:8c:26:52
> root@panda0 # iw dev wlan0 set type ibss
> root@panda0 # ip link set dev wlan0 up
> root@panda0 # iw dev wlan0 ibss join panda-mesh 2412 02:72:CF:28:19:1A
> root@panda0 # iw phy phy0 set rts 100
> root@panda0 # ip addr add 10.10.10.52/24 dev wlan0
>
> and
>
> root@panda1 # ip link set dev wlan0 address 7e:78:47:8c:26:53
> root@panda1 # iw dev wlan0 set type ibss
> root@panda1 # ip link set dev wlan0 up
> root@panda1 # iw dev wlan0 ibss join panda-mesh 2412 02:72:CF:28:19:1A
> root@panda1 # iw phy phy0 set rts 100
> root@panda1 # ip addr add 10.10.10.53/24 dev wlan0
>
> After this, the nodes list each other in a station dump. I then run ping:
>
> root@panda0 # ping 10.10.10.53
>
> but only two requests are transmitted before the devices restart as seen in the attached dmesg logs. The tcpdump from panda1 is attached in tcpdump.txt. I have attached the kernel config and here is some additional info:
>
I have investigated the issue further and it seems to be related to the rts-setting in the commands listed above. Since my last mail I have update to kernel v3.2.1 and now the watchdog interrupts continuously if I configure the RTS threshold to 62 bytes or less. Changing the threshold to 63 bytes or more stops the watchdog interrupt from occuring.

Kind regards,
Martin Hundebøll

2012-01-27 14:23:45

by Luciano Coelho

[permalink] [raw]
Subject: Re: wl1271: ERROR watchdog interrupt received! starting recovery.

Hi Martin,

On Fri, 2012-01-27 at 14:49 +0100, Martin Hundebøll wrote:
> On 2012-01-20 10:52, Martin Hundebøll wrote:
> > I'm running an ad-hoc network with two pandaboards using the following commands to setup the network:
> >
> > root@panda0 # ip link set dev wlan0 address 7e:78:47:8c:26:52
> > root@panda0 # iw dev wlan0 set type ibss
> > root@panda0 # ip link set dev wlan0 up
> > root@panda0 # iw dev wlan0 ibss join panda-mesh 2412 02:72:CF:28:19:1A
> > root@panda0 # iw phy phy0 set rts 100
> > root@panda0 # ip addr add 10.10.10.52/24 dev wlan0
> >
> > and
> >
> > root@panda1 # ip link set dev wlan0 address 7e:78:47:8c:26:53
> > root@panda1 # iw dev wlan0 set type ibss
> > root@panda1 # ip link set dev wlan0 up
> > root@panda1 # iw dev wlan0 ibss join panda-mesh 2412 02:72:CF:28:19:1A
> > root@panda1 # iw phy phy0 set rts 100
> > root@panda1 # ip addr add 10.10.10.53/24 dev wlan0
> >
> > After this, the nodes list each other in a station dump. I then run ping:
> >
> > root@panda0 # ping 10.10.10.53
> >
> > but only two requests are transmitted before the devices restart as seen in the attached dmesg logs. The tcpdump from panda1 is attached in tcpdump.txt. I have attached the kernel config and here is some additional info:
> >
> I have investigated the issue further and it seems to be related to the rts-setting in the commands listed above. Since my last mail I have update to kernel v3.2.1 and now the watchdog interrupts continuously if I configure the RTS threshold to 62 bytes or less. Changing the threshold to 63 bytes or more stops the watchdog interrupt from occuring.

I'm sorry I didn't have the time to look into this earlier. This seems
to be a bug in the firmware (at least the watchdog is triggered when the
FW stops responding).

I'll take this up with our firmware team and see what we can do.

Thanks for reporting!

--
Cheers,
Luca.