sched(7): Mention autogroup disabled behavior.
Resolves: RHEL-101363
This commit is contained in:
parent
9866ec28fd
commit
6928746c0d
74
0000-sched.7-Clarifications-corrections.patch
Normal file
74
0000-sched.7-Clarifications-corrections.patch
Normal file
@ -0,0 +1,74 @@
|
||||
commit ca69daf45f94fda061f796efcc4f24ca76d8e380
|
||||
Author: Phil Auld <pauld@redhat.com>
|
||||
Date: Thu Jan 16 14:37:47 2025 +0000
|
||||
|
||||
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.
|
||||
|
||||
Cc: Carlos O'Donell <codonell@redhat.com>
|
||||
Signed-off-by: Phil Auld <pauld@redhat.com>
|
||||
Message-ID: <20250116143747.2366152-1-pauld@redhat.com>
|
||||
Signed-off-by: Alejandro Colomar <alx@kernel.org>
|
||||
|
||||
diff --git a/man7/sched.7 b/man/man7/sched.7
|
||||
index 71f098e48..fb8a69918 100644
|
||||
--- a/man7/sched.7
|
||||
+++ b/man7/sched.7
|
||||
@@ -724,6 +724,11 @@ 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
|
||||
+.IR /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
|
@ -61,6 +61,7 @@ Patch23: 0000-ctime.3-Document-how-to-check-errors-from-mktime.patch
|
||||
Patch24: 0001-ctime.3-Move-NOTES-to-a-subsection-within-CAVEATS.patch
|
||||
Patch25: 0002-ctime.3-CAVEATS-Add-note-about-tm_isdst-handling-in-.patch
|
||||
Patch26: 0003-ctime.3-EXAMPLES-Document-how-to-detect-invalid-or-ambiguous-times.patch
|
||||
Patch27: 0000-sched.7-Clarifications-corrections.patch
|
||||
|
||||
%description
|
||||
A large collection of manual pages from the Linux Documentation Project (LDP).
|
||||
@ -74,6 +75,7 @@ A large collection of manual pages from the Linux Documentation Project (LDP).
|
||||
%patch -p1 -P 24
|
||||
%patch -p1 -P 25
|
||||
%patch -p1 -P 26
|
||||
%patch -p1 -P 27
|
||||
|
||||
## Remove man pages we are not going to use ##
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user