realtime

This is an old revision of the document!


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
  • sched_setattr
  • sched_setaffinity
  • CPU_SET
  • pthread_setaffinity_np
  • sched_setscheduler

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.1602236519.txt.gz
  • Last modified: 6 years ago
  • by admin