[systemd-devel] Real-time permission affected by root login on other tty

Lennart Poettering lennart at poettering.net
Sun Mar 8 15:27:49 PDT 2015


On Sat, 07.03.15 20:04, Lars Christensen (larsch at belunktum.dk) wrote:

> With systemd 218 and 219, I have a strange issue that processes running as
> root cannot acquire realtime priority (SCHED_RR, priority 22). Further, if
> (and only if) root is logged in (via tty or ssh), users processes can also
> not acquire realtime priority. If root is NOT logged in, user processes CAN
> acquire real time priority(!).

Most likely you have RT cgroup scheduling enabled in the kernel, and
some unit uses CPUShares=, CPUAccounting=, CPUQuota*= in the unit
file. If a unit does that this will move the unit's cgroup into the
"cpu" cgroup controller, as well as all its parent and sibling cgroups
(and thus units). 

When a process is in a cgroup in the "cpu" controller, and no RT
budget is set for that cgroup, then RT is not available to it. This is
very unfortunate. I'd love to assign an RT budget by default from
systmed, but this isn't really doable, since there's no sane RT budget
one could assign a cgroup given the current semantics of it (which
require that all RT budgets of cgroups within another cgroup must sum
up to less than 1/1...).

THis is something that needs to be cleaned up in the kernel, and then
we can expose this nicer in systemd. For now, my recommendation would
be to disable the RT cgroup stuff in the kernel, and thus forego the
whole problem.

Lennart

-- 
Lennart Poettering, Red Hat


More information about the systemd-devel mailing list