Table of Contents

Odroid C2 Real Time Kernel

The standard Linux kernel only meets soft real-time requirements: it provides basic POSIX operations for userspace time handling
but has no guarantees for hard timing deadlines. With Ingo Molnar's Realtime Preemption patch
(referenced to as RT-Preempt in this document) and Thomas Gleixner's generic clock event layer with high resolution support,
the kernel gains hard realtime capabilities.

The RT-Preempt patch has raised quite some interest throughout the industry.
Its clean design and consequent aim towards mainline integration makes it an interesting option for hard and firm realtime applications,
reaching from professional audio to industrial control.

Goals of RT kernel

Making in-kernel locking-primitives (using spinlocks) preemptible though reimplementation with rtmutexes:
Critical sections protected by i.e. spinlock_t and rwlock_t are now preemptible.
Implementing priority inheritance for in-kernel mutexes, spinlocks and rw_semaphores.
Converting interrupt handlers into preemptible kernel threads
Converting the old Linux timer API into separate infrastructures for high resolution kernel timers plus one for timeouts,
leading to userspace POSIX timers with high resolution.

Build RT kernel

To build RT kernel we need to update the kernel with Real time kernel patches.