walnux/arch/arm/src/common
Masayuki Ishikawa ec73a4e69c arch & sched: task: Fix up_exit() and nxtask_exit() for SMP
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>
2020-12-21 23:29:56 -06:00
..
arm_allocateheap.c arch/arm: Rename all up_*.h files to arm_*.h 2020-05-01 03:43:44 +01:00
arm_arch.h arch/arm: Rename all up_*.h files to arm_*.h 2020-05-01 03:43:44 +01:00
arm_checkstack.c arch: arm: Fix interrupt stack handlings for SMP 2020-10-21 11:49:45 +08:00
arm_createstack.c ARM stack fix: Same boundary calculation in do_stackcheck and stack_color. 2020-10-12 10:52:33 -07:00
arm_etherstub.c arch/arm, board/arm: Rename all up_* functions to arm_* 2020-05-01 18:28:13 +01:00
arm_exit.c arch & sched: task: Fix up_exit() and nxtask_exit() for SMP 2020-12-21 23:29:56 -06:00
arm_hostfs.c Change all files come from Xiaomi/Pinecone to Apache License 2.0 2020-08-22 17:37:21 -06:00
arm_idle.c arch/: Trivial typos, mostly "their is" to "there is" 2020-09-09 14:09:43 -04:00
arm_initialize.c arch: arm: Fix interrupt stack handlings for SMP 2020-10-21 11:49:45 +08:00
arm_internal.h arm: Use a consistent type (uintptr_t) for g_idle_topstack 2020-11-16 05:46:53 -08:00
arm_interruptcontext.c armv7-a: Fix comments on Cortex-A SGI 2020-11-19 18:01:30 -08:00
arm_lowputs.c arch/arm, board/arm: Rename all up_* functions to arm_* 2020-05-01 18:28:13 +01:00
arm_lwl_console.c arch/arm: Rename all up_*.c files to arm_*.c 2020-05-01 02:11:01 +01:00
arm_mdelay.c arch/arm: Rename all up_*.c files to arm_*.c 2020-05-01 02:11:01 +01:00
arm_modifyreg8.c arch/arm: Rename all up_*.h files to arm_*.h 2020-05-01 03:43:44 +01:00
arm_modifyreg16.c arch/arm: Rename all up_*.h files to arm_*.h 2020-05-01 03:43:44 +01:00
arm_modifyreg32.c arch/arm: Rename all up_*.h files to arm_*.h 2020-05-01 03:43:44 +01:00
arm_pthread_start.c Refine __KERNEL__ and CONFIG_BUILD_xxx usage in the code base 2020-05-01 10:43:47 -03:00
arm_puts.c arch/arm: Rename all up_*.h files to arm_*.h 2020-05-01 03:43:44 +01:00
arm_releasestack.c Refine __KERNEL__ and CONFIG_BUILD_xxx usage in the code base 2020-05-01 10:43:47 -03:00
arm_semi_syslog.c Change all files come from Xiaomi/Pinecone to Apache License 2.0 2020-08-22 17:37:21 -06:00
arm_stackframe.c arch/stackframe: fix heap buffer overflow 2020-06-15 07:19:41 -06:00
arm_task_start.c Refine __KERNEL__ and CONFIG_BUILD_xxx usage in the code base 2020-05-01 10:43:47 -03:00
arm_udelay.c arch/arm: Rename all up_*.c files to arm_*.c 2020-05-01 02:11:01 +01:00
arm_usestack.c arch: Remove the special check for idle thread in up_use_stack 2020-12-16 09:54:29 +09:00
arm_vfork.c arch/arm/src/common/arm_vfork.c: Fix syslog formats 2020-11-20 22:22:53 -08:00
arm_vfork.h arch/arm: Rename all up_*.h files to arm_*.h 2020-05-01 03:43:44 +01:00
README_lwl_console.txt arch/arm: Rename all up_*.c files to arm_*.c 2020-05-01 02:11:01 +01:00