-
Notifications
You must be signed in to change notification settings - Fork 7.3k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Calling vTaskSuspend() on both cores can result in lost ticks (IDF-183) #1952
Comments
Thank you. It might be far more common as it appears that accessing the flash, via |
Yes, you're right about spi_flash access. Good point, thanks. |
Could the problem be solved by having each core deal with its own uxPendingTick (without interfering with the other) ? |
Nice to see a fix, thanks. Looking at the patch it appears that |
xTaskIncrementTick have to unwind uxPendedTicks on CPU1 and CPU0. Use case: If an erase operation was run on the CPU1 then it leads to starving other tasks which waiting time. Waited tasks just skipped. Closes: #1952 Closes: IDF-183
xTaskIncrementTick have to unwind uxPendedTicks on CPU1 and CPU0. Use case: If an erase operation was run on the CPU1 then it leads to starving other tasks which waiting time. Waited tasks just skipped. Closes: #1952 Closes: IDF-183
xTaskIncrementTick have to unwind uxPendedTicks on CPU1 and CPU0. Use case: If an erase operation was run on the CPU1 then it leads to starving other tasks which waiting time. Waited tasks just skipped. Closes: espressif#1952 Closes: IDF-183
xTaskIncrementTick have to unwind uxPendedTicks on CPU1 and CPU0. Use case: If an erase operation was run on the CPU1 then it leads to starving other tasks which waiting time. Waited tasks just skipped. Closes: #1952 Closes: IDF-183
Originally reported by @ourairquality here:
#1400 (comment)
I'm able to reproduce the issue as follows:
I believe all three conditions are required for the bug.
The tick count is lower than it should be, compared to the passage of time. This causes timeouts to occur later than they should, and using the tick count for wall time measurements will be inaccurate.
@ourairquality, please let me know if this matches the circumstances you're seeing.
AFAIK it's not very common to disable scheduler on both cores for extended periods (rather than using critical sections), which I think is probably why this hasn't been noticed until now. However we will fix obviously fix it!
The text was updated successfully, but these errors were encountered: