pussuw commented on issue #14593: URL: https://github.com/apache/nuttx/issues/14593#issuecomment-2458981097
> when an interrupt occurs, g_cpu_nestcount is used as the recursive counter because context switching may happen and this_task() will change, and tcp->irqcount cannot be used. Yes this much I was able to figure out when I tried to remove g_cpu_nestcount. There is still a hole somewhere in the acquire / release logic as I can see random debugasserts and deadlocks which happen when: - CPUx tries to take the big kernel lock from ISR - CPUy tries to take the big kernel lock from thread And very likely a context switch is what triggers the issue. This happens more often under high load scenarios, like system bootup. In our case the system boot uses a lot of CPU, it also spawns a lot of processes that start, run and exit almost immediately. I'll keep investigating. -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
