[riot-notifications] [RIOT-OS/RIOT] cpu/esp8266: Improvements to the `esp_wifi` netdev driver (#10862)
notifications at github.com
Fri Jan 25 13:14:36 CET 2019
> I cannot reproduce the panic on master, however sometimes I don't get any ping reply there and the device seems to be stuck - a reset helps.
IMHO, the exception occurs only when the network load increases a lot. Problem 3 in issue #10861 describes it. I couldn't observe this exception when I used normal network load pinging from thee nodes:
term1> sudo ping6 fe80::5ecf:7fff:fe80:3f08 -Ieth0 -s1392 -i 0
term2> sudo ping6 fe80::5ecf:7fff:fe80:3f08 -Ieth0 -s512 -i 0
term3> sudo ping6 fe80::5ecf:7fff:fe80:3f08 -Ieth0 -s52 -i 0
Probably, the exception is caused due an interrupt where interrupts shouldn't be allowed. It is quite possible that the exception is caused by the SDK. It is pretty well known that the SDK is very buggy. There are a lot of discussions in the network where several crashes for WiFi are described.
My guess is that the problem does not occur in `master` since it slows down the communication. Function `_esp_wifi_recv_cb` checks whether the internal buffer is occupied. If so, it drops the incoming frame. https://github.com/RIOT-OS/RIOT/blob/8984a9b80c4751b4826821944d236a190fd9b6bb/cpu/esp8266/esp-wifi/esp_wifi_netdev.c#L199-L207 What I could observe is that this _dropping_ happens quite often on heavy network load due the asynchronous handling of frames using the `NETDEV_EVENT_ISR` approach. On heavy network load, `ets` thread provides the next frame before the `gnrc_netif` thread `esp_wifi` is scheduled. In worst case, every second frame is dropped.
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the notifications