Topics Overview for PREEMPT_RT mainlining
This page lists all the topics that need to be handled to get
PREEMPT_RT mainlined since the RTL collaborative project started. The
main reason for these changes is to simplify RT interaction and
integration. The topics are split into different types. In addition
to the topics listed, testing, documentation, and LTS kernel support for
the PREEMPT_RT patch have to be done continuously.
Changes to current kernel functionality
The CPU hotplug code needs an overhaul in general - Done
Some of the existing timer infrastructure needs to be rewritten - Mostly done.
Pagefault disable/enable handling (the kernel pagefault disable/enable mechanism is not RT compatible. Rework it to fit RT) - Done
Extensions to current kernel functionality
kmap infrastructure – adaption to make it RT compatible - Done
Additional annotation mechanisms are necessary which allow RT to substitute functionality. (Such annotations are useful in general even for non-RT as they add value by making the code clearer and the scope of functionality documented) - Done.
Extending debug infrastructure, e.g. lockdep to handle the new lock types. - Mostly done.
Redesigning RT components
Make use of the new annotation mechanisms
Soft interrupt handling – structure must be adopted to be RT compatible. Work is done. A fain grain locking is work in progress.
Reader/writer lock handling - they are not scalable on RT. Find a scalable solution. A rework is done with multiple reader. Only the writer gets a PI boost.
Hotplug interaction – find a proper solution able to be compatible with RT requirements - Solved
Timer interaction – rework the kernel architecture to be compatible with RT requirements - Done.
More palatable approach to RT friendly memory management - develop an upstream acceptable solution for the RT requirements. Done.
Various details which do not fit into any of the above categories, but need to be addressed to make RT upstream acceptable
Documentation