-
Notifications
You must be signed in to change notification settings - Fork 1.2k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
sched: Fix nx_waitid(), nx_waitpid(), nxtask_exithook() for SMP
Summary: - I noticed waitpid_test stops with lc823450-xgevk:rndis - The condition was CONFIG_DEBUG_ASSERTION=y - Actually, the child task sent SIGCHILD but the parent couldn't catch the signal - Then, I found that nx_waitid(), nx_waitpid() use sched_lock() - However, a parent task and a child task are running on different CPUs - So, sched_lock() is not enough and need to use a critical section - Also, signal handling in nxtask_exithook() must be done in a critical section Impact: - SMP only Testing: - Tested with ostest with the following configurations - lc823450-xgevk:rndis (CONFIG_DEBUG_ASSERTION=y and n) - spresense:smp - spresense:wifi_smp (NCPUS=2 and 4) - sabre-6quad:smp (QEMU) - esp32-core:smp (QEMU) - maix-bit:smp (QEMU) - sim:smp Signed-off-by: Masayuki Ishikawa <[email protected]>
- Loading branch information
1 parent
0cf6614
commit 4cc38ca
Showing
3 changed files
with
53 additions
and
4 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters