Ah, não é o recurso systemd-logind em que cada usuário recebe seu próprio cgroup. Eu acho que a mudança responsável aqui é mais antiga; eles são apenas confusamente semelhantes. (Eu procurei por "process group fair scheduling", pensando que poderia ser algo baseado nos "grupos de processos" do unix que eu realmente nunca entendi). Wikipédia:
The Linux kernel received a patch for CFS in November 2010 for the 2.6.38 kernel that has made the scheduler fairer for use on desktops and workstations.
When a task calls __proc_set_tty(), the process wide reference to the default group is dropped, a new task group is created, and the process is moved into the new task group. Children thereafter inherit this task group, and increase its refcount. On exit, a reference to the current task group is dropped when the last reference to each signal struct is dropped. The task group is destroyed when the last signal struct referencing it is freed. At runqueue selection time, IFF a task has no cgroup assignment, its current autogroup is used.
The feature is enabled from boot by default if CONFIG_SCHED_AUTOGROUP is selected, but can be disabled via the boot option noautogroup, and can be also be turned on/off on the fly [via
/proc/sys/kernel/sched_autogroup_enabled
: Writing0
there disables it for newly created tasks, writing1
enables it.]The primary issues solved by this are for multi-core as well as multi-cpu (SMP) systems experiencing increased interactive response times while performing other tasks that use many threads in those tasks. A simple explanation is that one will be able to still watch a video, read email and perform other typical desktop activities without glitches or choppiness while compiling the Linux kernel or a similar process such as encoding video. However, there are objections to this statement.