135 lines
4.2 KiB
Text
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::[]
|