Re: [RFC PATCH v5 20/29] sched/deadline: Allow deeper hierarchies of RT cgroups
From: Yuri Andriaccio
Date: Tue May 12 2026 - 13:39:48 EST
Hello,
I've been thinking and experimenting with some of the ideas for the rt controller, and I've come up with the following interface, keeping everything in the standard cpu controller:
- cpu.rt.max <runtime_us> <period_us>
Sets the bandwidth reserved to the hierarchy that has that specific cgroup as root, but does
not set any deadline servers.
The default value for this file is '0 0'.
- cpu.rt.min <runtime_us | 'root'> <period_us>
If the runtime part is equal to 'root', the tasks are scheduled on the root runqueue.
If the runtime is equal to zero, no FIFO/RR tasks can be scheduled.
If the runtime is > zero, FIFO/RR tasks are scheduled under reservation/HCBS.
This file is not available in the root cgroup, as it does not make use of dl-servers,
rather only reserves the total bandwidth for the hierarchy.
The default value for this file is 'root 0', meaning that tasks in this cgroups are
by default scheduled on the root runqueue.
Of course you can imagine that all the admission tests have been updated accordingly, as an example a cgroups rt.max bw must be >= than the sum of the rt.max bws of its children + its rt.min bw. I'm also skipping some details which are only meaningful if we decide to adopt this solution.
What do you think of this interface?
Thanks,
Yuri