User Tools

Site Tools


Current Topics for PREEMPT_RT mainlining

The real time developer team is currently working on the following topics that change current kernel functionality:

  • CPU hotplug overhaul: The rework is completed and for the first time since RT started CPU hotplug locking survives stress testing. But we are still addressing the fallout of the hotplug locking changes in mainline, which is fixing lock ordering bugs unearthed by the newly added lockdep coverage of the hotplug lock and the recent addition of completion dependencies.
  • Timer infrastructure: The timer rework part one is done and NOHZ works in Linux-4.8-rt and later. There is still work in progress to address the scalability issues in the timer enqueue path which tries to predict the best CPU placement for a newly added timer. Initial patch series posted, but it has testing failures and review comments need to be addressed.
  • hrtimer rework: Replace the problematic conversion of hrtimers to expire in softirq context. The current implementation in RT is a left over from the early hrtimer implementation and needs to be cleaned up. Patches have been posted and reviewed. The integration into RT has shown some bugs, which are currently analyzed.
  • dcache locking: The dcache code contains trylock loops which can lead to live locks on RT. There is a ugly and performance wise horrible workaround in RT which needs to be replaced. So far all attempts to solve this cleanly have failed. More hours on the drawing board are required.
  • migrate disable: Still under discussion with the upstream scheduler maintainers
  • interaction with the memory management code: Patches are in preparation to be posted soon

In addition to the actual development work, the following topics have to be considered:

  • Testing
  • Documentation
  • Longtime Stable Support of the PREEMPT_RT patch

An overview of all the topics that have to be completed for mainlining PREEMPT_RT is given here.

realtime/rtl/current_topics.txt · Last modified: 2017/10/05 20:20 by tglx