[<prev] [next>] [day] [month] [year] [list]
Message-ID: <20250116143747.2366152-1-pauld@redhat.com>
Date: Thu, 16 Jan 2025 14:37:47 +0000
From: Phil Auld <pauld@...hat.com>
To: Alejandro Colomar <alx@...nel.org>
Cc: linux-man@...r.kernel.org,
linux-kernel@...r.kernel.org,
Carlos O'Donell <codonell@...hat.com>
Subject: [PATCH v2] man/man7/sched.7: Mention autogroup disabled behavior
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@...hat.com>
Cc: Alejandro Colomar <alx@...nel.org>
Cc: <linux-man@...r.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
Powered by blists - more mailing lists