nuttx/sched/sched
ligd 00121f9812 sched: delete check when pick nexttcb in readytorun list
CPU0                     CPU1
1. feed0 thread             feed1 thread
   (prio 1 affinity)        (prio 1 affinity)
2. nsh_main
   sched_lock()
3. waitpid()                hello_main
4. ------                   hello exit()
5. ------                   exit()->exit_wakeup()->wakeup nsh ->
                            add_readytorun()->
                            nsh at schedlock state set g_cpu_schedlock
6. -----                    exit()->nxtask_exit()->remove_readytorun()
                            -> check g_cpu_schedlock -> pick idle1
7. waitpid() return         idle thread
8. sched_unlock             idle thread

The error is in step 6:
pick a idle thread to execute not feed1 thread.

resolve:
remove the schedlocked-check in remove_readytorun()

Signed-off-by: ligd <liguiding1@xiaomi.com>
2023-11-24 12:43:54 +09:00
..
CMakeLists.txt task/pthread_cancelpt: Fix task_delete from another task group 2023-11-22 08:05:58 -08:00
Make.defs task/pthread_cancelpt: Fix task_delete from another task group 2023-11-22 08:05:58 -08:00
sched_addblocked.c sched: semaphore wait list optimize 2022-09-28 18:08:37 +08:00
sched_addprioritized.c sched: remove unnecessary type cast 2022-12-15 09:44:32 +08:00
sched_addreadytorun.c sched: remove unnecessary type cast 2022-12-15 09:44:32 +08:00
sched_backtrace.c sched: Guard backtrace related code correctly 2022-10-11 00:01:35 +02:00
sched_cpuload_oneshot.c sched: explicitly select the cpuload clock source configuration 2023-11-01 09:27:56 +08:00
sched_cpuload_period.c sched: explicitly select the cpuload clock source configuration 2023-11-01 09:27:56 +08:00
sched_cpuload.c sched: explicitly select the cpuload clock source configuration 2023-11-01 09:27:56 +08:00
sched_cpupause.c sched: Author Gregory Nutt: update licenses to Apache 2021-02-09 01:21:53 -08:00
sched_cpuselect.c nuttx/sched: use pid to check idle task 2022-10-31 17:53:08 +09:00
sched_critmonitor.c clock: replace all up_perf_xx with perf_xx 2023-10-02 16:11:43 +02:00
sched_foreach.c vfs:add nxsched_foreach to sched_lock avoid crash 2023-08-29 10:36:21 +08:00
sched_get_stackinfo.c nuttx: fix indentation issue 2023-03-09 16:27:07 -03:00
sched_get_stateinfo.c sched/addrenv.c: Implement re-entrancy for addrenv_select() 2023-04-25 14:33:19 +02:00
sched_get_tls.c task/pthread_cancelpt: Fix task_delete from another task group 2023-11-22 08:05:58 -08:00
sched_getaffinity.c sched: Author Gregory Nutt: update licenses to Apache 2021-02-09 01:21:53 -08:00
sched_getcpu.c
sched_getfiles.c sched/spawn: remove spawn proxy thread to simplify task/posix_spawn() 2023-04-27 17:35:58 +08:00
sched_getparam.c Don't include assert.h from public header file 2021-06-03 08:36:03 -07:00
sched_getscheduler.c sched: Author Gregory Nutt: update licenses to Apache 2021-02-09 01:21:53 -08:00
sched_gettcb.c drivers/note: Replace the scritical section with spin_xxx_wo_note 2023-01-04 00:21:18 +02:00
sched_idletask.c sched/sched/sched_idletask: fix typo 2023-06-19 10:51:23 +02:00
sched_lock.c spinlock: Rename spin_islocked to spin_is_locked 2023-10-06 20:03:19 -04:00
sched_lockcount.c sched: Author Gregory Nutt: update licenses to Apache 2021-02-09 01:21:53 -08:00
sched_mergepending.c sched/sched: fix scheduler lock/unlock operation for non-SMP case 2023-04-19 02:43:55 +08:00
sched_mergeprioritized.c Remove the unnessary empty line after label 2022-09-30 17:54:56 +02:00
sched_processtimer.c sched/cpuload: add SCHED_CPULOAD_OSCLK option 2023-08-04 10:58:54 -07:00
sched_releasetcb.c sched: explicitly select the cpuload clock source configuration 2023-11-01 09:27:56 +08:00
sched_removeblocked.c sched: semaphore wait list optimize 2022-09-28 18:08:37 +08:00
sched_removereadytorun.c sched: delete check when pick nexttcb in readytorun list 2023-11-24 12:43:54 +09:00
sched_reprioritize.c sched/semaphore: fix priority boost restoration for priority inheritance 2022-10-03 15:14:24 -03:00
sched_reprioritizertr.c nuttx/sched: move reprioritize process to public function 2022-11-22 15:29:00 +09:00
sched_resumescheduler.c SMP: fix crash when switch to new task which is still running 2022-09-17 17:37:47 +09:00
sched_roundrobin.c nuttx: Use MIN/MAX definitions from "sys/param.h" 2023-02-01 23:47:44 +08:00
sched_rrgetinterval.c sched: Author Gregory Nutt: update licenses to Apache 2021-02-09 01:21:53 -08:00
sched_self.c
sched_setaffinity.c sched: sched: Remove sched_lock/unlock from nxsched_set_affinity() 2021-01-20 21:52:58 -08:00
sched_setparam.c sched: Author Gregory Nutt: update licenses to Apache 2021-02-09 01:21:53 -08:00
sched_setpriority.c sched/sched: address performance concerns for sched_lock in non-SMP case 2023-04-27 00:40:20 +08:00
sched_setscheduler.c sched/getpid: replace syscall getpid/tid/ppid() to kernel version 2023-02-02 10:33:01 +08:00
sched_smp.c sched: Exit immediately when cpuset change to 0. 2023-10-18 21:12:35 +08:00
sched_sporadic.c mm/alloc: remove all unnecessary cast for alloc 2023-08-30 14:34:20 +08:00
sched_suspend.c nuttx/sched: merge up_block_task and up_unblock_task 2022-11-22 22:59:08 +08:00
sched_suspendscheduler.c sched: Author Gregory Nutt: update licenses to Apache 2021-02-09 01:21:53 -08:00
sched_sysinfo.c sched: explicitly select the cpuload clock source configuration 2023-11-01 09:27:56 +08:00
sched_thistask.c
sched_timerexpiration.c SMP: fix repeat entry timer_start 2023-08-21 13:20:56 +08:00
sched_unlock.c spinlock: Rename spin_islocked to spin_is_locked 2023-10-06 20:03:19 -04:00
sched_verifytcb.c Fix various typos 2022-07-08 02:15:54 +08:00
sched_wait.c sched: remove the unused function nx_wait and nx_waitid 2022-10-28 21:19:46 +02:00
sched_waitid.c sched: remove the unused function nx_wait and nx_waitid 2022-10-28 21:19:46 +02:00
sched_waitpid.c fix wait after vfork return error 2023-09-08 00:53:56 +03:00
sched_yield.c sched: Author Gregory Nutt: update licenses to Apache 2021-02-09 01:21:53 -08:00
sched.h task/pthread_cancelpt: Fix task_delete from another task group 2023-11-22 08:05:58 -08:00