Table of Contents

https://wiki.linuxfoundation.org/realtime/rtl/start

https://wiki.linuxfoundation.org/realtime/rtl/all_topics

https://www.embedded-software-engineering.de/entwicklung-einer-linux-realtime-applikation-a-b862ea485a877e6a7e2f25edd98f5ef7/

Learning

https://realtime-linux.org/a-checklist-for-real-time-applications-in-linux/

https://bootlin.com/training/preempt-rt/

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:

In kernel:

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

Linux specific APIs

POSIX realtime APIs

Benchmarking

Latency measurement with cyclictest (results for SCHED_FIFO).

Sources of latency:

Ftrace

Kernel Shark

LLTng