Avoid issues with interrupts and priority inversions and other deadlocks and use a SW based random generator for LWIP when under FreeRTOS.
This means removing any overrides for sleep_until and the two get_rand_xx calls from the SDK, making things much saner.
Related to #1883, #1872, and other random FreeRTOS lockups.
Avoid issues with interrupts and priority inversions and other deadlocks and use a SW based random generator for LWIP when under FreeRTOS.
This means removing any overrides for sleep_until and the two get_rand_xx calls from the SDK, making things much saner.
Related to #1883, #1872, and other random FreeRTOS lockups.
@GUVWAF would you be able to try this PR with your app? It removes the whole need for the IRQ-level freeze/unfreeze and actually should be faster overall since we don't need to freeze the opposite core every time LWIP asks for a random number (i.e. for a port assignment or backoff timer).
@GUVWAF would you be able to try this PR with your app? It removes the whole need for the IRQ-level freeze/unfreeze and actually should be faster overall since we don't need to freeze the opposite core every time LWIP asks for a random number (i.e. for a port assignment or backoff timer).
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Avoid issues with interrupts and priority inversions and other deadlocks and use a SW based random generator for LWIP when under FreeRTOS.
This means removing any overrides for sleep_until and the two get_rand_xx calls from the SDK, making things much saner.
Related to #1883, #1872, and other random FreeRTOS lockups.
@GUVWAF would you be able to try this PR with your app? It removes the whole need for the IRQ-level freeze/unfreeze and actually should be faster overall since we don't need to freeze the opposite core every time LWIP asks for a random number (i.e. for a port assignment or backoff timer).
Ah, this sounds like a better overall solution indeed. Thanks for looking so deeply into it.
I'll try it by letting it run overnight with debugger.
All seems fine with this. I’ve not observed a hang during two 10-hour tests (had to replace my set-up once).
Thanks a lot!
Great news. Thanks for the update!