nuttx-mirror/sched
ligd 7ff7f6ec21 wdog: optimize a bit speed in wd_start
After these wdog refactor:
We conducted a latency measurement using the rt-tests/cyclictest (commit cadd661) on an x86_64 NUC12 equipped with an i7-1255U processor and 16GB of LPDDR5 memory. The specific command used for this microbenchmark was cyclictest -q -l 100000 -h 30000, which is designed to assess the responsiveness of the cyclic timer.

The findings from our benchmark are summarized below, highlighting the minimum, median, and maximum latency values for each operating system tested:

Operating System	Minimum Latency (us)	Median Latency (us)	Maximum Latency (us)
Linux	            48	                    53	                410
PreemptRT	        6	                    57	                148
Xenomai	            53	                    53	                64
NuttX	            64	                    626	                1212
NuttX (refactor)	1	                    1	                3
In this table, "Min" indicates the shortest latency observed, "Median" represents the middle value of the latency distribution, and "Max" denotes the longest latency encountered.

The systems tested were as follows:

Linux: ACRN version 6.1.80 (commit f528146)
PreemptRT: Linux kernel 5.4.251 with the 5.4.254-rt85 patch applied
Xenomai: Linux kernel 5.4.251 patched with ipipe-core-5.4.239-x86-13
These results clearly demonstrate the varying performance of different operating systems in terms of timer latency, the refactored NuttX showing particularly low latency values.

Signed-off-by: ligd <liguiding1@xiaomi.com>
2024-09-10 23:32:30 +08:00
..
addrenv cmake:complete missing changes during cmake reforming for sched 2023-09-08 21:20:16 +03:00
clock sched: use this_task replace nxsched_self 2024-09-05 09:33:50 -03:00
environ [env]:Fixed spacing and typo issues in code comment descriptions 2024-08-27 21:52:56 +08:00
event sched/event: clear pending events before enable the scheduler 2024-09-02 18:24:28 +08:00
group fs/inode: add reference to protect filelist of group 2024-09-10 15:16:19 +08:00
init sched/group/setuptask_file: duplicate idle task fd for kernel thread 2024-09-09 19:45:29 +08:00
instrument sched/procfs:use instrument to statistics run time max stack 2023-12-11 02:06:51 -08:00
irq irq: inline restore_critical_section 2024-09-10 23:14:09 +08:00
misc sched: replace up_cpu_index with this_cpu 2024-09-05 12:09:24 +08:00
module fs: procfs add poll support 2023-12-26 19:23:13 -08:00
mqueue irq: add [enter|leave]_critical_section_nonirq 2024-09-08 17:50:51 +08:00
paging sched/tasklist: replace task status list with macro definition 2024-03-21 11:23:46 +09:00
pthread pthread/realtime: export interfaces about pthread ceiling priority 2024-09-10 01:26:31 +08:00
sched sched/sched: Correct the elapsed time calculation. 2024-09-10 23:32:30 +08:00
semaphore sem: add mutex protect in sem_trywait 2024-09-10 01:26:31 +08:00
signal sched/signal: fix pthread_kill use after free 2024-08-23 20:02:46 +08:00
task task: assign_pid retry after malloc 2024-09-03 09:45:33 -03:00
timer timer: use spin_lock_irqsave protect g_alloctimers 2024-04-11 10:45:34 +08:00
tls sched:fix windows sim build error 2024-08-14 22:36:57 +08:00
wdog wdog: optimize a bit speed in wd_start 2024-09-10 23:32:30 +08:00
wqueue wqueue: add interface work_queue_priority_wq and work_queue_priority 2024-08-30 21:40:55 +08:00
CMakeLists.txt build: add initial cmake build system 2023-07-08 13:50:48 +08:00
Kconfig semaphore: export priority ceiling interfaces in semaphore 2024-09-10 01:26:31 +08:00
Makefile sched/nxevent: add support of kernel event group 2024-08-23 17:00:35 +08:00