From: Lennart Poettering Date: Fri, 24 Dec 2010 09:48:20 +0000 (+0100) Subject: pam: do not sort user sessions into their own cgroups in the 'cpu' hierarchy by default X-Git-Tag: v16~40 X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=commitdiff_plain;h=5e4ef5e0d2f53a143122a41f3990011b9a3bf628 pam: do not sort user sessions into their own cgroups in the 'cpu' hierarchy by default While this offers quite a few benefits for normally scheduled processes this breaks RT scheduling for all user processes, since we do not assign an RT share to the cgroups created via this mechanism. If the user cgroups have no RT share assigned no member process can make use of RT functionality. However, software like JACK and PA/rtkit assume that RT is available in some way or another, either via RLIMIT_RTPRIO or via some privileged service. Creating implicit cpu cgroups but not adding RT shares to them hence breaks these applications. There is no sane way to implicitly add RT shares to these groups, since they are pulled from a global, limited pool and it would hence be very hard to make this work without limiting the number of concurrent sessions, or constantly rewriting the cpu share settings of already logged in session cgroups. Most likely this issue needs to be fixed in-kernel because we can enable this feature by default again. --- diff --git a/src/pam-module.c b/src/pam-module.c index 54a7b451e..6fbaecf51 100644 --- a/src/pam-module.c +++ b/src/pam-module.c @@ -102,6 +102,7 @@ static int parse_argv(pam_handle_t *handle, } } +#if 0 if (!controller_set && controllers) { char **l; @@ -112,6 +113,7 @@ static int parse_argv(pam_handle_t *handle, *controllers = l; } +#endif if (controllers) strv_remove(*controllers, "name=systemd");