.SH NAME
cpuset \- confine processes to processor and memory node subsets
.SH DESCRIPTION
-The cpuset file system is a pseudo-file-system interface
+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.
.B nodev cpuset
in the file
.IR /proc/filesystems .
-By mounting the cpuset file system (see the
+By mounting the cpuset filesystem (see the
.B EXAMPLE
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 file
-system is not even mounted, then the cpuset mechanism,
+on a system is not modified or if the cpuset filesystem
+is not even mounted, then the cpuset mechanism,
though present, has no affect on the system's behavior.
.PP
A cpuset defines a list of CPUs and memory nodes.
while NUMA (non-uniform memory access) systems have multiple memory nodes.
.PP
Cpusets are represented as directories in a hierarchical
-pseudo-file system, where the top directory in the hierarchy
+pseudo-filesystem, where the top directory in the hierarchy
.RI ( /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
-file-system permissions.
+filesystem permissions.
.PP
Every process in the system belongs to exactly one cpuset.
A process is confined to run only on the CPUs in
.IR cpuset.memory_spread_page " (since Linux 2.6.17)"
Flag (0 or 1).
If set (1), pages in the kernel page cache
-(file-system buffers) are uniformly spread across the cpuset.
+(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.
each process has a pseudo-file,
.IR /proc/<pid>/cpuset ,
that displays the path of the process's cpuset directory
-relative to the root of the cpuset file system.
+relative to the root of the cpuset filesystem.
.\" ================== proc status ==================
.PP
Also the
or not, restrict allocations of memory for user space.
.PP
This enables configuring a system so that several independent
-jobs can share common kernel data, such as file system pages,
+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
the kernel will run the command
.IR /sbin/cpuset_release_agent ,
supplying the pathname (relative to the mount point of the
-cpuset file system) of the abandoned cpuset.
+cpuset filesystem) of the abandoned cpuset.
This enables automatic removal of abandoned cpusets.
.PP
The default value of
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 file system pages are repurposed by first writing them
+Dirty filesystem pages are repurposed by first writing them
to disk.
-Unmodified file system buffer pages are repurposed
+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.
.PP
.\" ================== Memory Spread ==================
.SS Memory spread
There are two Boolean flag files per cpuset that control where the
-kernel allocates pages for the file-system buffers and related
+kernel allocates pages for the filesystem buffers and related
in-kernel data structures.
They are called
.I cpuset.memory_spread_page
If the per-cpuset Boolean flag file
.I cpuset.memory_spread_page
is set, then
-the kernel will spread the file-system buffers (page cache) evenly
+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.
.PP
If the per-cpuset Boolean flag file
.I cpuset.memory_spread_slab
is set,
-then the kernel will spread some file-system-related slab caches,
+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.
memory nodes close to the CPUs which are running the threads that most
frequently access that data; but also
.IP b)
-need to access large file-system data sets that must to be spread
+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.
.PP
Without this policy,
.\" ================== PERMISSIONS ==================
.SH PERMISSIONS
The permissions of a cpuset are determined by the permissions
-of the directories and pseudo-files in the cpuset file system,
+of the directories and pseudo-files in the cpuset filesystem,
normally mounted at
.IR /dev/cpuset .
.PP
file.
.PP
There is one minor difference between the manner in which these
-permissions are evaluated and the manner in which normal file-system
+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.
.IR /dev/cpuset ,
which is a bit unusual)
or if some user code converts the relative cpuset path to a
-full file-system path.
+full filesystem path.
.PP
In theory, this means that user code should specify cpusets
using absolute pathnames, which requires knowing the mount point of
-the cpuset file system (usually, but not necessarily,
+the cpuset filesystem (usually, but not necessarily,
.IR /dev/cpuset ).
In practice, all user level code that this author is aware of
-simply assumes that if the cpuset file system is mounted, then
+simply assumes that if the cpuset filesystem is mounted, then
it is mounted at
.IR /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-file system
+in order to verify that the cpuset pseudo-filesystem
is currently mounted.
.\" ================== WARNINGS ==================
.SH WARNINGS