[systemd-devel] No cgroups in cpu,cpuacct despite autogrouping

Lennart Poettering lennart at poettering.net
Fri May 22 04:43:27 PDT 2015


On Fri, 22.05.15 12:41, Jan Engelhardt (jengelh at inai.de) wrote:

> 
> In my kernel, there is CONFIG_SCHED_AUTOGROUP=y set. I believe that since
> systemd is capable of, and is doing grouping on its own, the kernel option has
> no effect. This seems reflected in /sys/fs/cgroups/cpu,cpuacct having
> no subdirectories:

AFAIK autogroup was never reflected in the cgroup tree. 

> 
> 12:34 ares40:../cgroup/cpu,cpuacct > ls -Fax
> ./                   ../                  cgroup.clone_children cgroup.procs
> cgroup.sane_behavior cpu.cfs_period_us    cpu.cfs_quota_us      cpu.rt_period_us
> cpu.rt_runtime_us    cpu.shares           cpu.stat              cpuacct.stat
> cpuacct.usage        cpuacct.usage_percpu notify_on_release     release_agent
> tasks
> 
> 
> As a result of this, all processes get equal shares, rather than all
> SID groups getting equal shares, causing BOINC to outmonopolize VirtualBox:
> 
> 
> /$ systemd-cgls
> ├─1 /usr/lib/systemd/systemd --switched-root --system --deserialize 20
> [...]
> └─user.slice
>   └─user-25121.slice
>     ├─session-3.scope
>     │ ├─  376 ../../projects/boinc.fzk.de_poem/poempp_2.21_x86_64-pc-linux-gn...
>     │ ├─ 2200 ../../projects/boinc.fzk.de_poem/poempp_2.21_x86_64-pc-linux-gn...
>     │ ├─ 2578 ../../projects/boinc.fzk.de_poem/poempp_2.21_x86_64-pc-linux-gn...
>     │ ├─ 2826 ../../projects/boinc.fzk.de_poem/poempp_2.21_x86_64-pc-linux-gn...
>     │ ├─ 3162 ../../projects/boinc.fzk.de_poem/poempp_2.21_x86_64-pc-linux-gn...
>     │ ├─ 3697 SCREEN
>     │ ├─ 3698 -/bin/bash
>     │ ├─ 6070 ../../projects/boinc.fzk.de_poem/poempp_2.21_x86_64-pc-linux-gn...
>     │ ├─ 6554 ../../projects/boinc.fzk.de_poem/poempp_2.21_x86_64-pc-linux-gn...
>     │ ├─14171 /usr/lib/virtualbox/VBoxXPCOMIPCD
>     │ ├─14176 /usr/lib/virtualbox/VBoxSVC --auto-shutdown
>     │ ├─14255 /usr/lib/virtualbox/VBoxNetDHCP --ip-address 192.168.100.100 --...
>     │ ├─25859 boinc
>     │ └─30167 ../../projects/boinc.fzk.de_poem/poempp_2.21_x86_64-pc-linux-gn...
> 
> 
> How would one re-enable the SID-style cpuacct grouping with systemd?

Quite frankly I have no idea how the "cpu" controller hierarchy
interacts with autogrouping. 

For normal system services you can ask systemd however to move things
into the "cpu" hierarchy, so that explicit groups are created in
/sys/fs/cgroup/cpu. Do this via "systemctl set-property foobar.service
CPUShares=1500".

But if i see that correctly, your two services are not actually system
services, but session processes. And to that I can only say: this is
simply not supported in systemd and the kernel: since cgroupfs
controller access is security sensitive unprivileged processes will
not get access to anything but the name=systemd cgroup hierarchy, and
hence cannot managed their own set of CPUShares= currently.

Sorry,

Lennart

-- 
Lennart Poettering, Red Hat


More information about the systemd-devel mailing list