ec73a4e69c
Summary: - During repeating ostest with sabre-6quad:smp (QEMU), I noticed that pthread_rwlock_test sometimes stops - Finally, I found that nxtask_exit() released a critical section too early before context switching which resulted in selecting inappropriate TCB - This commit fixes this issue by moving nxsched_resume_scheduler() from nxtask_exit() to up_exit() and also removing spin_setbit() and spin_clrbit() from nxtask_exit() because the caller holds a critical section - To be consistent with non-SMP cases, the above changes were done for all CPU architectures Impact: - This commit affects all CPU architectures regardless of SMP Testing: - Tested with ostest with the following configs - sabre-6quad:smp (QEMU, dev board), sabre-6quad:nsh (QEMU) - spresense:wifi_smp - sim:smp, sim:ostest - maix-bit:smp (QEMU) - esp32-devkitc:smp (QEMU) - 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 |