diff options
| author | Piotr Kwapulinski <kwapulinski.piotr@gmail.com> | 2016-10-10 18:23:10 +0200 |
|---|---|---|
| committer | Michael Kerrisk <mtk.manpages@gmail.com> | 2016-10-12 09:40:43 +0200 |
| commit | a2b94599f46dfadedd3384feff328cb4b4621ca1 (patch) | |
| tree | 2337a0d17796137ccf8d529c20958f8fa09e2e3e | |
| parent | 77483b7c9be92a9e9a75e0bf7c729c8bf7bc8f60 (diff) | |
| download | man-pages-a2b94599f46dfadedd3384feff328cb4b4621ca1.tar.gz | |
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>
| -rw-r--r-- | man2/mbind.2 | 28 | ||||
| -rw-r--r-- | man2/set_mempolicy.2 | 19 |
2 files changed, 42 insertions, 5 deletions
diff --git a/man2/mbind.2 b/man2/mbind.2 index 3ea24f6927..854580c5a9 100644 --- a/man2/mbind.2 +++ b/man2/mbind.2 @@ -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 diff --git a/man2/set_mempolicy.2 b/man2/set_mempolicy.2 index 1f020373d5..22b0f7c355 100644 --- a/man2/set_mempolicy.2 +++ b/man2/set_mempolicy.2 @@ -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 |
