Hi Michael, On Wed, Oct 12, 2016 at 09:55:16AM +0200, Michael Kerrisk (man-pages) wrote: > Hello Piotr, > > On 10/10/2016 06:23 PM, Piotr Kwapulinski wrote: > > The MPOL_LOCAL mode has been implemented by > > Peter Zijlstra <a.p.zijlstra@xxxxxxxxx> > > (commit: 479e2802d09f1e18a97262c4c6f8f17ae5884bd8). > > Add the documentation for this mode. > > Thanks. I've applied this patch. I have a question below. > > > Signed-off-by: Piotr Kwapulinski <kwapulinski.piotr@xxxxxxxxx> > > --- > > This version fixes grammar > > --- > > man2/mbind.2 | 28 ++++++++++++++++++++++++---- > > man2/set_mempolicy.2 | 19 ++++++++++++++++++- > > 2 files changed, 42 insertions(+), 5 deletions(-) > > > > diff --git a/man2/mbind.2 b/man2/mbind.2 > > index 3ea24f6..854580c 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". > > What is the sense of "may not be" here? (And repeated below). > Is the meaning "this could be something other than"? > Presumably the answer is yes, in which case I'll clarify > the wording there. Let me know. > > Cheers, > > Michael > That's right. This could be "local allocation" or any other memory policy. Thanks Piotr Kwapulinski > > > > 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 1f02037..22b0f7c 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 > > > > > -- > Michael Kerrisk > Linux man-pages maintainer; http://www.kernel.org/doc/man-pages/ > Linux/UNIX System Programming Training: http://man7.org/training/ -- Piotr Kwapulinski -- To unsubscribe from this list: send the line "unsubscribe linux-api" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html