diff options
Diffstat (limited to '')
-rw-r--r-- | templates/man7/cpuset.7.pot | 2510 |
1 files changed, 2510 insertions, 0 deletions
diff --git a/templates/man7/cpuset.7.pot b/templates/man7/cpuset.7.pot new file mode 100644 index 00000000..ab743ef2 --- /dev/null +++ b/templates/man7/cpuset.7.pot @@ -0,0 +1,2510 @@ +# 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 16:54+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 "cpuset" +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 "cpuset - confine processes to processor and memory node subsets" +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 "" +"The cpuset filesystem is a pseudo-filesystem interface to the kernel cpuset " +"mechanism, which is used to control the processor placement and memory " +"placement of processes. It is commonly mounted at I</dev/cpuset>." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"On systems with kernels compiled with built in support for cpusets, all " +"processes are attached to a cpuset, and cpusets are always present. If a " +"system supports cpusets, then it will have the entry B<nodev cpuset> in the " +"file I</proc/filesystems>. By mounting the cpuset filesystem (see the " +"B<EXAMPLES> section below), the administrator can configure the cpusets on a " +"system to control the processor and memory placement of processes on that " +"system. By default, if the cpuset configuration on a system is not modified " +"or if the cpuset filesystem is not even mounted, then the cpuset mechanism, " +"though present, has no effect on the system's behavior." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "A cpuset defines a list of CPUs and memory nodes." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"The CPUs of a system include all the logical processing units on which a " +"process can execute, including, if present, multiple processor cores within " +"a package and Hyper-Threads within a processor core. Memory nodes include " +"all distinct banks of main memory; small and SMP systems typically have just " +"one memory node that contains all the system's main memory, while NUMA (non-" +"uniform memory access) systems have multiple memory nodes." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"Cpusets are represented as directories in a hierarchical pseudo-filesystem, " +"where the top directory in the hierarchy (I</dev/cpuset>) represents the " +"entire system (all online CPUs and memory nodes) and any cpuset that is the " +"child (descendant) of another parent cpuset contains a subset of that " +"parent's CPUs and memory nodes. The directories and files representing " +"cpusets have normal filesystem permissions." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"Every process in the system belongs to exactly one cpuset. A process is " +"confined to run only on the CPUs in the cpuset it belongs to, and to " +"allocate memory only on the memory nodes in that cpuset. When a process " +"B<fork>(2)s, the child process is placed in the same cpuset as its parent. " +"With sufficient privilege, a process may be moved from one cpuset to another " +"and the allowed CPUs and memory nodes of an existing cpuset may be changed." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"When the system begins booting, a single cpuset is defined that includes all " +"CPUs and memory nodes on the system, and all processes are in that cpuset. " +"During the boot process, or later during normal system operation, other " +"cpusets may be created, as subdirectories of this top cpuset, under the " +"control of the system administrator, and processes may be placed in these " +"other cpusets." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"Cpusets are integrated with the B<sched_setaffinity>(2) scheduling affinity " +"mechanism and the B<mbind>(2) and B<set_mempolicy>(2) memory-placement " +"mechanisms in the kernel. Neither of these mechanisms let a process make " +"use of a CPU or memory node that is not allowed by that process's cpuset. " +"If changes to a process's cpuset placement conflict with these other " +"mechanisms, then cpuset placement is enforced even if it means overriding " +"these other mechanisms. The kernel accomplishes this overriding by silently " +"restricting the CPUs and memory nodes requested by these other mechanisms to " +"those allowed by the invoking process's cpuset. This can result in these " +"other calls returning an error, if for example, such a call ends up " +"requesting an empty set of CPUs or memory nodes, after that request is " +"restricted to the invoking process's cpuset." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"Typically, a cpuset is used to manage the CPU and memory-node confinement " +"for a set of cooperating processes such as a batch scheduler job, and these " +"other mechanisms are used to manage the placement of individual processes or " +"memory regions within that set or job." +msgstr "" + +#. type: SH +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "FILES" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"Each directory below I</dev/cpuset> represents a cpuset and contains a fixed " +"set of pseudo-files describing the state of that cpuset." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"New cpusets are created using the B<mkdir>(2) system call or the " +"B<mkdir>(1) command. The properties of a cpuset, such as its flags, " +"allowed CPUs and memory nodes, and attached processes, are queried and " +"modified by reading or writing to the appropriate file in that cpuset's " +"directory, as listed below." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"The pseudo-files in each cpuset directory are automatically created when the " +"cpuset is created, as a result of the B<mkdir>(2) invocation. It is not " +"possible to directly add or remove these pseudo-files." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"A cpuset directory that contains no child cpuset directories, and has no " +"attached processes, can be removed using B<rmdir>(2) or B<rmdir>(1). It is " +"not necessary, or possible, to remove the pseudo-files inside the directory " +"before removing it." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"The pseudo-files in each cpuset directory are small text files that may be " +"read and written using traditional shell utilities such as B<cat>(1), and " +"B<echo>(1), or from a program by using file I/O library functions or system " +"calls, such as B<open>(2), B<read>(2), B<write>(2), and B<close>(2)." +msgstr "" + +#. ====================== tasks ====================== +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"The pseudo-files in a cpuset directory represent internal kernel state and " +"do not have any persistent image on disk. Each of these per-cpuset files is " +"listed and described below." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "I<tasks>" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"List of the process IDs (PIDs) of the processes in that cpuset. The list is " +"formatted as a series of ASCII decimal numbers, each followed by a newline. " +"A process may be added to a cpuset (automatically removing it from the " +"cpuset that previously contained it) by writing its PID to that cpuset's " +"I<tasks> file (with or without a trailing newline)." +msgstr "" + +#. =================== notify_on_release =================== +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"B<Warning:> only one PID may be written to the I<tasks> file at a time. If " +"a string is written that contains more than one PID, only the first one will " +"be used." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "I<notify_on_release>" +msgstr "" + +#. ====================== cpus ====================== +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"Flag (0 or 1). If set (1), that cpuset will receive special handling after " +"it is released, that is, after all processes cease using it (i.e., terminate " +"or are moved to a different cpuset) and all child cpuset directories have " +"been removed. See the B<Notify On Release> section, below." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "I<cpuset.cpus>" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"List of the physical numbers of the CPUs on which processes in that cpuset " +"are allowed to execute. See B<List Format> below for a description of the " +"format of I<cpus>." +msgstr "" + +#. ==================== cpu_exclusive ==================== +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"The CPUs allowed to a cpuset may be changed by writing a new list to its " +"I<cpus> file." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "I<cpuset.cpu_exclusive>" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"Flag (0 or 1). If set (1), the cpuset has exclusive use of its CPUs (no " +"sibling or cousin cpuset may overlap CPUs). By default, this is off (0). " +"Newly created cpusets also initially default this to off (0)." +msgstr "" + +#. ====================== mems ====================== +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"Two cpusets are I<sibling> cpusets if they share the same parent cpuset in " +"the I</dev/cpuset> hierarchy. Two cpusets are I<cousin> cpusets if neither " +"is the ancestor of the other. Regardless of the I<cpu_exclusive> setting, " +"if one cpuset is the ancestor of another, and if both of these cpusets have " +"nonempty I<cpus>, then their I<cpus> must overlap, because the I<cpus> of " +"any cpuset are always a subset of the I<cpus> of its parent cpuset." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "I<cpuset.mems>" +msgstr "" + +#. ==================== mem_exclusive ==================== +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"List of memory nodes on which processes in this cpuset are allowed to " +"allocate memory. See B<List Format> below for a description of the format " +"of I<mems>." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "I<cpuset.mem_exclusive>" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"Flag (0 or 1). If set (1), the cpuset has exclusive use of its memory nodes " +"(no sibling or cousin may overlap). Also if set (1), the cpuset is a " +"B<Hardwall> cpuset (see below). By default, this is off (0). Newly created " +"cpusets also initially default this to off (0)." +msgstr "" + +#. ==================== mem_hardwall ==================== +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"Regardless of the I<mem_exclusive> setting, if one cpuset is the ancestor of " +"another, then their memory nodes must overlap, because the memory nodes of " +"any cpuset are always a subset of the memory nodes of that cpuset's parent " +"cpuset." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "I<cpuset.mem_hardwall> (since Linux 2.6.26)" +msgstr "" + +#. ==================== memory_migrate ==================== +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"Flag (0 or 1). If set (1), the cpuset is a B<Hardwall> cpuset (see below). " +"Unlike B<mem_exclusive>, there is no constraint on whether cpusets marked " +"B<mem_hardwall> may have overlapping memory nodes with sibling or cousin " +"cpusets. By default, this is off (0). Newly created cpusets also initially " +"default this to off (0)." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "I<cpuset.memory_migrate> (since Linux 2.6.16)" +msgstr "" + +#. ==================== memory_pressure ==================== +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"Flag (0 or 1). If set (1), then memory migration is enabled. By default, " +"this is off (0). See the B<Memory Migration> section, below." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "I<cpuset.memory_pressure> (since Linux 2.6.16)" +msgstr "" + +#. ================= memory_pressure_enabled ================= +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"A measure of how much memory pressure the processes in this cpuset are " +"causing. See the B<Memory Pressure> section, below. Unless " +"I<memory_pressure_enabled> is enabled, always has value zero (0). This file " +"is read-only. See the B<WARNINGS> section, below." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "I<cpuset.memory_pressure_enabled> (since Linux 2.6.16)" +msgstr "" + +#. ================== memory_spread_page ================== +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"Flag (0 or 1). This file is present only in the root cpuset, normally I</" +"dev/cpuset>. If set (1), the I<memory_pressure> calculations are enabled " +"for all cpusets in the system. By default, this is off (0). See the " +"B<Memory Pressure> section, below." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "I<cpuset.memory_spread_page> (since Linux 2.6.17)" +msgstr "" + +#. ================== memory_spread_slab ================== +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"Flag (0 or 1). If set (1), pages in the kernel page cache (filesystem " +"buffers) are uniformly spread across the cpuset. By default, this is off " +"(0) in the top cpuset, and inherited from the parent cpuset in newly created " +"cpusets. See the B<Memory Spread> section, below." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "I<cpuset.memory_spread_slab> (since Linux 2.6.17)" +msgstr "" + +#. ================== sched_load_balance ================== +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"Flag (0 or 1). If set (1), the kernel slab caches for file I/O (directory " +"and inode structures) are uniformly spread across the cpuset. By default, " +"is off (0) in the top cpuset, and inherited from the parent cpuset in newly " +"created cpusets. See the B<Memory Spread> section, below." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "I<cpuset.sched_load_balance> (since Linux 2.6.24)" +msgstr "" + +#. ================== sched_relax_domain_level ================== +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"Flag (0 or 1). If set (1, the default) the kernel will automatically load " +"balance processes in that cpuset over the allowed CPUs in that cpuset. If " +"cleared (0) the kernel will avoid load balancing processes in this cpuset, " +"I<unless> some other cpuset with overlapping CPUs has its " +"I<sched_load_balance> flag set. See B<Scheduler Load Balancing>, below, for " +"further details." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "I<cpuset.sched_relax_domain_level> (since Linux 2.6.26)" +msgstr "" + +#. ================== proc cpuset ================== +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"Integer, between -1 and a small positive value. The " +"I<sched_relax_domain_level> controls the width of the range of CPUs over " +"which the kernel scheduler performs immediate rebalancing of runnable tasks " +"across CPUs. If I<sched_load_balance> is disabled, then the setting of " +"I<sched_relax_domain_level> does not matter, as no such load balancing is " +"done. If I<sched_load_balance> is enabled, then the higher the value of the " +"I<sched_relax_domain_level>, the wider the range of CPUs over which " +"immediate load balancing is attempted. See B<Scheduler Relax Domain Level>, " +"below, for further details." +msgstr "" + +#. ================== proc status ================== +#. type: Plain text +#: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron +#: opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"In addition to the above pseudo-files in each directory below I</dev/" +"cpuset>, each process has a pseudo-file, I</proc/>pidI</cpuset>, that " +"displays the path of the process's cpuset directory relative to the root of " +"the cpuset filesystem." +msgstr "" + +#. type: Plain text +#: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron +#: opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"Also the I</proc/>pidI</status> file for each process has four added lines, " +"displaying the process's I<Cpus_allowed> (on which CPUs it may be scheduled) " +"and I<Mems_allowed> (on which memory nodes it may obtain memory), in the two " +"formats B<Mask Format> and B<List Format> (see below) as shown in the " +"following example:" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "" +"Cpus_allowed: ffffffff,ffffffff,ffffffff,ffffffff\n" +"Cpus_allowed_list: 0-127\n" +"Mems_allowed: ffffffff,ffffffff\n" +"Mems_allowed_list: 0-63\n" +msgstr "" + +#. ================== EXTENDED CAPABILITIES ================== +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"The \"allowed\" fields were added in Linux 2.6.24; the \"allowed_list\" " +"fields were added in Linux 2.6.26." +msgstr "" + +#. type: SH +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "EXTENDED CAPABILITIES" +msgstr "" + +#. ================== Exclusive Cpusets ================== +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"In addition to controlling which I<cpus> and I<mems> a process is allowed to " +"use, cpusets provide the following extended capabilities." +msgstr "" + +#. type: SS +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "Exclusive cpusets" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"If a cpuset is marked I<cpu_exclusive> or I<mem_exclusive>, no other cpuset, " +"other than a direct ancestor or descendant, may share any of the same CPUs " +"or memory nodes." +msgstr "" + +#. ================== Hardwall ================== +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"A cpuset that is I<mem_exclusive> restricts kernel allocations for buffer " +"cache pages and other internal kernel data pages commonly shared by the " +"kernel across multiple users. All cpusets, whether I<mem_exclusive> or not, " +"restrict allocations of memory for user space. This enables configuring a " +"system so that several independent jobs can share common kernel data, while " +"isolating each job's user allocation in its own cpuset. To do this, " +"construct a large I<mem_exclusive> cpuset to hold all the jobs, and " +"construct child, non-I<mem_exclusive> cpusets for each individual job. Only " +"a small amount of kernel memory, such as requests from interrupt handlers, " +"is allowed to be placed on memory nodes outside even a I<mem_exclusive> " +"cpuset." +msgstr "" + +#. type: SS +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "Hardwall" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"A cpuset that has I<mem_exclusive> or I<mem_hardwall> set is a I<hardwall> " +"cpuset. A I<hardwall> cpuset restricts kernel allocations for page, buffer, " +"and other data commonly shared by the kernel across multiple users. All " +"cpusets, whether I<hardwall> or not, restrict allocations of memory for user " +"space." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"This enables configuring a system so that several independent jobs can share " +"common kernel data, such as filesystem pages, while isolating each job's " +"user allocation in its own cpuset. To do this, construct a large " +"I<hardwall> cpuset to hold all the jobs, and construct child cpusets for " +"each individual job which are not I<hardwall> cpusets." +msgstr "" + +#. ================== Notify On Release ================== +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"Only a small amount of kernel memory, such as requests from interrupt " +"handlers, is allowed to be taken outside even a I<hardwall> cpuset." +msgstr "" + +#. type: SS +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "Notify on release" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"If the I<notify_on_release> flag is enabled (1) in a cpuset, then whenever " +"the last process in the cpuset leaves (exits or attaches to some other " +"cpuset) and the last child cpuset of that cpuset is removed, the kernel " +"will run the command I</sbin/cpuset_release_agent>, supplying the pathname " +"(relative to the mount point of the cpuset filesystem) of the abandoned " +"cpuset. This enables automatic removal of abandoned cpusets." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"The default value of I<notify_on_release> in the root cpuset at system boot " +"is disabled (0). The default value of other cpusets at creation is the " +"current value of their parent's I<notify_on_release> setting." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"The command I</sbin/cpuset_release_agent> is invoked, with the name (I</dev/" +"cpuset> relative path) of the to-be-released cpuset in I<argv[1]>." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"The usual contents of the command I</sbin/cpuset_release_agent> is simply " +"the shell script:" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "" +"#!/bin/sh\n" +"rmdir /dev/cpuset/$1\n" +msgstr "" + +#. ================== Memory Pressure ================== +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"As with other flag values below, this flag can be changed by writing an " +"ASCII number 0 or 1 (with optional trailing newline) into the file, to " +"clear or set the flag, respectively." +msgstr "" + +#. type: SS +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "Memory pressure" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"The I<memory_pressure> of a cpuset provides a simple per-cpuset running " +"average of the rate that the processes in a cpuset are attempting to free up " +"in-use memory on the nodes of the cpuset to satisfy additional memory " +"requests." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"This enables batch managers that are monitoring jobs running in dedicated " +"cpusets to efficiently detect what level of memory pressure that job is " +"causing." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"This is useful both on tightly managed systems running a wide mix of " +"submitted jobs, which may choose to terminate or reprioritize jobs that are " +"trying to use more memory than allowed on the nodes assigned them, and with " +"tightly coupled, long-running, massively parallel scientific computing jobs " +"that will dramatically fail to meet required performance goals if they start " +"to use more memory than allowed to them." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"This mechanism provides a very economical way for the batch manager to " +"monitor a cpuset for signs of memory pressure. It's up to the batch manager " +"or other user code to decide what action to take if it detects signs of " +"memory pressure." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"Unless memory pressure calculation is enabled by setting the pseudo-file I</" +"dev/cpuset/cpuset.memory_pressure_enabled>, it is not computed for any " +"cpuset, and reads from any I<memory_pressure> always return zero, as " +"represented by the ASCII string \"0\\en\". See the B<WARNINGS> section, " +"below." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "A per-cpuset, running average is employed for the following reasons:" +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 "" +"Because this meter is per-cpuset rather than per-process or per virtual " +"memory region, the system load imposed by a batch scheduler monitoring this " +"metric is sharply reduced on large systems, because a scan of the tasklist " +"can be avoided on each set of queries." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"Because this meter is a running average rather than an accumulating counter, " +"a batch scheduler can detect memory pressure with a single read, instead of " +"having to read and accumulate results for a period of time." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"Because this meter is per-cpuset rather than per-process, the batch " +"scheduler can obtain the key information\\[em]memory pressure in a " +"cpuset\\[em]with a single read, rather than having to query and accumulate " +"results over all the (dynamically changing) set of processes in the cpuset." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"The I<memory_pressure> of a cpuset is calculated using a per-cpuset simple " +"digital filter that is kept within the kernel. For each cpuset, this filter " +"tracks the recent rate at which processes attached to that cpuset enter the " +"kernel direct reclaim code." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"The kernel direct reclaim code is entered whenever a process has to satisfy " +"a memory page request by first finding some other page to repurpose, due to " +"lack of any readily available already free pages. Dirty filesystem pages " +"are repurposed by first writing them to disk. Unmodified filesystem buffer " +"pages are repurposed by simply dropping them, though if that page is needed " +"again, it will have to be reread from disk." +msgstr "" + +#. ================== Memory Spread ================== +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"The I<cpuset.memory_pressure> file provides an integer number representing " +"the recent (half-life of 10 seconds) rate of entries to the direct reclaim " +"code caused by any process in the cpuset, in units of reclaims attempted per " +"second, times 1000." +msgstr "" + +#. type: SS +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "Memory spread" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"There are two Boolean flag files per cpuset that control where the kernel " +"allocates pages for the filesystem buffers and related in-kernel data " +"structures. They are called I<cpuset.memory_spread_page> and I<cpuset." +"memory_spread_slab>." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"If the per-cpuset Boolean flag file I<cpuset.memory_spread_page> is set, " +"then the kernel will spread the filesystem buffers (page cache) evenly over " +"all the nodes that the faulting process is allowed to use, instead of " +"preferring to put those pages on the node where the process is running." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"If the per-cpuset Boolean flag file I<cpuset.memory_spread_slab> is set, " +"then the kernel will spread some filesystem-related slab caches, such as " +"those for inodes and directory entries, evenly over all the nodes that the " +"faulting process is allowed to use, instead of preferring to put those pages " +"on the node where the process is running." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"The setting of these flags does not affect the data segment (see B<brk>(2)) " +"or stack segment pages of a process." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"By default, both kinds of memory spreading are off and the kernel prefers to " +"allocate memory pages on the node local to where the requesting process is " +"running. If that node is not allowed by the process's NUMA memory policy or " +"cpuset configuration or if there are insufficient free memory pages on that " +"node, then the kernel looks for the nearest node that is allowed and has " +"sufficient free memory." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"When new cpusets are created, they inherit the memory spread settings of " +"their parent." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"Setting memory spreading causes allocations for the affected page or slab " +"caches to ignore the process's NUMA memory policy and be spread instead. " +"However, the effect of these changes in memory placement caused by cpuset-" +"specified memory spreading is hidden from the B<mbind>(2) or " +"B<set_mempolicy>(2) calls. These two NUMA memory policy calls always " +"appear to behave as if no cpuset-specified memory spreading is in effect, " +"even if it is. If cpuset memory spreading is subsequently turned off, the " +"NUMA memory policy most recently specified by these calls is automatically " +"reapplied." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"Both I<cpuset.memory_spread_page> and I<cpuset.memory_spread_slab> are " +"Boolean flag files. By default, they contain \"0\", meaning that the " +"feature is off for that cpuset. If a \"1\" is written to that file, that " +"turns the named feature on." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"Cpuset-specified memory spreading behaves similarly to what is known (in " +"other contexts) as round-robin or interleave memory placement." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"Cpuset-specified memory spreading can provide substantial performance " +"improvements for jobs that:" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"need to place thread-local data on memory nodes close to the CPUs which are " +"running the threads that most frequently access that data; but also" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"need to access large filesystem data sets that must to be spread across the " +"several nodes in the job's cpuset in order to fit." +msgstr "" + +#. ================== Memory Migration ================== +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"Without this policy, the memory allocation across the nodes in the job's " +"cpuset can become very uneven, especially for jobs that might have just a " +"single thread initializing or reading in the data set." +msgstr "" + +#. type: SS +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "Memory migration" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"Normally, under the default setting (disabled) of I<cpuset.memory_migrate>, " +"once a page is allocated (given a physical page of main memory), then that " +"page stays on whatever node it was allocated, so long as it remains " +"allocated, even if the cpuset's memory-placement policy I<mems> subsequently " +"changes." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"When memory migration is enabled in a cpuset, if the I<mems> setting of the " +"cpuset is changed, then any memory page in use by any process in the cpuset " +"that is on a memory node that is no longer allowed will be migrated to a " +"memory node that is allowed." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"Furthermore, if a process is moved into a cpuset with I<memory_migrate> " +"enabled, any memory pages it uses that were on memory nodes allowed in its " +"previous cpuset, but which are not allowed in its new cpuset, will be " +"migrated to a memory node allowed in the new cpuset." +msgstr "" + +#. ================== Scheduler Load Balancing ================== +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"The relative placement of a migrated page within the cpuset is preserved " +"during these migration operations if possible. For example, if the page was " +"on the second valid node of the prior cpuset, then the page will be placed " +"on the second valid node of the new cpuset, if possible." +msgstr "" + +#. type: SS +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "Scheduler load balancing" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"The kernel scheduler automatically load balances processes. If one CPU is " +"underutilized, the kernel will look for processes on other more overloaded " +"CPUs and move those processes to the underutilized CPU, within the " +"constraints of such placement mechanisms as cpusets and " +"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 "" +"The algorithmic cost of load balancing and its impact on key shared kernel " +"data structures such as the process list increases more than linearly with " +"the number of CPUs being balanced. For example, it costs more to load " +"balance across one large set of CPUs than it does to balance across two " +"smaller sets of CPUs, each of half the size of the larger set. (The precise " +"relationship between the number of CPUs being balanced and the cost of load " +"balancing depends on implementation details of the kernel process scheduler, " +"which is subject to change over time, as improved kernel scheduler " +"algorithms are implemented.)" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"The per-cpuset flag I<sched_load_balance> provides a mechanism to suppress " +"this automatic scheduler load balancing in cases where it is not needed and " +"suppressing it would have worthwhile performance benefits." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"By default, load balancing is done across all CPUs, except those marked " +"isolated using the kernel boot time \"isolcpus=\" argument. (See " +"B<Scheduler Relax Domain Level>, below, to change this default.)" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"This default load balancing across all CPUs is not well suited to the " +"following two situations:" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"On large systems, load balancing across many CPUs is expensive. If the " +"system is managed using cpusets to place independent jobs on separate sets " +"of CPUs, full load balancing is unnecessary." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"Systems supporting real-time on some CPUs need to minimize system overhead " +"on those CPUs, including avoiding process load balancing if that is not " +"needed." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"When the per-cpuset flag I<sched_load_balance> is enabled (the default " +"setting), it requests load balancing across all the CPUs in that cpuset's " +"allowed CPUs, ensuring that load balancing can move a process (not otherwise " +"pinned, as by B<sched_setaffinity>(2)) from any CPU in that cpuset to any " +"other." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"When the per-cpuset flag I<sched_load_balance> is disabled, then the " +"scheduler will avoid load balancing across the CPUs in that cpuset, " +"I<except> in so far as is necessary because some overlapping cpuset has " +"I<sched_load_balance> enabled." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"So, for example, if the top cpuset has the flag I<sched_load_balance> " +"enabled, then the scheduler will load balance across all CPUs, and the " +"setting of the I<sched_load_balance> flag in other cpusets has no effect, as " +"we're already fully load balancing." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"Therefore in the above two situations, the flag I<sched_load_balance> should " +"be disabled in the top cpuset, and only some of the smaller, child cpusets " +"would have this flag enabled." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"When doing this, you don't usually want to leave any unpinned processes in " +"the top cpuset that might use nontrivial amounts of CPU, as such processes " +"may be artificially constrained to some subset of CPUs, depending on the " +"particulars of this flag setting in descendant cpusets. Even if such a " +"process could use spare CPU cycles in some other CPUs, the kernel scheduler " +"might not consider the possibility of load balancing that process to the " +"underused CPU." +msgstr "" + +#. ================== Scheduler Relax Domain Level ================== +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"Of course, processes pinned to a particular CPU can be left in a cpuset that " +"disables I<sched_load_balance> as those processes aren't going anywhere else " +"anyway." +msgstr "" + +#. type: SS +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "Scheduler relax domain level" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"The kernel scheduler performs immediate load balancing whenever a CPU " +"becomes free or another task becomes runnable. This load balancing works to " +"ensure that as many CPUs as possible are usefully employed running tasks. " +"The kernel also performs periodic load balancing off the software clock " +"described in B<time>(7). The setting of I<sched_relax_domain_level> applies " +"only to immediate load balancing. Regardless of the " +"I<sched_relax_domain_level> setting, periodic load balancing is attempted " +"over all CPUs (unless disabled by turning off I<sched_load_balance>.) In " +"any case, of course, tasks will be scheduled to run only on CPUs allowed by " +"their cpuset, as modified by B<sched_setaffinity>(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 "" +"On small systems, such as those with just a few CPUs, immediate load " +"balancing is useful to improve system interactivity and to minimize wasteful " +"idle CPU cycles. But on large systems, attempting immediate load balancing " +"across a large number of CPUs can be more costly than it is worth, depending " +"on the particular performance characteristics of the job mix and the " +"hardware." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"The exact meaning of the small integer values of I<sched_relax_domain_level> " +"will depend on internal implementation details of the kernel scheduler code " +"and on the non-uniform architecture of the hardware. Both of these will " +"evolve over time and vary by system architecture and kernel version." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"As of this writing, when this capability was introduced in Linux 2.6.26, on " +"certain popular architectures, the positive values of " +"I<sched_relax_domain_level> have the following meanings." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "B<1>" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"Perform immediate load balancing across Hyper-Thread siblings on the same " +"core." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "B<2>" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"Perform immediate load balancing across other cores in the same package." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "B<3>" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"Perform immediate load balancing across other CPUs on the same node or blade." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "B<4>" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"Perform immediate load balancing across over several (implementation detail) " +"nodes [On NUMA systems]." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "B<5>" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"Perform immediate load balancing across over all CPUs in system [On NUMA " +"systems]." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"The I<sched_relax_domain_level> value of zero (0) always means don't perform " +"immediate load balancing, hence that load balancing is done only " +"periodically, not immediately when a CPU becomes available or another task " +"becomes runnable." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"The I<sched_relax_domain_level> value of minus one (-1) always means use " +"the system default value. The system default value can vary by architecture " +"and kernel version. This system default value can be changed by kernel boot-" +"time \"relax_domain_level=\" argument." +msgstr "" + +#. type: Plain text +#: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron +#: opensuse-tumbleweed +msgid "" +"In the case of multiple overlapping cpusets which have conflicting " +"I<sched_relax_domain_level> values, then the highest such value applies to " +"all CPUs in any of the overlapping cpusets. In such cases, B<-1> is the " +"lowest value, overridden by any other value, and B<0> is the next lowest " +"value." +msgstr "" + +#. type: SH +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "FORMATS" +msgstr "" + +#. ================== Mask Format ================== +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"The following formats are used to represent sets of CPUs and memory nodes." +msgstr "" + +#. type: SS +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "Mask format" +msgstr "" + +#. type: Plain text +#: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron +#: opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"The B<Mask Format> is used to represent CPU and memory-node bit masks in the " +"I</proc/>pidI</status> file." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"This format displays each 32-bit word in hexadecimal (using ASCII characters " +"\"0\" - \"9\" and \"a\" - \"f\"); words are filled with leading zeros, if " +"required. For masks longer than one word, a comma separator is used between " +"words. Words are displayed in big-endian order, which has the most " +"significant bit first. The hex digits within a word are also in big-endian " +"order." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"The number of 32-bit words displayed is the minimum number needed to display " +"all bits of the bit mask, based on the size of the bit mask." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "Examples of the B<Mask Format>:" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "" +"00000001 # just bit 0 set\n" +"40000000,00000000,00000000 # just bit 94 set\n" +"00000001,00000000,00000000 # just bit 64 set\n" +"000000ff,00000000 # bits 32-39 set\n" +"00000000,000e3862 # 1,5,6,11-13,17-19 set\n" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "A mask with bits 0, 1, 2, 4, 8, 16, 32, and 64 set displays as:" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "00000001,00000001,00010117\n" +msgstr "" + +#. ================== List Format ================== +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"The first \"1\" is for bit 64, the second for bit 32, the third for bit 16, " +"the fourth for bit 8, the fifth for bit 4, and the \"7\" is for bits 2, 1, " +"and 0." +msgstr "" + +#. type: SS +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "List format" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"The B<List Format> for I<cpus> and I<mems> is a comma-separated list of CPU " +"or memory-node numbers and ranges of numbers, in ASCII decimal." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "Examples of the B<List Format>:" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "" +"0-4,9 # bits 0, 1, 2, 3, 4, and 9 set\n" +"0-2,7,12-14 # bits 0, 1, 2, 7, 12, 13, and 14 set\n" +msgstr "" + +#. ================== RULES ================== +#. type: SH +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "RULES" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "The following rules apply to each cpuset:" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"Its CPUs and memory nodes must be a (possibly equal) subset of its parent's." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "It can be marked I<cpu_exclusive> only if its parent is." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "It can be marked I<mem_exclusive> only if its parent is." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "If it is I<cpu_exclusive>, its CPUs may not overlap any sibling." +msgstr "" + +#. ================== PERMISSIONS ================== +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"If it is I<mem_exclusive>, its memory nodes may not overlap any sibling." +msgstr "" + +#. type: SH +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "PERMISSIONS" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"The permissions of a cpuset are determined by the permissions of the " +"directories and pseudo-files in the cpuset filesystem, normally mounted at " +"I</dev/cpuset>." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"For instance, a process can put itself in some other cpuset (than its " +"current one) if it can write the I<tasks> file for that cpuset. This " +"requires execute permission on the encompassing directories and write " +"permission on the I<tasks> file." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"An additional constraint is applied to requests to place some other process " +"in a cpuset. One process may not attach another to a cpuset unless it would " +"have permission to send that process a signal (see B<kill>(2))." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"A process may create a child cpuset if it can access and write the parent " +"cpuset directory. It can modify the CPUs or memory nodes in a cpuset if it " +"can access that cpuset's directory (execute permissions on the each of the " +"parent directories) and write the corresponding I<cpus> or I<mems> file." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"There is one minor difference between the manner in which these permissions " +"are evaluated and the manner in which normal filesystem operation " +"permissions are evaluated. The kernel interprets relative pathnames " +"starting at a process's current working directory. Even if one is operating " +"on a cpuset file, relative pathnames are interpreted relative to the " +"process's current working directory, not relative to the process's current " +"cpuset. The only ways that cpuset paths relative to a process's current " +"cpuset can be used are if either the process's current working directory is " +"its cpuset (it first did a B<cd> or B<chdir>(2) to its cpuset directory " +"beneath I</dev/cpuset>, which is a bit unusual) or if some user code " +"converts the relative cpuset path to a full filesystem path." +msgstr "" + +#. ================== WARNINGS ================== +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"In theory, this means that user code should specify cpusets using absolute " +"pathnames, which requires knowing the mount point of the cpuset filesystem " +"(usually, but not necessarily, I</dev/cpuset>). In practice, all user level " +"code that this author is aware of simply assumes that if the cpuset " +"filesystem is mounted, then it is mounted at I</dev/cpuset>. Furthermore, " +"it is common practice for carefully written user code to verify the presence " +"of the pseudo-file I</dev/cpuset/tasks> in order to verify that the cpuset " +"pseudo-filesystem is currently mounted." +msgstr "" + +#. type: SH +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "WARNINGS" +msgstr "" + +#. type: SS +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "Enabling memory_pressure" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"By default, the per-cpuset file I<cpuset.memory_pressure> always contains " +"zero (0). Unless this feature is enabled by writing \"1\" to the pseudo-" +"file I</dev/cpuset/cpuset.memory_pressure_enabled>, the kernel does not " +"compute per-cpuset I<memory_pressure>." +msgstr "" + +#. type: SS +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "Using the echo command" +msgstr "" + +#. Gack! csh(1)'s echo does this +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"When using the B<echo> command at the shell prompt to change the values of " +"cpuset files, beware that the built-in B<echo> command in some shells does " +"not display an error message if the B<write>(2) system call fails. For " +"example, if the command:" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "echo 19 E<gt> cpuset.mems\n" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"failed because memory node 19 was not allowed (perhaps the current system " +"does not have a memory node 19), then the B<echo> command might not display " +"any error. It is better to use the B</bin/echo> external command to change " +"cpuset file settings, as this command will display B<write>(2) errors, as " +"in the example:" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "" +"/bin/echo 19 E<gt> cpuset.mems\n" +"/bin/echo: write error: Invalid argument\n" +msgstr "" + +#. ================== EXCEPTIONS ================== +#. type: SH +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "EXCEPTIONS" +msgstr "" + +#. type: SS +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "Memory placement" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"Not all allocations of system memory are constrained by cpusets, for the " +"following reasons." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"If hot-plug functionality is used to remove all the CPUs that are currently " +"assigned to a cpuset, then the kernel will automatically update the " +"I<cpus_allowed> of all processes attached to CPUs in that cpuset to allow " +"all CPUs. When memory hot-plug functionality for removing memory nodes is " +"available, a similar exception is expected to apply there as well. In " +"general, the kernel prefers to violate cpuset placement, rather than " +"starving a process that has had all its allowed CPUs or memory nodes taken " +"offline. User code should reconfigure cpusets to refer only to online CPUs " +"and memory nodes when using hot-plug to add or remove such resources." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"A few kernel-critical, internal memory-allocation requests, marked " +"GFP_ATOMIC, must be satisfied immediately. The kernel may drop some request " +"or malfunction if one of these allocations fail. If such a request cannot " +"be satisfied within the current process's cpuset, then we relax the cpuset, " +"and look for memory anywhere we can find it. It's better to violate the " +"cpuset than stress the kernel." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"Allocations of memory requested by kernel drivers while processing an " +"interrupt lack any relevant process context, and are not confined by cpusets." +msgstr "" + +#. type: SS +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "Renaming cpusets" +msgstr "" + +#. ================== ERRORS ================== +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"You can use the B<rename>(2) system call to rename cpusets. Only simple " +"renaming is supported; that is, changing the name of a cpuset directory is " +"permitted, but moving a directory into a different directory is not " +"permitted." +msgstr "" + +#. type: SH +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "ERRORS" +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 implementation of cpusets sets I<errno> to specify the " +"reason for a failed system call affecting cpusets." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"The possible I<errno> settings and their meaning when set on a failed cpuset " +"call are as listed below." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "B<E2BIG>" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"Attempted a B<write>(2) on a special cpuset file with a length larger than " +"some kernel-determined upper limit on the length of such writes." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "B<EACCES>" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"Attempted to B<write>(2) the process ID (PID) of a process to a cpuset " +"I<tasks> file when one lacks permission to move that process." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"Attempted to add, using B<write>(2), a CPU or memory node to a cpuset, when " +"that CPU or memory node was not already in its parent." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"Attempted to set, using B<write>(2), I<cpuset.cpu_exclusive> or I<cpuset." +"mem_exclusive> on a cpuset whose parent lacks the same setting." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "Attempted to B<write>(2) a I<cpuset.memory_pressure> file." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "Attempted to create a file in a cpuset directory." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "B<EBUSY>" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"Attempted to remove, using B<rmdir>(2), a cpuset with attached processes." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "Attempted to remove, using B<rmdir>(2), a cpuset with child cpusets." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"Attempted to remove a CPU or memory node from a cpuset that is also in a " +"child of that cpuset." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "B<EEXIST>" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "Attempted to create, using B<mkdir>(2), a cpuset that already exists." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "Attempted to B<rename>(2) a cpuset to a name that already exists." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "B<EFAULT>" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"Attempted to B<read>(2) or B<write>(2) a cpuset file using a buffer that " +"is outside the writing processes accessible address space." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "B<EINVAL>" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"Attempted to change a cpuset, using B<write>(2), in a way that would violate " +"a I<cpu_exclusive> or I<mem_exclusive> attribute of that cpuset or any of " +"its siblings." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"Attempted to B<write>(2) an empty I<cpuset.cpus> or I<cpuset.mems> list to " +"a cpuset which has attached processes or child cpusets." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"Attempted to B<write>(2) a I<cpuset.cpus> or I<cpuset.mems> list which " +"included a range with the second number smaller than the first number." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"Attempted to B<write>(2) a I<cpuset.cpus> or I<cpuset.mems> list which " +"included an invalid character in the string." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"Attempted to B<write>(2) a list to a I<cpuset.cpus> file that did not " +"include any online CPUs." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"Attempted to B<write>(2) a list to a I<cpuset.mems> file that did not " +"include any online memory nodes." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"Attempted to B<write>(2) a list to a I<cpuset.mems> file that included a " +"node that held no memory." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "B<EIO>" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"Attempted to B<write>(2) a string to a cpuset I<tasks> file that does not " +"begin with an ASCII decimal integer." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "Attempted to B<rename>(2) a cpuset into a different directory." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "B<ENAMETOOLONG>" +msgstr "" + +#. type: Plain text +#: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron +#: opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"Attempted to B<read>(2) a I</proc/>pidI</cpuset> file for a cpuset path " +"that is longer than the kernel page size." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"Attempted to create, using B<mkdir>(2), a cpuset whose base directory name " +"is longer than 255 characters." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"Attempted to create, using B<mkdir>(2), a cpuset whose full pathname, " +"including the mount point (typically \"/dev/cpuset/\") prefix, is longer " +"than 4095 characters." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "B<ENODEV>" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"The cpuset was removed by another process at the same time as a B<write>(2) " +"was attempted on one of the pseudo-files in the cpuset directory." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "B<ENOENT>" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"Attempted to create, using B<mkdir>(2), a cpuset in a parent cpuset that " +"doesn't exist." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"Attempted to B<access>(2) or B<open>(2) a nonexistent file in a cpuset " +"directory." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "B<ENOMEM>" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"Insufficient memory is available within the kernel; can occur on a variety " +"of system calls affecting cpusets, but only if the system is extremely short " +"of memory." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "B<ENOSPC>" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"Attempted to B<write>(2) the process ID (PID) of a process to a cpuset " +"I<tasks> file when the cpuset had an empty I<cpuset.cpus> or empty I<cpuset." +"mems> setting." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"Attempted to B<write>(2) an empty I<cpuset.cpus> or I<cpuset.mems> setting " +"to a cpuset that has tasks attached." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "B<ENOTDIR>" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "Attempted to B<rename>(2) a nonexistent cpuset." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "B<EPERM>" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "Attempted to remove a file from a cpuset directory." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "B<ERANGE>" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"Specified a I<cpuset.cpus> or I<cpuset.mems> list to the kernel which " +"included a number too large for the kernel to set in its bit masks." +msgstr "" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "B<ESRCH>" +msgstr "" + +#. ================== VERSIONS ================== +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"Attempted to B<write>(2) the process ID (PID) of a nonexistent process to a " +"cpuset I<tasks> file." +msgstr "" + +#. type: SH +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "VERSIONS" +msgstr "" + +#. ================== NOTES ================== +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "Cpusets appeared in Linux 2.6.12." +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 "" + +#. ================== BUGS ================== +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"Despite its name, the I<pid> parameter is actually a thread ID, and each " +"thread in a threaded group can be attached to a different cpuset. The value " +"returned from a call to B<gettid>(2) can be passed in the argument I<pid>." +msgstr "" + +#. type: SH +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "BUGS" +msgstr "" + +#. ================== EXAMPLES ================== +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"I<cpuset.memory_pressure> cpuset files can be opened for writing, creation, " +"or truncation, but then the B<write>(2) fails with I<errno> set to " +"B<EACCES>, and the creation and truncation options on B<open>(2) have no " +"effect." +msgstr "" + +#. type: SH +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "EXAMPLES" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"The following examples demonstrate querying and setting cpuset options using " +"shell commands." +msgstr "" + +#. type: SS +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "Creating and attaching to a cpuset." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"To create a new cpuset and attach the current command shell to it, the steps " +"are:" +msgstr "" + +#. type: IP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "(1)" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "mkdir /dev/cpuset (if not already done)" +msgstr "" + +#. type: IP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "(2)" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "mount -t cpuset none /dev/cpuset (if not already done)" +msgstr "" + +#. type: IP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "(3)" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "Create the new cpuset using B<mkdir>(1)." +msgstr "" + +#. type: IP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "(4)" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "Assign CPUs and memory nodes to the new cpuset." +msgstr "" + +#. type: IP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "(5)" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "Attach the shell to the new cpuset." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"For example, the following sequence of commands will set up a cpuset named " +"\"Charlie\", containing just CPUs 2 and 3, and memory node 1, and then " +"attach the current shell to that cpuset." +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< mkdir /dev/cpuset>\n" +"$B< mount -t cpuset cpuset /dev/cpuset>\n" +"$B< cd /dev/cpuset>\n" +"$B< mkdir Charlie>\n" +"$B< cd Charlie>\n" +"$B< /bin/echo 2-3 E<gt> cpuset.cpus>\n" +"$B< /bin/echo 1 E<gt> cpuset.mems>\n" +"$B< /bin/echo $$ E<gt> tasks>\n" +"# The current shell is now running in cpuset Charlie\n" +"# The next line should display \\[aq]/Charlie\\[aq]\n" +"$B< cat /proc/self/cpuset>\n" +msgstr "" + +#. type: SS +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "Migrating a job to different memory nodes." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"To migrate a job (the set of processes attached to a cpuset) to different " +"CPUs and memory nodes in the system, including moving the memory pages " +"currently allocated to that job, perform the following steps." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"Let's say we want to move the job in cpuset I<alpha> (CPUs 4\\[en]7 and " +"memory nodes 2\\[en]3) to a new cpuset I<beta> (CPUs 16\\[en]19 and memory " +"nodes 8\\[en]9)." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "First create the new cpuset I<beta>." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "Then allow CPUs 16\\[en]19 and memory nodes 8\\[en]9 in I<beta>." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "Then enable I<memory_migration> in I<beta>." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "Then move each process from I<alpha> to I<beta>." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "The following sequence of commands accomplishes this." +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< cd /dev/cpuset>\n" +"$B< mkdir beta>\n" +"$B< cd beta>\n" +"$B< /bin/echo 16-19 E<gt> cpuset.cpus>\n" +"$B< /bin/echo 8-9 E<gt> cpuset.mems>\n" +"$B< /bin/echo 1 E<gt> cpuset.memory_migrate>\n" +"$B< while read i; do /bin/echo $i; done E<lt> ../alpha/tasks E<gt> tasks>\n" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"The above should move any processes in I<alpha> to I<beta>, and any memory " +"held by these processes on memory nodes 2\\[en]3 to memory nodes 8\\[en]9, " +"respectively." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "Notice that the last step of the above sequence did not do:" +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< cp ../alpha/tasks tasks>\n" +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"The I<while> loop, rather than the seemingly easier use of the B<cp>(1) " +"command, was necessary because only one process PID at a time may be written " +"to the I<tasks> file." +msgstr "" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"The same effect (writing one PID at a time) as the I<while> loop can be " +"accomplished more efficiently, in fewer keystrokes and in syntax that works " +"on any shell, but alas more obscurely, by using the B<-u> (unbuffered) " +"option of B<sed>(1):" +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< sed -un p E<lt> ../alpha/tasks E<gt> tasks>\n" +msgstr "" + +#. ================== SEE ALSO ================== +#. 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<taskset>(1), B<get_mempolicy>(2), B<getcpu>(2), B<mbind>(2), " +"B<sched_getaffinity>(2), B<sched_setaffinity>(2), B<sched_setscheduler>(2), " +"B<set_mempolicy>(2), B<CPU_SET>(3), B<proc>(5), B<cgroups>(7), B<numa>(7), " +"B<sched>(7), B<migratepages>(8), B<numactl>(8)" +msgstr "" + +#. commit 45ce80fb6b6f9594d1396d44dd7e7c02d596fef8 +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"I<Documentation/admin-guide/cgroup-v1/cpusets.rst> in the Linux kernel " +"source tree (or I<Documentation/cgroup-v1/cpusets.txt> before Linux 4.18, " +"and I<Documentation/cpusets.txt> before Linux 2.6.29)" +msgstr "" + +#. type: TH +#: debian-bookworm +#, no-wrap +msgid "2023-02-05" +msgstr "" + +#. type: TH +#: debian-bookworm +#, no-wrap +msgid "Linux man-pages 6.03" +msgstr "" + +#. ================== proc status ================== +#. type: Plain text +#: debian-bookworm +msgid "" +"In addition to the above pseudo-files in each directory below I</dev/" +"cpuset>, each process has a pseudo-file, I</proc/E<lt>pidE<gt>/cpuset>, that " +"displays the path of the process's cpuset directory relative to the root of " +"the cpuset filesystem." +msgstr "" + +#. type: Plain text +#: debian-bookworm +msgid "" +"Also the I</proc/E<lt>pidE<gt>/status> file for each process has four added " +"lines, displaying the process's I<Cpus_allowed> (on which CPUs it may be " +"scheduled) and I<Mems_allowed> (on which memory nodes it may obtain memory), " +"in the two formats B<Mask Format> and B<List Format> (see below) as shown " +"in the following example:" +msgstr "" + +#. type: Plain text +#: debian-bookworm opensuse-leap-15-6 +msgid "" +"In the case of multiple overlapping cpusets which have conflicting " +"I<sched_relax_domain_level> values, then the highest such value applies to " +"all CPUs in any of the overlapping cpusets. In such cases, the value " +"B<minus one (-1)> is the lowest value, overridden by any other value, and " +"the value B<zero (0)> is the next lowest value." +msgstr "" + +#. type: Plain text +#: debian-bookworm +msgid "" +"The B<Mask Format> is used to represent CPU and memory-node bit masks in the " +"I</proc/E<lt>pidE<gt>/status> file." +msgstr "" + +#. type: Plain text +#: debian-bookworm +msgid "" +"Attempted to B<read>(2) a I</proc/E<lt>pidE<gt>/cpuset> file for a cpuset " +"path that is longer than the kernel page size." +msgstr "" + +#. type: TH +#: debian-unstable opensuse-tumbleweed +#, no-wrap +msgid "2023-07-18" +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 "2023-04-03" +msgstr "" + +#. type: TH +#: opensuse-leap-15-6 +#, no-wrap +msgid "Linux man-pages 6.04" +msgstr "" |