[systemd-devel] [ANNOUNCE] systemd 205

Lennart Poettering lennart at poettering.net
Fri Jul 5 08:14:11 PDT 2013

On Wed, 03.07.13 19:22, Cristian Rodríguez (crrodriguez at opensuse.org) wrote:

> El 03/07/13 12:44, Lennart Poettering escribió:
> >         * As discussed earlier, the low-level cgroup configuration
> >           options ControlGroup=, ControlGroupModify=,
> >           ControlGroupPersistent=, ControlGroupAttribute= have been
> >           removed. Please use high-level attribute settings instead as
> >           well as slice units.
> Among other things, the rtkit daemon needs updating then, the unit
> file uses ControlGroup=cpu:/

Yeah, this certainly needs fixing, but honestly I don't even know how to
do this best. Handling of RT budgets with the current kernel cgroup
logic is just totally broken.

The problem is this: if we add a unit to a cgroup in "cpu" (which we
want to do by default), then we need to assign a fixed RT budget to it
too -- if it actually wants to use RT scheduling the way rtkit does. But
if we do that, then we need to assign an RT budget for the parent cgroup
rtkit itself is in, too. Since the values are absolute, and need to add
up we don't really know what to assign there though.

Previously we simply configured rtkit to not get a cgroup in the "cpu"
hierarchy. But that's actually really awful too, since then it will get
the same amount of CPU as everybody else on the same cgroup tree level
gets for their entire services, which is seriously skewed.

Maybe we should just say that systems.slice gets 30% of the RT
budget, and user.slice gets another 50%, and then rtkit gets 5% of
system.slice's budget, and that's it. Arbitrary values, but we need to
set something.

God, I hate the progation rules of cgroups...


Lennart Poettering - Red Hat, Inc.

More information about the systemd-devel mailing list