diff options
Diffstat (limited to '')
-rw-r--r-- | templates/man7/sched.7.pot | 1578 |
1 files changed, 1578 insertions, 0 deletions
diff --git a/templates/man7/sched.7.pot b/templates/man7/sched.7.pot new file mode 100644 index 00000000..3a55acaa --- /dev/null +++ b/templates/man7/sched.7.pot @@ -0,0 +1,1578 @@ +# SOME DESCRIPTIVE TITLE +# Copyright (C) YEAR Free Software Foundation, Inc. +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"POT-Creation-Date: 2024-03-01 17:07+0100\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" +"Language-Team: LANGUAGE <LL@li.org>\n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#. type: TH +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "sched" +msgstr "" + +#. type: TH +#: archlinux fedora-40 fedora-rawhide mageia-cauldron +#, no-wrap +msgid "2023-10-31" +msgstr "" + +#. type: TH +#: archlinux fedora-40 fedora-rawhide mageia-cauldron +#, no-wrap +msgid "Linux man-pages 6.06" +msgstr "" + +#. type: SH +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "NAME" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "sched - overview of CPU scheduling" +msgstr "" + +#. type: SH +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "DESCRIPTION" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"Since Linux 2.6.23, the default scheduler is CFS, the \"Completely Fair " +"Scheduler\". The CFS scheduler replaced the earlier \"O(1)\" scheduler." +msgstr "" + +#. type: SS +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "API summary" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"Linux provides the following system calls for controlling the CPU scheduling " +"behavior, policy, and priority of processes (or, more precisely, threads)." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "B<nice>(2)" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"Set a new nice value for the calling thread, and return the new nice value." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "B<getpriority>(2)" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"Return the nice value of a thread, a process group, or the set of threads " +"owned by a specified user." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "B<setpriority>(2)" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"Set the nice value of a thread, a process group, or the set of threads owned " +"by a specified user." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "B<sched_setscheduler>(2)" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "Set the scheduling policy and parameters of a specified thread." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "B<sched_getscheduler>(2)" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "Return the scheduling policy of a specified thread." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "B<sched_setparam>(2)" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "Set the scheduling parameters of a specified thread." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "B<sched_getparam>(2)" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "Fetch the scheduling parameters of a specified thread." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "B<sched_get_priority_max>(2)" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "Return the maximum priority available in a specified scheduling policy." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "B<sched_get_priority_min>(2)" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "Return the minimum priority available in a specified scheduling policy." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "B<sched_rr_get_interval>(2)" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"Fetch the quantum used for threads that are scheduled under the \"round-" +"robin\" scheduling policy." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "B<sched_yield>(2)" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"Cause the caller to relinquish the CPU, so that some other thread be " +"executed." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "B<sched_setaffinity>(2)" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "(Linux-specific) Set the CPU affinity of a specified thread." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "B<sched_getaffinity>(2)" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "(Linux-specific) Get the CPU affinity of a specified thread." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "B<sched_setattr>(2)" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"Set the scheduling policy and parameters of a specified thread. This (Linux-" +"specific) system call provides a superset of the functionality of " +"B<sched_setscheduler>(2) and B<sched_setparam>(2)." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "B<sched_getattr>(2)" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"Fetch the scheduling policy and parameters of a specified thread. This " +"(Linux-specific) system call provides a superset of the functionality of " +"B<sched_getscheduler>(2) and B<sched_getparam>(2)." +msgstr "" + +#. type: SS +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "Scheduling policies" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"The scheduler is the kernel component that decides which runnable thread " +"will be executed by the CPU next. Each thread has an associated scheduling " +"policy and a I<static> scheduling priority, I<sched_priority>. The " +"scheduler makes its decisions based on knowledge of the scheduling policy " +"and static priority of all threads on the system." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"For threads scheduled under one of the normal scheduling policies " +"(B<SCHED_OTHER>, B<SCHED_IDLE>, B<SCHED_BATCH>), I<sched_priority> is not " +"used in scheduling decisions (it must be specified as 0)." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"Processes scheduled under one of the real-time policies (B<SCHED_FIFO>, " +"B<SCHED_RR>) have a I<sched_priority> value in the range 1 (low) to 99 " +"(high). (As the numbers imply, real-time threads always have higher " +"priority than normal threads.) Note well: POSIX.1 requires an " +"implementation to support only a minimum 32 distinct priority levels for the " +"real-time policies, and some systems supply just this minimum. Portable " +"programs should use B<sched_get_priority_min>(2) and " +"B<sched_get_priority_max>(2) to find the range of priorities supported for " +"a particular policy." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"Conceptually, the scheduler maintains a list of runnable threads for each " +"possible I<sched_priority> value. In order to determine which thread runs " +"next, the scheduler looks for the nonempty list with the highest static " +"priority and selects the thread at the head of this list." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"A thread's scheduling policy determines where it will be inserted into the " +"list of threads with equal static priority and how it will move inside this " +"list." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"All scheduling is preemptive: if a thread with a higher static priority " +"becomes ready to run, the currently running thread will be preempted and " +"returned to the wait list for its static priority level. The scheduling " +"policy determines the ordering only within the list of runnable threads with " +"equal static priority." +msgstr "" + +#. type: SS +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "SCHED_FIFO: First in-first out scheduling" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"B<SCHED_FIFO> can be used only with static priorities higher than 0, which " +"means that when a B<SCHED_FIFO> thread becomes runnable, it will always " +"immediately preempt any currently running B<SCHED_OTHER>, B<SCHED_BATCH>, or " +"B<SCHED_IDLE> thread. B<SCHED_FIFO> is a simple scheduling algorithm " +"without time slicing. For threads scheduled under the B<SCHED_FIFO> policy, " +"the following rules apply:" +msgstr "" + +#. type: IP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "\\[bu]" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"A running B<SCHED_FIFO> thread that has been preempted by another thread of " +"higher priority will stay at the head of the list for its priority and will " +"resume execution as soon as all threads of higher priority are blocked again." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"When a blocked B<SCHED_FIFO> thread becomes runnable, it will be inserted at " +"the end of the list for its priority." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"If a call to B<sched_setscheduler>(2), B<sched_setparam>(2), " +"B<sched_setattr>(2), B<pthread_setschedparam>(3), or " +"B<pthread_setschedprio>(3) changes the priority of the running or runnable " +"B<SCHED_FIFO> thread identified by I<pid> the effect on the thread's " +"position in the list depends on the direction of the change to threads " +"priority:" +msgstr "" + +#. type: IP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "(a)" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"If the thread's priority is raised, it is placed at the end of the list for " +"its new priority. As a consequence, it may preempt a currently running " +"thread with the same priority." +msgstr "" + +#. type: IP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "(b)" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"If the thread's priority is unchanged, its position in the run list is " +"unchanged." +msgstr "" + +#. type: IP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "(c)" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"If the thread's priority is lowered, it is placed at the front of the list " +"for its new priority." +msgstr "" + +#. In Linux 2.2.x and Linux 2.4.x, the thread is placed at the front of the queue +#. In Linux 2.0.x, the Right Thing happened: the thread went to the back -- MTK +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"According to POSIX.1-2008, changes to a thread's priority (or policy) using " +"any mechanism other than B<pthread_setschedprio>(3) should result in the " +"thread being placed at the end of the list for its priority." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "A thread calling B<sched_yield>(2) will be put at the end of the list." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"No other events will move a thread scheduled under the B<SCHED_FIFO> policy " +"in the wait list of runnable threads with equal static priority." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"A B<SCHED_FIFO> thread runs until either it is blocked by an I/O request, it " +"is preempted by a higher priority thread, or it calls B<sched_yield>(2)." +msgstr "" + +#. type: SS +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "SCHED_RR: Round-robin scheduling" +msgstr "" + +#. On Linux 2.4, the length of the RR interval is influenced +#. by the process nice value -- MTK +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"B<SCHED_RR> is a simple enhancement of B<SCHED_FIFO>. Everything described " +"above for B<SCHED_FIFO> also applies to B<SCHED_RR>, except that each thread " +"is allowed to run only for a maximum time quantum. If a B<SCHED_RR> thread " +"has been running for a time period equal to or longer than the time quantum, " +"it will be put at the end of the list for its priority. A B<SCHED_RR> " +"thread that has been preempted by a higher priority thread and subsequently " +"resumes execution as a running thread will complete the unexpired portion of " +"its round-robin time quantum. The length of the time quantum can be " +"retrieved using B<sched_rr_get_interval>(2)." +msgstr "" + +#. type: SS +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "SCHED_DEADLINE: Sporadic task model deadline scheduling" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"Since Linux 3.14, Linux provides a deadline scheduling policy " +"(B<SCHED_DEADLINE>). This policy is currently implemented using GEDF " +"(Global Earliest Deadline First) in conjunction with CBS (Constant " +"Bandwidth Server). To set and fetch this policy and associated attributes, " +"one must use the Linux-specific B<sched_setattr>(2) and " +"B<sched_getattr>(2) system calls." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"A sporadic task is one that has a sequence of jobs, where each job is " +"activated at most once per period. Each job also has a I<relative " +"deadline>, before which it should finish execution, and a I<computation " +"time>, which is the CPU time necessary for executing the job. The moment " +"when a task wakes up because a new job has to be executed is called the " +"I<arrival time> (also referred to as the request time or release time). The " +"I<start time> is the time at which a task starts its execution. The " +"I<absolute deadline> is thus obtained by adding the relative deadline to the " +"arrival time." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "The following diagram clarifies these terms:" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "" +"arrival/wakeup absolute deadline\n" +" | start time |\n" +" | | |\n" +" v v v\n" +"-----x--------xooooooooooooooooo--------x--------x---\n" +" |E<lt>- comp. time -E<gt>|\n" +" |E<lt>------- relative deadline ------E<gt>|\n" +" |E<lt>-------------- period -------------------E<gt>|\n" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"When setting a B<SCHED_DEADLINE> policy for a thread using " +"B<sched_setattr>(2), one can specify three parameters: I<Runtime>, " +"I<Deadline>, and I<Period>. These parameters do not necessarily correspond " +"to the aforementioned terms: usual practice is to set Runtime to something " +"bigger than the average computation time (or worst-case execution time for " +"hard real-time tasks), Deadline to the relative deadline, and Period to the " +"period of the task. Thus, for B<SCHED_DEADLINE> scheduling, we have:" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "" +"arrival/wakeup absolute deadline\n" +" | start time |\n" +" | | |\n" +" v v v\n" +"-----x--------xooooooooooooooooo--------x--------x---\n" +" |E<lt>-- Runtime -------E<gt>|\n" +" |E<lt>----------- Deadline -----------E<gt>|\n" +" |E<lt>-------------- Period -------------------E<gt>|\n" +msgstr "" + +#. FIXME It looks as though specifying sched_period as 0 means +#. "make sched_period the same as sched_deadline". +#. This needs to be documented. +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"The three deadline-scheduling parameters correspond to the I<sched_runtime>, " +"I<sched_deadline>, and I<sched_period> fields of the I<sched_attr> " +"structure; see B<sched_setattr>(2). These fields express values in " +"nanoseconds. If I<sched_period> is specified as 0, then it is made the same " +"as I<sched_deadline>." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "The kernel requires that:" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "sched_runtime E<lt>= sched_deadline E<lt>= sched_period\n" +msgstr "" + +#. See __checkparam_dl in kernel/sched/core.c +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"In addition, under the current implementation, all of the parameter values " +"must be at least 1024 (i.e., just over one microsecond, which is the " +"resolution of the implementation), and less than 2\\[ha]63. If any of these " +"checks fails, B<sched_setattr>(2) fails with the error B<EINVAL>." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"The CBS guarantees non-interference between tasks, by throttling threads " +"that attempt to over-run their specified Runtime." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"To ensure deadline scheduling guarantees, the kernel must prevent situations " +"where the set of B<SCHED_DEADLINE> threads is not feasible (schedulable) " +"within the given constraints. The kernel thus performs an admittance test " +"when setting or changing B<SCHED_DEADLINE> policy and attributes. This " +"admission test calculates whether the change is feasible; if it is not, " +"B<sched_setattr>(2) fails with the error B<EBUSY>." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"For example, it is required (but not necessarily sufficient) for the total " +"utilization to be less than or equal to the total number of CPUs available, " +"where, since each thread can maximally run for Runtime per Period, that " +"thread's utilization is its Runtime divided by its Period." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"In order to fulfill the guarantees that are made when a thread is admitted " +"to the B<SCHED_DEADLINE> policy, B<SCHED_DEADLINE> threads are the highest " +"priority (user controllable) threads in the system; if any B<SCHED_DEADLINE> " +"thread is runnable, it will preempt any thread scheduled under one of the " +"other policies." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"A call to B<fork>(2) by a thread scheduled under the B<SCHED_DEADLINE> " +"policy fails with the error B<EAGAIN>, unless the thread has its reset-on-" +"fork flag set (see below)." +msgstr "" + +# +#. FIXME Calling sched_getparam() on a SCHED_DEADLINE thread +#. fails with EINVAL, but sched_getscheduler() succeeds. +#. Is that intended? (Why?) +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"A B<SCHED_DEADLINE> thread that calls B<sched_yield>(2) will yield the " +"current job and wait for a new period to begin." +msgstr "" + +#. type: SS +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "SCHED_OTHER: Default Linux time-sharing scheduling" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"B<SCHED_OTHER> can be used at only static priority 0 (i.e., threads under " +"real-time policies always have priority over B<SCHED_OTHER> processes). " +"B<SCHED_OTHER> is the standard Linux time-sharing scheduler that is intended " +"for all threads that do not require the special real-time mechanisms." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"The thread to run is chosen from the static priority 0 list based on a " +"I<dynamic> priority that is determined only inside this list. The dynamic " +"priority is based on the nice value (see below) and is increased for each " +"time quantum the thread is ready to run, but denied to run by the " +"scheduler. This ensures fair progress among all B<SCHED_OTHER> threads." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"In the Linux kernel source code, the B<SCHED_OTHER> policy is actually named " +"B<SCHED_NORMAL>." +msgstr "" + +#. type: SS +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "The nice value" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"The nice value is an attribute that can be used to influence the CPU " +"scheduler to favor or disfavor a process in scheduling decisions. It " +"affects the scheduling of B<SCHED_OTHER> and B<SCHED_BATCH> (see below) " +"processes. The nice value can be modified using B<nice>(2), " +"B<setpriority>(2), or B<sched_setattr>(2)." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"According to POSIX.1, the nice value is a per-process attribute; that is, " +"the threads in a process should share a nice value. However, on Linux, the " +"nice value is a per-thread attribute: different threads in the same process " +"may have different nice values." +msgstr "" + +#. Linux before 1.3.36 had \-infinity..15. +#. Since Linux 1.3.43, Linux has the range \-20..19. +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"The range of the nice value varies across UNIX systems. On modern Linux, " +"the range is -20 (high priority) to +19 (low priority). On some other " +"systems, the range is -20..20. Very early Linux kernels (before Linux 2.0) " +"had the range -infinity..15." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"The degree to which the nice value affects the relative scheduling of " +"B<SCHED_OTHER> processes likewise varies across UNIX systems and across " +"Linux kernel versions." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"With the advent of the CFS scheduler in Linux 2.6.23, Linux adopted an " +"algorithm that causes relative differences in nice values to have a much " +"stronger effect. In the current implementation, each unit of difference in " +"the nice values of two processes results in a factor of 1.25 in the degree " +"to which the scheduler favors the higher priority process. This causes very " +"low nice values (+19) to truly provide little CPU to a process whenever " +"there is any other higher priority load on the system, and makes high nice " +"values (-20) deliver most of the CPU to applications that require it (e.g., " +"some audio applications)." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"On Linux, the B<RLIMIT_NICE> resource limit can be used to define a limit to " +"which an unprivileged process's nice value can be raised; see " +"B<setrlimit>(2) for details." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"For further details on the nice value, see the subsections on the autogroup " +"feature and group scheduling, below." +msgstr "" + +#. type: SS +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "SCHED_BATCH: Scheduling batch processes" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"(Since Linux 2.6.16.) B<SCHED_BATCH> can be used only at static priority " +"0. This policy is similar to B<SCHED_OTHER> in that it schedules the thread " +"according to its dynamic priority (based on the nice value). The difference " +"is that this policy will cause the scheduler to always assume that the " +"thread is CPU-intensive. Consequently, the scheduler will apply a small " +"scheduling penalty with respect to wakeup behavior, so that this thread is " +"mildly disfavored in scheduling decisions." +msgstr "" + +#. The following paragraph is drawn largely from the text that +#. accompanied Ingo Molnar's patch for the implementation of +#. SCHED_BATCH. +#. commit b0a9499c3dd50d333e2aedb7e894873c58da3785 +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"This policy is useful for workloads that are noninteractive, but do not want " +"to lower their nice value, and for workloads that want a deterministic " +"scheduling policy without interactivity causing extra preemptions (between " +"the workload's tasks)." +msgstr "" + +#. type: SS +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "SCHED_IDLE: Scheduling very low priority jobs" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"(Since Linux 2.6.23.) B<SCHED_IDLE> can be used only at static priority 0; " +"the process nice value has no influence for this policy." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"This policy is intended for running jobs at extremely low priority (lower " +"even than a +19 nice value with the B<SCHED_OTHER> or B<SCHED_BATCH> " +"policies)." +msgstr "" + +#. type: SS +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "Resetting scheduling policy for child processes" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"Each thread has a reset-on-fork scheduling flag. When this flag is set, " +"children created by B<fork>(2) do not inherit privileged scheduling " +"policies. The reset-on-fork flag can be set by either:" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"ORing the B<SCHED_RESET_ON_FORK> flag into the I<policy> argument when " +"calling B<sched_setscheduler>(2) (since Linux 2.6.32); or" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"specifying the B<SCHED_FLAG_RESET_ON_FORK> flag in I<attr.sched_flags> when " +"calling B<sched_setattr>(2)." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"Note that the constants used with these two APIs have different names. The " +"state of the reset-on-fork flag can analogously be retrieved using " +"B<sched_getscheduler>(2) and B<sched_getattr>(2)." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"The reset-on-fork feature is intended for media-playback applications, and " +"can be used to prevent applications evading the B<RLIMIT_RTTIME> resource " +"limit (see B<getrlimit>(2)) by creating multiple child processes." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"More precisely, if the reset-on-fork flag is set, the following rules apply " +"for subsequently created children:" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"If the calling thread has a scheduling policy of B<SCHED_FIFO> or " +"B<SCHED_RR>, the policy is reset to B<SCHED_OTHER> in child processes." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"If the calling process has a negative nice value, the nice value is reset to " +"zero in child processes." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"After the reset-on-fork flag has been enabled, it can be reset only if the " +"thread has the B<CAP_SYS_NICE> capability. This flag is disabled in child " +"processes created by B<fork>(2)." +msgstr "" + +#. type: SS +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "Privileges and resource limits" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"Before Linux 2.6.12, only privileged (B<CAP_SYS_NICE>) threads can set a " +"nonzero static priority (i.e., set a real-time scheduling policy). The only " +"change that an unprivileged thread can make is to set the B<SCHED_OTHER> " +"policy, and this can be done only if the effective user ID of the caller " +"matches the real or effective user ID of the target thread (i.e., the thread " +"specified by I<pid>) whose policy is being changed." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"A thread must be privileged (B<CAP_SYS_NICE>) in order to set or modify a " +"B<SCHED_DEADLINE> policy." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"Since Linux 2.6.12, the B<RLIMIT_RTPRIO> resource limit defines a ceiling on " +"an unprivileged thread's static priority for the B<SCHED_RR> and " +"B<SCHED_FIFO> policies. The rules for changing scheduling policy and " +"priority are as follows:" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"If an unprivileged thread has a nonzero B<RLIMIT_RTPRIO> soft limit, then it " +"can change its scheduling policy and priority, subject to the restriction " +"that the priority cannot be set to a value higher than the maximum of its " +"current priority and its B<RLIMIT_RTPRIO> soft limit." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"If the B<RLIMIT_RTPRIO> soft limit is 0, then the only permitted changes are " +"to lower the priority, or to switch to a non-real-time policy." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"Subject to the same rules, another unprivileged thread can also make these " +"changes, as long as the effective user ID of the thread making the change " +"matches the real or effective user ID of the target thread." +msgstr "" + +#. commit c02aa73b1d18e43cfd79c2f193b225e84ca497c8 +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"Special rules apply for the B<SCHED_IDLE> policy. Before Linux 2.6.39, an " +"unprivileged thread operating under this policy cannot change its policy, " +"regardless of the value of its B<RLIMIT_RTPRIO> resource limit. Since Linux " +"2.6.39, an unprivileged thread can switch to either the B<SCHED_BATCH> or " +"the B<SCHED_OTHER> policy so long as its nice value falls within the range " +"permitted by its B<RLIMIT_NICE> resource limit (see B<getrlimit>(2))." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"Privileged (B<CAP_SYS_NICE>) threads ignore the B<RLIMIT_RTPRIO> limit; as " +"with older kernels, they can make arbitrary changes to scheduling policy and " +"priority. See B<getrlimit>(2) for further information on B<RLIMIT_RTPRIO>." +msgstr "" + +#. type: SS +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "Limiting the CPU usage of real-time and deadline processes" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"A nonblocking infinite loop in a thread scheduled under the B<SCHED_FIFO>, " +"B<SCHED_RR>, or B<SCHED_DEADLINE> policy can potentially block all other " +"threads from accessing the CPU forever. Before Linux 2.6.25, the only way " +"of preventing a runaway real-time process from freezing the system was to " +"run (at the console) a shell scheduled under a higher static priority than " +"the tested application. This allows an emergency kill of tested real-time " +"applications that do not block or terminate as expected." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"Since Linux 2.6.25, there are other techniques for dealing with runaway real-" +"time and deadline processes. One of these is to use the B<RLIMIT_RTTIME> " +"resource limit to set a ceiling on the CPU time that a real-time process may " +"consume. See B<getrlimit>(2) for details." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"Since Linux 2.6.25, Linux also provides two I</proc> files that can be used " +"to reserve a certain amount of CPU time to be used by non-real-time " +"processes. Reserving CPU time in this fashion allows some CPU time to be " +"allocated to (say) a root shell that can be used to kill a runaway process. " +"Both of these files specify time values in microseconds:" +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "I</proc/sys/kernel/sched_rt_period_us>" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"This file specifies a scheduling period that is equivalent to 100% CPU " +"bandwidth. The value in this file can range from 1 to B<INT_MAX>, giving an " +"operating range of 1 microsecond to around 35 minutes. The default value in " +"this file is 1,000,000 (1 second)." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "I</proc/sys/kernel/sched_rt_runtime_us>" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"The value in this file specifies how much of the \"period\" time can be used " +"by all real-time and deadline scheduled processes on the system. The value " +"in this file can range from -1 to B<INT_MAX>-1. Specifying -1 makes the run " +"time the same as the period; that is, no CPU time is set aside for non-real-" +"time processes (which was the behavior before Linux 2.6.25). The default " +"value in this file is 950,000 (0.95 seconds), meaning that 5% of the CPU " +"time is reserved for processes that don't run under a real-time or deadline " +"scheduling policy." +msgstr "" + +#. type: SS +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "Response time" +msgstr "" + +#. as described in +#. .BR request_irq (9). +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"A blocked high priority thread waiting for I/O has a certain response time " +"before it is scheduled again. The device driver writer can greatly reduce " +"this response time by using a \"slow interrupt\" interrupt handler." +msgstr "" + +#. type: SS +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "Miscellaneous" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"Child processes inherit the scheduling policy and parameters across a " +"B<fork>(2). The scheduling policy and parameters are preserved across " +"B<execve>(2)." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"Memory locking is usually needed for real-time processes to avoid paging " +"delays; this can be done with B<mlock>(2) or B<mlockall>(2)." +msgstr "" + +#. type: SS +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "The autogroup feature" +msgstr "" + +#. commit 5091faa449ee0b7d73bc296a93bca9540fc51d0a +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"Since Linux 2.6.38, the kernel provides a feature known as autogrouping to " +"improve interactive desktop performance in the face of multiprocess, CPU-" +"intensive workloads such as building the Linux kernel with large numbers of " +"parallel build processes (i.e., the B<make>(1) B<-j> flag)." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"This feature operates in conjunction with the CFS scheduler and requires a " +"kernel that is configured with B<CONFIG_SCHED_AUTOGROUP>. On a running " +"system, this feature is enabled or disabled via the file I</proc/sys/kernel/" +"sched_autogroup_enabled>; a value of 0 disables the feature, while a value " +"of 1 enables it. The default value in this file is 1, unless the kernel was " +"booted with the I<noautogroup> parameter." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"A new autogroup is created when a new session is created via B<setsid>(2); " +"this happens, for example, when a new terminal window is started. A new " +"process created by B<fork>(2) inherits its parent's autogroup membership. " +"Thus, all of the processes in a session are members of the same autogroup. " +"An autogroup is automatically destroyed when the last process in the group " +"terminates." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"When autogrouping is enabled, all of the members of an autogroup are placed " +"in the same kernel scheduler \"task group\". The CFS scheduler employs an " +"algorithm that equalizes the distribution of CPU cycles across task groups. " +"The benefits of this for interactive desktop performance can be described " +"via the following example." +msgstr "" + +#. Mike Galbraith, 25 Nov 2016: +#. I'd say something more wishy-washy here, like cycles are +#. distributed fairly across groups and leave it at that, as your +#. detailed example is incorrect due to SMP fairness (which I don't +#. like much because [very unlikely] worst case scenario +#. renders a box sized group incapable of utilizing more that +#. a single CPU total). For example, if a group of NR_CPUS +#. size competes with a singleton, load balancing will try to give +#. the singleton a full CPU of its very own. If groups intersect for +#. whatever reason on say my quad lappy, distribution is 80/20 in +#. favor of the singleton. +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"Suppose that there are two autogroups competing for the same CPU (i.e., " +"presume either a single CPU system or the use of B<taskset>(1) to confine " +"all the processes to the same CPU on an SMP system). The first group " +"contains ten CPU-bound processes from a kernel build started with I<make\\~-" +"j10>. The other contains a single CPU-bound process: a video player. The " +"effect of autogrouping is that the two groups will each receive half of the " +"CPU cycles. That is, the video player will receive 50% of the CPU cycles, " +"rather than just 9% of the cycles, which would likely lead to degraded video " +"playback. The situation on an SMP system is more complex, but the general " +"effect is the same: the scheduler distributes CPU cycles across task groups " +"such that an autogroup that contains a large number of CPU-bound processes " +"does not end up hogging CPU cycles at the expense of the other jobs on the " +"system." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"A process's autogroup (task group) membership can be viewed via the file I</" +"proc/>pidI</autogroup>:" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "" +"$ B<cat /proc/1/autogroup>\n" +"/autogroup-1 nice 0\n" +msgstr "" + +# +#. FIXME . +#. Because of a bug introduced in Linux 4.7 +#. (commit 2159197d66770ec01f75c93fb11dc66df81fd45b made changes +#. that exposed the fact that autogroup didn't call scale_load()), +#. it happened that *all* values in this range caused a task group +#. to be further disfavored by the scheduler, with \-20 resulting +#. in the scheduler mildly disfavoring the task group and +19 greatly +#. disfavoring it. +#. A patch was posted on 23 Nov 2016 +#. ("sched/autogroup: Fix 64bit kernel nice adjustment"; +#. check later to see in which kernel version it lands. +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"This file can also be used to modify the CPU bandwidth allocated to an " +"autogroup. This is done by writing a number in the \"nice\" range to the " +"file to set the autogroup's nice value. The allowed range is from +19 (low " +"priority) to -20 (high priority). (Writing values outside of this range " +"causes B<write>(2) to fail with the error B<EINVAL>.)" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"The autogroup nice setting has the same meaning as the process nice value, " +"but applies to distribution of CPU cycles to the autogroup as a whole, based " +"on the relative nice values of other autogroups. For a process inside an " +"autogroup, the CPU cycles that it receives will be a product of the " +"autogroup's nice value (compared to other autogroups) and the process's " +"nice value (compared to other processes in the same autogroup." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"The use of the B<cgroups>(7) CPU controller to place processes in cgroups " +"other than the root CPU cgroup overrides the effect of autogrouping." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"The autogroup feature groups only processes scheduled under non-real-time " +"policies (B<SCHED_OTHER>, B<SCHED_BATCH>, and B<SCHED_IDLE>). It does not " +"group processes scheduled under real-time and deadline policies. Those " +"processes are scheduled according to the rules described earlier." +msgstr "" + +#. type: SS +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "The nice value and group scheduling" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"When scheduling non-real-time processes (i.e., those scheduled under the " +"B<SCHED_OTHER>, B<SCHED_BATCH>, and B<SCHED_IDLE> policies), the CFS " +"scheduler employs a technique known as \"group scheduling\", if the kernel " +"was configured with the B<CONFIG_FAIR_GROUP_SCHED> option (which is typical)." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"Under group scheduling, threads are scheduled in \"task groups\". Task " +"groups have a hierarchical relationship, rooted under the initial task group " +"on the system, known as the \"root task group\". Task groups are formed in " +"the following circumstances:" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"All of the threads in a CPU cgroup form a task group. The parent of this " +"task group is the task group of the corresponding parent cgroup." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"If autogrouping is enabled, then all of the threads that are (implicitly) " +"placed in an autogroup (i.e., the same session, as created by B<setsid>(2)) " +"form a task group. Each new autogroup is thus a separate task group. The " +"root task group is the parent of all such autogroups." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"If autogrouping is enabled, then the root task group consists of all " +"processes in the root CPU cgroup that were not otherwise implicitly placed " +"into a new autogroup." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"If autogrouping is disabled, then the root task group consists of all " +"processes in the root CPU cgroup." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"If group scheduling was disabled (i.e., the kernel was configured without " +"B<CONFIG_FAIR_GROUP_SCHED>), then all of the processes on the system are " +"notionally placed in a single task group." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"Under group scheduling, a thread's nice value has an effect for scheduling " +"decisions I<only relative to other threads in the same task group>. This " +"has some surprising consequences in terms of the traditional semantics of " +"the nice value on UNIX systems. In particular, if autogrouping is enabled " +"(which is the default in various distributions), then employing " +"B<setpriority>(2) or B<nice>(1) on a process has an effect only for " +"scheduling relative to other processes executed in the same session " +"(typically: the same terminal window)." +msgstr "" + +#. More succinctly: the nice(1) command is in many cases a no-op since +#. Linux 2.6.38. +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"Conversely, for two processes that are (for example) the sole CPU-bound " +"processes in different sessions (e.g., different terminal windows, each of " +"whose jobs are tied to different autogroups), I<modifying the nice value of " +"the process in one of the sessions> I<has no effect> in terms of the " +"scheduler's decisions relative to the process in the other session. A " +"possibly useful workaround here is to use a command such as the following to " +"modify the autogroup nice value for I<all> of the processes in a terminal " +"session:" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "$ B<echo 10 E<gt> /proc/self/autogroup>\n" +msgstr "" + +#. type: SS +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "Real-time features in the mainline Linux kernel" +msgstr "" + +#. FIXME . Probably this text will need some minor tweaking +#. ask Carsten Emde about this. +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"Since Linux 2.6.18, Linux is gradually becoming equipped with real-time " +"capabilities, most of which are derived from the former I<realtime-preempt> " +"patch set. Until the patches have been completely merged into the mainline " +"kernel, they must be installed to achieve the best real-time performance. " +"These patches are named:" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "patch-I<kernelversion>-rtI<patchversion>\n" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"and can be downloaded from E<.UR http://www.kernel.org\\:/pub\\:/linux\\:/" +"kernel\\:/projects\\:/rt/> E<.UE .>" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"Without the patches and prior to their full inclusion into the mainline " +"kernel, the kernel configuration offers only the three preemption classes " +"B<CONFIG_PREEMPT_NONE>, B<CONFIG_PREEMPT_VOLUNTARY>, and " +"B<CONFIG_PREEMPT_DESKTOP> which respectively provide no, some, and " +"considerable reduction of the worst-case scheduling latency." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"With the patches applied or after their full inclusion into the mainline " +"kernel, the additional configuration item B<CONFIG_PREEMPT_RT> becomes " +"available. If this is selected, Linux is transformed into a regular real-" +"time operating system. The FIFO and RR scheduling policies are then used to " +"run a thread with true real-time priority and a minimum worst-case " +"scheduling latency." +msgstr "" + +#. type: SH +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "NOTES" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"The B<cgroups>(7) CPU controller can be used to limit the CPU consumption " +"of groups of processes." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"Originally, Standard Linux was intended as a general-purpose operating " +"system being able to handle background processes, interactive applications, " +"and less demanding real-time applications (applications that need to usually " +"meet timing deadlines). Although the Linux 2.6 allowed for kernel " +"preemption and the newly introduced O(1) scheduler ensures that the time " +"needed to schedule is fixed and deterministic irrespective of the number of " +"active tasks, true real-time computing was not possible up to Linux 2.6.17." +msgstr "" + +#. type: SH +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "SEE ALSO" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"B<chcpu>(1), B<chrt>(1), B<lscpu>(1), B<ps>(1), B<taskset>(1), B<top>(1), " +"B<getpriority>(2), B<mlock>(2), B<mlockall>(2), B<munlock>(2), " +"B<munlockall>(2), B<nice>(2), B<sched_get_priority_max>(2), " +"B<sched_get_priority_min>(2), B<sched_getaffinity>(2), B<sched_getparam>(2), " +"B<sched_getscheduler>(2), B<sched_rr_get_interval>(2), " +"B<sched_setaffinity>(2), B<sched_setparam>(2), B<sched_setscheduler>(2), " +"B<sched_yield>(2), B<setpriority>(2), B<pthread_getaffinity_np>(3), " +"B<pthread_getschedparam>(3), B<pthread_setaffinity_np>(3), " +"B<sched_getcpu>(3), B<capabilities>(7), B<cpuset>(7)" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"I<Programming for the real world - POSIX.4> by Bill O.\\& Gallmeister, " +"O'Reilly & Associates, Inc., ISBN 1-56592-074-0." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"The Linux kernel source files I<\\%Documentation/\\:scheduler/\\:sched-" +"deadline\\:.txt>, I<\\%Documentation/\\:scheduler/\\:sched-rt-group\\:.txt>, " +"I<\\%Documentation/\\:scheduler/\\:sched-design-CFS\\:.txt>, and I<\\" +"%Documentation/\\:scheduler/\\:sched-nice-design\\:.txt>" +msgstr "" + +#. type: TH +#: debian-bookworm debian-unstable opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "2023-02-10" +msgstr "" + +#. type: TH +#: debian-bookworm +#, no-wrap +msgid "Linux man-pages 6.03" +msgstr "" + +#. type: TH +#: debian-unstable opensuse-tumbleweed +#, no-wrap +msgid "Linux man-pages 6.05.01" +msgstr "" + +#. type: TH +#: opensuse-leap-15-6 +#, no-wrap +msgid "Linux man-pages 6.04" +msgstr "" |