2395ab7f6e
Summary: - I noticed that nxsched_merge_pending() is called outside a critical section - The issue happens if a new rtcb does not hold a critical section - Actually, global IRQ control is done in nxsched_resume_scheduler() in nxtask_exit() - However, nxsched_merge_pending() was called after calling nxsched_resume_scheduler() - This commit fixes the issue by moving nxsched_merge_pending() before the function - NOTE: the sequence was changed for SMP but works for non-SMP as well Impact: - This commit affects both SMP and non-SMP Testing: - Tested with ostest with the following configurations - spresense:wifi_smp (NCPUS=2 and 4) - spresense:wifi (non SMP) - sabre-6quad:smp (QEMU) - esp32-core:smp (QEMU) - maix-bit:smp (QEMU) - sim:smp - lc823450-xgevk:rndis Signed-off-by: Masayuki Ishikawa <Masayuki.Ishikawa@jp.sony.com> |
||
---|---|---|
.. | ||
clock | ||
environ | ||
group | ||
init | ||
irq | ||
module | ||
mqueue | ||
paging | ||
pthread | ||
sched | ||
semaphore | ||
signal | ||
task | ||
timer | ||
wdog | ||
wqueue | ||
Kconfig | ||
Makefile |