set_mempolicy.2,mbind.2: Add MPOL_LOCAL NUMA memory policy documentation

The MPOL_LOCAL mode has been implemented by
Peter Zijlstra <a.p.zijlstra@chello.nl>
(commit: 479e2802d09f1e18a97262c4c6f8f17ae5884bd8).
Add the documentation for this mode.

Reviewed-by: Christoph Lameter <cl@linux.com>
Signed-off-by: Piotr Kwapulinski <kwapulinski.piotr@gmail.com>
This commit is contained in:
Piotr Kwapulinski 2016-10-10 18:23:10 +02:00 committed by Michael Kerrisk
parent 77483b7c9b
commit a2b94599f4
2 changed files with 42 additions and 5 deletions

View File

@ -130,8 +130,9 @@ argument must specify one of
.BR MPOL_DEFAULT ,
.BR MPOL_BIND ,
.BR MPOL_INTERLEAVE ,
.BR MPOL_PREFERRED ,
or
.BR MPOL_PREFERRED .
.BR MPOL_LOCAL .
All policy modes except
.B MPOL_DEFAULT
require the caller to specify via the
@ -258,9 +259,26 @@ and
.I maxnode
arguments specify the empty set, then the memory is allocated on
the node of the CPU that triggered the allocation.
This is the only way to specify "local allocation" for a
range of memory via
.BR mbind ().
.B MPOL_LOCAL
specifies the "local allocation", the memory is allocated on
the node of the CPU that triggered the allocation, "local node".
The
.I nodemask
and
.I maxnode
arguments must specify the empty set. If the "local node" is low
on free memory the kernel will try to allocate memory from other
nodes. The kernel will allocate memory from the "local node"
whenever memory for this node is available. If the "local node"
is not allowed by the process's current cpuset context the kernel
will try to allocate memory from other nodes. The kernel will
allocate memory from the "local node" whenever it becomes allowed
by the process's current cpuset context. In contrast
.B MPOL_DEFAULT
reverts to the policy of the process which may have been set with
.BR set_mempolicy (2).
It may not be the "local allocation".
If
.B MPOL_MF_STRICT
@ -440,6 +458,8 @@ To select explicit "local allocation" for a memory range,
specify a
.I mode
of
.B MPOL_LOCAL
or
.B MPOL_PREFERRED
with an empty set of nodes.
This method will work for

View File

@ -79,8 +79,9 @@ argument must specify one of
.BR MPOL_DEFAULT ,
.BR MPOL_BIND ,
.BR MPOL_INTERLEAVE ,
.BR MPOL_PREFERRED ,
or
.BR MPOL_PREFERRED .
.BR MPOL_LOCAL .
All modes except
.B MPOL_DEFAULT
require the caller to specify via the
@ -211,6 +212,22 @@ arguments specify the empty set, then the policy
specifies "local allocation"
(like the system default policy discussed above).
.B MPOL_LOCAL
specifies the "local allocation", the memory is allocated on
the node of the CPU that triggered the allocation, "local node".
The
.I nodemask
and
.I maxnode
arguments must specify the empty set. If the "local node" is low
on free memory the kernel will try to allocate memory from other
nodes. The kernel will allocate memory from the "local node"
whenever memory for this node is available. If the "local node"
is not allowed by the process's current cpuset context the kernel
will try to allocate memory from other nodes. The kernel will
allocate memory from the "local node" whenever it becomes allowed
by the process's current cpuset context.
The thread memory policy is preserved across an
.BR execve (2),
and is inherited by child threads created using