nuttx/sched
chao an d8b4d53444 sched/tickless: Fix CLOCK_MONOTONIC always 0 by updating sched ticks
Fix the issue where clock_gettime(CLOCK_MONOTONIC) always returns 0 in
tickless mode, caused by the scheduler tick counter (g_system_ticks) not
being updated with the actual timer ticks.

1. Add clock_update_sched_ticks() function to sched/clock/clock_sched_ticks.c:
  a. This function directly sets the system tick counter to a specific value
     (vs incrementing in clock_increase_sched_ticks), with full documentation
     matching the existing code style.
  b. Uses seqlock to ensure thread-safe access to g_system_ticks.

2. Call clock_update_sched_ticks() in nxsched_process_timer() (sched_processtickless.c):

  a. Syncs the scheduler tick counter with the actual timer ticks retrieved via up_timer_gettick().

With this fix, g_system_ticks is properly updated in tickless mode,
and clock_gettime(CLOCK_MONOTONIC) returns the correct non-zero monotonic time.

Signed-off-by: chao an <anchao.archer@bytedance.com>
2026-03-03 11:01:02 -05:00
..
addrenv sched/addrenv: replace critical section with spinlock for refs protection 2026-01-20 11:29:22 +08:00
clock sched/tickless: Fix CLOCK_MONOTONIC always 0 by updating sched ticks 2026-03-03 11:01:02 -05:00
environ libc/environ: add interrupt context check to getenv 2026-01-21 10:37:55 +08:00
event sched/event: Fix uninitialized need_switch flag issue in event_post() 2025-11-04 21:43:59 +08:00
group sched: move process ID from kernel to TLS for faster access 2026-01-20 22:33:45 +08:00
hrtimer sched/hrtimer: Simplify the hrtimer. 2026-02-02 13:26:22 +08:00
init sched: add trace points during system startup and board initialization 2026-01-27 03:18:11 +08:00
instrument gprof: move gprof function from sched to libbuiltin/libgcc 2024-11-13 02:42:31 +08:00
irq sched/irq: Consolidate IRQ bounds checking into IRQ_TO_NDX macro 2026-01-28 13:35:30 +08:00
misc sched/misc: fix potential out-of-bounds access in coredump stack emission 2026-02-27 17:52:34 +08:00
module libc/elf: rename modlib to libelf 2025-04-11 09:43:22 +08:00
mqueue sched/mqueue: Enable receiving messages on an interrupt handler 2026-02-11 13:10:31 -05:00
paging sched/sleep: replace all Signal-based sleep implement to Scheduled sleep 2025-10-17 14:05:02 +08:00
pthread pthread: move pthread_cond to userspace 2026-01-26 16:26:39 +08:00
sched sched/tickless: Fix CLOCK_MONOTONIC always 0 by updating sched ticks 2026-03-03 11:01:02 -05:00
semaphore sched/semaphore: Add debug assert to detect mutex recursion. 2026-02-03 11:56:24 -05:00
signal sched/signal: update nxsig_clockwait() to support disable all signals 2026-02-26 20:03:05 +08:00
task sched/cancelpt: Fix MISRA C 2012 Rule 10.4 violations 2026-02-02 21:09:40 +08:00
timer sched/timer: Fix MISRA Rule 10.3 2026-01-22 22:14:00 +08:00
tls pthread: remove tl_lock 2026-01-26 20:56:12 +08:00
wdog sched/wdog: Simplify timer expiration for hrtimer. 2026-02-02 13:26:22 +08:00
wqueue sched/wqueue: add configuring the stack of an hpwork/lpwork as static 2026-01-27 10:18:24 +08:00
CMakeLists.txt sched: migrate to SPDX identifier 2024-09-12 01:10:14 +08:00
Kconfig sched: Fix Kconfig style 2026-02-03 09:36:16 +08:00
Makefile Makefile: Remove make depend files by make distclean 2026-02-16 16:27:57 +01:00