CHRT
Section: User Commands (1)
Updated: 202-0-04
Index
Return to Main Contents
NAME
chrt - manipulate the real-time attributes of a process
SYNOPSIS
chrt [options] [priority] command [argument...]
chrt --pid [options] [priority] PID
DESCRIPTION
chrt sets or retrieves the real-time scheduling attributes of an existing PID, or runs command with the given attributes.
POLICY OPTIONS
-o, --other
-
Set scheduling policy to SCHED_OTHER (time-sharing scheduling). This is the default Linux scheduling policy. Since util-linux v2.42, the priority argument is optional; if specified, it must be set to zero.
-f, --fifo
-
Set scheduling policy to SCHED_FIFO (first in-first out).
-r, --rr
-
Set scheduling policy to SCHED_RR (round-robin scheduling). When no policy is defined, the SCHED_RR is used as the default.
-b, --batch
-
Set scheduling policy to SCHED_BATCH (scheduling batch processes). Linux-specific, supported since 2.6.16. Since util-linux v2.42, the priority argument is optional; if specified, it must be set to zero.
-i, --idle
-
Set scheduling policy to SCHED_IDLE (scheduling very low priority jobs). Linux-specific, supported since 2.6.23. Since util-linux v2.42, the priority argument is optional; if specified, it must be set to zero.
-d, --deadline
-
Set scheduling policy to SCHED_DEADLINE (sporadic task model deadline scheduling). Linux-specific, supported since 3.14. Since util-linux v2.42, the priority argument is optional; if specified, it must be set to zero. See also --sched-runtime, --sched-deadline and --sched-period. The relation between the options required by the kernel is runtime lA deadline lA period. chrt copies period to deadline if --sched-deadline is not specified and deadline to runtime if --sched-runtime is not specified. It means that at least --sched-period has to be specified. See sched(7) for more details.
-e, --ext
-
Set scheduling policy to SCHED_EXT (BPF program-defined scheduling). Linux-specific, supported since 6.12. Since util-linux v2.42, the priority argument is optional; if specified, it must be set to zero.
Note that for the policy to be recognized, the following kernel configuration options need to be enabled: CONFIG_BPF, CONFIG_SCHED_CLASS_EXT, CONFIG_BPF_SYSCALL, CONFIG_BPF_JIT, CONFIG_DEBUG_INFO_BTF, CONFIG_BPF_JIT_ALWAYS_ON and CONFIG_BPF_JIT_DEFAULT_ON.
SCHEDULING OPTIONS
-T, --sched-runtime nanoseconds
-
Specifies runtime parameter for SCHED_DEADLINE and custom slice length for SCHED_OTHER and SCHED_BATCH policies (Linux-specific). Note that custom slice length via the runtime parameter is supported since Linux 6.12.
-P, --sched-period nanoseconds
-
Specifies period parameter for SCHED_DEADLINE policy (Linux-specific). Note that the kernelcqs lower limit is 100 microseconds.
-D, --sched-deadline nanoseconds
-
Specifies deadline parameter for SCHED_DEADLINE policy (Linux-specific).
-R, --reset-on-fork
-
Use SCHED_RESET_ON_FORK or SCHED_FLAG_RESET_ON_FORK flag. Linux-specific, supported since 2.6.31.
Each thread has a reset-on-fork scheduling flag. When this flag is set, children created by fork(2) do not inherit privileged scheduling policies. After the reset-on-fork flag has been enabled, it can be reset only if the thread has the CAP_SYS_NICE capability. This flag is disabled in child processes created by fork(2).
More precisely, if the reset-on-fork flag is set, the following rules apply for subsequently created children:
-
*
If the calling thread has a scheduling policy of SCHED_FIFO or SCHED_RR, the policy is reset to SCHED_OTHER in child processes.
-
*
If the calling process has a negative nice value, the nice value is reset to zero in child processes.
OPTIONS
-a, --all-tasks
-
Set or retrieve the scheduling attributes of all the tasks (threads) for a given PID.
-m, --max
-
Show minimum and maximum valid priorities, then exit.
-p, --pid
-
Operate on an existing PID and do not launch a new task.
-v, --verbose
-
Show status information.
-h, --help
-
Display help text and exit.
-V, --version
-
Display version and exit.
EXAMPLES
The default behavior is to run a new command:
-
-
chrt priority command [arguments]
You can also retrieve the real-time attributes of an existing task:
-
-
chrt --pid PID
Or set them:
-
-
chrt --pid policy-option priority PID
For example, to set the scheduling policy to SCHED_RR (round-robin) and the priority to 30 for process 1234:
-
-
chrt --pid -r 30 1234
Reset priorities to default for a process:
-
-
chrt --pid -o 0 PID
Set a custom slice of 1 ms for a SCHED_OTHER task (priority is optional for policies other than SCHED_FIFO and SCHED_RR):
-
-
chrt --pid -o -T 1000000 PID
See sched(7) for a detailed discussion of the different scheduler classes and how they interact.
PERMISSIONS
A user must possess CAP_SYS_NICE to change the scheduling attributes of a process. Any user can retrieve the scheduling information.
NOTES
Only SCHED_FIFO, SCHED_OTHER and SCHED_RR are part of POSIX 1003.1b Process Scheduling. The other scheduling attributes may be ignored on some systems.
Linux' default scheduling policy is SCHED_OTHER.
AUTHORS
SEE ALSO
nice(1),
renice(1),
taskset(1),
sched(7)
See sched_setscheduler(2) for a description of the Linux scheduling scheme.
REPORTING BUGS
For bug reports, use the
https://github.com/uti-linux/uti-linux/issues <L>issue tracker
AVAILABILITY
The chrt command is part of the util-linux package which can be downloaded from
https://www.kernel.org/pub/linux/utils/uti-linux/ <L>Linux Kernel Archive
Index
- NAME
-
- SYNOPSIS
-
- DESCRIPTION
-
- POLICY OPTIONS
-
- SCHEDULING OPTIONS
-
- OPTIONS
-
- EXAMPLES
-
- PERMISSIONS
-
- NOTES
-
- AUTHORS
-
- SEE ALSO
-
- REPORTING BUGS
-
- AVAILABILITY
-