nuttx/sched
chao an 87f134cfaa sched/sleep: replace all Signal-based sleep implement to Scheduled sleep
Nuttx currently has 2 types of sleep interfaces:

1. Signal-scheduled sleep: nxsig_sleep() / nxsig_usleep() / nxsig_nanosleep()
Weaknesses:
a. Signal-dependent: The signal-scheduled sleep method is bound to the signal framework, while some driver sleep operations do not depend on signals.
b. Timespec conversion: Signal-scheduled sleep involves timespec conversion, which has a significant impact on performance.

2. Busy sleep: up_mdelay() / up_udelay()
Weaknesses:
a. Does not actively trigger scheduling, occupy the CPU loading.

3. New interfaces: Scheduled sleep: nxsched_sleep() / nxsched_usleep() / nxsched_msleep() / nxsched_ticksleep()
Strengths:
a. Does not depend on the signal framework.
b. Tick-based, without additional computational overhead.

Currently, the Nuttx driver framework extensively uses nxsig_* interfaces. However, the driver does not need to rely on signals or timespec conversion.
Therefore, a new set of APIs is added to reduce dependencies on other modules.

(This PR also aims to make signals optional, further reducing the code size of Nuttx.)

Signed-off-by: chao an <anchao.archer@bytedance.com>
2025-10-17 14:05:02 +08:00
..
addrenv sem_waitirq: Use kmap interface to access the semaphore 2024-12-18 08:57:01 +08:00
clock sched/clock: remove return value of clock_systime_timespec() 2025-10-10 23:15:27 +08:00
environ sched/environ: There is no need to use sched_[un]lock 2024-10-11 02:43:11 +08:00
event sched/event: add nxevent_getmask api 2025-09-09 11:07:49 -03:00
group sched/sleep: replace all Signal-based sleep implement to Scheduled sleep 2025-10-17 14:05:02 +08:00
init sched/init/nx_bringup.c: Add support for CONFIG_INIT_NONE in a flat build 2025-08-31 18:38:36 +08:00
instrument gprof: move gprof function from sched to libbuiltin/libgcc 2024-11-13 02:42:31 +08:00
irq sched/irq: add stack size judgment when detecting stack overflow 2025-10-14 17:42:01 +08:00
misc sched/irq: add a check for the interrupt stack in irq_dispatch 2025-09-29 19:12:18 +08:00
module libc/elf: rename modlib to libelf 2025-04-11 09:43:22 +08:00
mqueue sched: After nxsched_add_readytorun, change first parameter to up_switch_context to this_task() 2025-08-20 10:16:43 +08:00
paging sched/sleep: replace all Signal-based sleep implement to Scheduled sleep 2025-10-17 14:05:02 +08:00
pthread pthread: add pthread_attr_{get|set}guardsize support 2025-08-22 20:50:13 +08:00
sched sched/sleep: add support for scheduling sleep 2025-10-16 12:46:42 +02:00
semaphore sched/semaphore: add support to customize semaphore max allowed value 2025-09-04 09:48:34 +08:00
signal sched/signal: Remove shadow definitions to reduce unnecessary API 2025-10-14 17:40:18 +08:00
task arch: unify the scheduling information of task_exit 2025-09-25 16:40:23 +08:00
timer sched/wdog: Replace periodcial timer with the wd_start_next. 2025-06-10 11:02:45 -03:00
tls sched/gettid: Move thread ID to TLS 2025-04-08 22:53:10 +08:00
wdog sched/wdog: remove unnecessary list_node redefinition 2025-10-09 11:41:32 +08:00
wqueue sched/wqueue: Fix windows compilation errors. 2025-06-18 13:57:20 +02:00
CMakeLists.txt sched: migrate to SPDX identifier 2024-09-12 01:10:14 +08:00
Kconfig sched: remove nxsched_suspend/resume_scheduler 2025-09-30 23:26:28 +08:00
Makefile Revert "build depend:Revert Make.dep intermediate ddc file" 2024-09-15 19:29:47 +08:00