public inbox for linux-man@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH v2] man/man7/sched.7: Mention autogroup disabled behavior
@ 2025-01-16 14:37 Phil Auld
  2025-02-02 13:02 ` Alejandro Colomar
  0 siblings, 1 reply; 3+ messages in thread
From: Phil Auld @ 2025-01-16 14:37 UTC (permalink / raw)
  To: Alejandro Colomar; +Cc: linux-man, linux-kernel, Carlos O'Donell

The autogroup feature can be contolled at runtime when
built into the kernel. Disabling it in this case still
creates autogroups and still shows the autogroup membership
for the task in /proc.  The scheduler code will just not
use the the autogroup task group.  This can be confusing
to users. Add a sentence to this effect to sched.7 to
point this out.

The kernel code shows how this is used. The
sched_autogroup_enabled toggle is only used in one place.

kernel/sched/autogroup.h:

static inline struct task_group *
autogroup_task_group(struct task_struct *p, struct task_group *tg)
{
        extern unsigned int sysctl_sched_autogroup_enabled;
        int enabled = READ_ONCE(sysctl_sched_autogroup_enabled);

        if (enabled && task_wants_autogroup(p, tg))
                return p->signal->autogroup->tg;

        return tg;
}

task_wants_autogroup() is in kernel/sched/autogroup.c:

bool task_wants_autogroup(struct task_struct *p, struct task_group *tg)
{
        if (tg != &root_task_group)
                return false;
    ...

        return true;
}

One can see that any group set other than root also bypasses the use of
the autogroup.

All of the machinery around the creation of the autogroup is not
effected by the toggle.

From userspace:
0
/autogroup-112 nice 0

Note, systemd based system these days is not really using autogroups at all
anyway because any task in a non-root cgroup bypasses the autogroup as
well.

Signed-off-by: Phil Auld <pauld@redhat.com>
Cc: Alejandro Colomar <alx@kernel.org>
Cc: <linux-man@vger.kernel.org>
---
 man/man7/sched.7 | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/man/man7/sched.7 b/man/man7/sched.7
index 71f098e48..f0a708cd7 100644
--- a/man/man7/sched.7
+++ b/man/man7/sched.7
@@ -724,6 +724,8 @@ in the group terminates.
 .P
 When autogrouping is enabled, all of the members of an autogroup
 are placed in the same kernel scheduler "task group".
+When disabled the group creation happens as above, and autogroup membership
+is still visible in /proc, but the autogroups are not used.
 The CFS scheduler employs an algorithm that equalizes the
 distribution of CPU cycles across task groups.
 The benefits of this for interactive desktop performance
-- 
2.47.1


^ permalink raw reply related	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2025-02-04 16:35 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-01-16 14:37 [PATCH v2] man/man7/sched.7: Mention autogroup disabled behavior Phil Auld
2025-02-02 13:02 ` Alejandro Colomar
2025-02-04 16:35   ` Phil Auld

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox