Speakers
Description
Realtimers know: Resource configuration for RT enabled systems is key. RT applications rely on a proper system configuration and expect this configuration to stay unmodified as long as the application is alive.
As it turned out, Linux might silently reconfigure IRQ affinities of network adapters in a way that violates the expected system configuration. While we run into this kind of problem in the area of networking first, the
problem seems generic to all kind of "multi queue devices".
We ended up having two problematic situations:
- RT applications (partially) breaking out of their previously requested system configuration as Linux ignores previously requested affinities during reconfiguration
- non RT applications polluting isolated (RT) CPU cores via IRQs
And there is even more flexibility on the horizon already: The proper system
configuration might not be known at boot time. Using container runtimes for the deployment of RT applications requires an adaptive resource management that might change IRQ affinities at runtime.
In this session we will showcase a couple of shortcomings related to resource management in the networking area. Starting with how network drivers are
violating CPU isolation by implementing IRQ spreading, we want to discuss
- How do we close the gap between cgroups (cpuset controller) and the IRQ core?
- How should we adjust all the affected drivers to honor the cgroup configuration?
- What APIs are necessary to get there?