Skip to main content

IBM Israel Research Seminars

 

Traditionally, realtime response has been designed into operating systems offering it. Retrofitting hard realtime response into an existing general-purpose OS is not impossible, but is quite difficult: all non-preemptive code paths in the OS must have deterministic execution time. Realtime capabilities are nonetheless being added to Linux: the preemptible-kernel facility added to the 2.6 kernel enables surprisingly good soft realtime, and Ingo Molnar's CONFIG_PREEMPT_RT patch is producing amazing results: 1-microsecond average scheduling latency with 20-microsecond measured maximum latency. This is still soft realtime, but it is good enough for all but the most demanding applications. Other approaches have been proposed, and are summarized in this talk.

The advent of aggressively multithreaded CPUs and multi-core dies brings a new challenge: can Linux offer realtime response on multiprocessor systems? In the past, one obstacle to realtime response on SMP systems has been RCU, which disables preemption throughout read-side critical sections. In addition, RCU's deferral of freeing can cause problems for memory-constrained systems.

This talk describes some novel implementations of RCU that address these problems while still permitting reasonable performance and scalability.