realtime
Table of Contents
https://wiki.linuxfoundation.org/realtime/rtl/start
https://wiki.linuxfoundation.org/realtime/rtl/all_topics
Core partitioning
User-space partitioning, core isolation, NO_HZ_FULL
Dual-OS partitioning, using a POSIX RTOS in some cores, over a hypervisor
https://yosh.ke.mu/raspberry_pi_isolating_cores_in_linux_kernel
Multitasking
In user space:
- Process (fork)
- Thread (pthread_create)
In kernel:
- Kernel thread (kthreadd)
Scheduler
sched_class stop > dl > rt > cfs > idle (e.g. rt threads will run with higher priority than cfs threads) (stop and idle scheduling class are not accessible for user space applications)
rt includes SCHED_FIFO and SCHED_RR policies.
dl includes SCHED_DEADLINE policy (augmented EDF).
Utilities
- chrt
- taskset
Linux specific APIs
- sched_setattr
- sched_setaffinity
- CPU_SET
- pthread_setaffinity_np
POSIX realtime APIs
- sched_setscheduler
- …
Benchmarking
Latency measurement with cyclictest (results for SCHED_FIFO).
Sources of latency:
- Kernel system call
- ISR
- Kernel locks
- Priority inversions
- Timers
- Page faults
Ftrace
Kernel Shark
LLTng
realtime.txt · Last modified: by admin