This isn't a particularly important question; I'm just a grad student in real-time research so I like learning about what gets used in practice. Thanks!
This isn't a particularly important question; I'm just a grad student in real-time research so I like learning about what gets used in practice. Thanks!
https://wiki.linuxfoundation.org/realtime/start
It contains patches to get latencies down and touches numerous subsystems of the kernel. Most importantly, interrupt handlers become preemptible. (Normally interrupts are executed in "atomic context", i.e. they cannot be preempted. This also means e.g. that you can't sleep in an interrupt handler because the timer interrupt is disregarded. With PREEMPT_RT_FULL, interrupts are executed in "process context", i.e. as normal kernel threads which can be interrupted.)
We use the kernel branch of the Foundation (which contains a ton of patches required for hardware support of the Raspberry Pi), cherry-pick the realtime patch set on top, then apply three custom patches, one is a fix to make the USB driver's interrupt handler preemptible. The result is this branch: