1
0
Fork 0
util-linux/schedutils/coresched.1.adoc
Daniel Baumann c36e531662
Adding upstream version 2.41.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
2025-06-21 11:26:35 +02:00

135 lines
4.2 KiB
Text

//po4a: entry man manual
////
coresched(1) manpage
////
= coresched(1)
:doctype: manpage
:man manual: User Commands
:man source: util-linux {release-version}
:page-layout: base
:command: coresched
:colon: :
:copyright: ©
== NAME
coresched - manage core scheduling cookies for tasks
== SYNOPSIS
*{command}* [*get*] [*-s* _pid_]
*{command}* *new* [*-t* _type_] *-d* _pid_
*{command}* *new* [*-t* _type_] \-- _command_ [_argument_...]
*{command}* *copy* [*-s* _pid_] [*-t* _type_] *-d* _pid_
*{command}* *copy* [*-s* _pid_] [*-t* _type_] \-- _command_ [_argument_...]
== DESCRIPTION
The *{command}* command is used to retrieve or modify the core scheduling cookies of a running process given its _pid_, or to spawn a new _command_ with core scheduling cookies.
Core scheduling permits the definition of groups of tasks that are allowed to share a physical core.
This is done by assigning a cookie to each task.
Only tasks have the same cookie are allowed to be scheduled on the same physical core.
It is possible to either assign a new random cookie to a task, or copy a cookie from another task. It is not possible to choose the value of the cookie.
== FUNCTIONS
*get*::
Retrieve the core scheduling cookie of the PID specified in *-s*.
If *-s* is omitted, it will get the cookie of the current *{command}* process.
*new*::
Assign a new cookie to an existing PID specified in *-d*, or execute _command_ with a new cookie.
*copy*::
Copy the cookie from an existing PID (*-s*) to another PID (*-d*), or execute _command_ with that cookie.
If *-s* is omitted, it will get the cookie of the current *{command}* process.
If no function is specified, it will run the *get* function.
== OPTIONS
*-s*, *--source* _PID_::
Which _PID_ to get the cookie from.
If this option is omitted, it will get the cookie from the current *{command}* process.
*-d*, *--dest* _PID_::
Which _PID_ to modify the cookie of.
*-t*, *--dest-type* _TYPE_::
The type of the PID whose cookie will be modified. This can be one of three values:
- *pid*, or process ID
- *tgid*, or thread group ID (default value)
- *pgid*, or process group ID
*-v*, *--verbose*::
Show extra information when modifying cookies of tasks.
include::man-common/help-version.adoc[]
== EXAMPLES
Get the core scheduling cookie of the {command} task itself, usually inherited from its parent{colon}::
*{command} get*
Get the core scheduling cookie of a task with PID _123_{colon}::
*{command} get -s* _123_
Give a task with PID _123_ a new core scheduling cookie{colon}::
*{command} new -d* _123_
Spawn a new task with a new core scheduling cookie{colon}::
*{command} new* \-- _command_ [_argument_...]
Copy the cookie from the current {command} process another task with pid _456_{colon}::
*{command} copy -d* _456_
Copy the cookie from a task with pid _123_ to another task with pid _456_{colon}::
*{command} copy -s* _123_ *-d* _456_
Copy the cookie from a task with pid _123_ to a new task _command_{colon}::
*{command} copy -s* _123_ \-- _command_ [_argument_...]
Copy the cookie from a task with pid _123_ to the process group ID _456_{colon}::
*{command} copy -s* _123_ *-t* _pgid_ *-d* _456_
== PERMISSIONS
Retrieving or modifying the core scheduling cookie of a process requires *PTRACE_MODE_READ_REALCREDS* ptrace access to that process.
See the section "Ptrace access mode checking" in *ptrace*(2) for more information.
== RETURN VALUE
On success, *{command}* returns 0.
If *{command}* fails, it will print an error and return 1.
If a _command_ is being executed, the return value of *{command}* will be the return value of _command_.
== NOTES
*{command}* requires core scheduling support in the kernel.
This can be enabled via the *CONFIG_SCHED_CORE* kernel config option.
== AUTHORS
mailto:thijs@raymakers.nl[Thijs Raymakers],
mailto:pauld@redhat.com[Phil Auld]
== COPYRIGHT
Copyright {copyright} 2024 Thijs Raymakers and Phil Auld. This is free software licensed under the EUPL.
== SEE ALSO
*chrt*(1),
*nice*(1),
*renice*(1),
*taskset*(1),
*ptrace*(2),
*sched*(7)
The Linux kernel source files _Documentation/admin-guide/hw-vuln/core-scheduling.rst_
include::man-common/bugreports.adoc[]
include::man-common/footer.adoc[]
ifdef::translation[]
include::man-common/translation.adoc[]
endif::[]