User Tools

Site Tools


realtime

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/

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

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki