* Re: [PATCH] mm/mempolicy.c: forbid static or relative flags for local NUMA mode [not found] ` <20160918112943.1645-1-kwapulinski.piotr-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> @ 2016-09-20 15:12 ` Vlastimil Babka 2016-09-20 16:23 ` Piotr Kwapulinski 0 siblings, 1 reply; 2+ messages in thread From: Vlastimil Babka @ 2016-09-20 15:12 UTC (permalink / raw) To: Piotr Kwapulinski, akpm-de/tnXTf+JLsfHDXvbKv3WD2FQJk+8+b Cc: kirill.shutemov-VuQAYsv1563Yd54FQh9/CA, rientjes-hpIqsD4AKlfQT0dZR+AlfA, mhocko-DgEjT+Ai2ygdnm+yROfE0A, mgorman-3eNAlZScCAx27rWaFMvyedHuzzzSOjJt, liangchen.linux-Re5JQEeQqe8AvxtiuMwx3w, nzimmer-sJ/iWh9BUns, linux-mm-Bw31MaZKKs3YtjvyW6yDsg, linux-kernel-u79uwXL29TY76Z2rM5mHXA, Linux API, linux-man-u79uwXL29TY76Z2rM5mHXA, Peter Zijlstra [CC += linux-api-u79uwXL29TY76Z2rM5mHXA@public.gmane.org] Since this is a kernel-user-space API change, please CC linux-api@. The kernel source file Documentation/SubmitChecklist notes that all Linux kernel patches that change userspace interfaces should be CCed to linux-api-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, so that the various parties who are interested in API changes are informed. For further information, see https://www.kernel.org/doc/man-pages/linux-api-ml.html I think man page should document the change? Also I noticed that MPOL_NUMA itself is missing in the man page... On 09/18/2016 01:29 PM, Piotr Kwapulinski wrote: > The MPOL_F_STATIC_NODES and MPOL_F_RELATIVE_NODES flags are irrelevant > when setting them for MPOL_LOCAL NUMA memory policy via set_mempolicy. > Return the "invalid argument" from set_mempolicy whenever > any of these flags is passed along with MPOL_LOCAL. > It is consistent with MPOL_PREFERRED passed with empty nodemask. > It also slightly shortens the execution time in paths where these flags > are used e.g. when trying to rebind the NUMA nodes for changes in > cgroups cpuset mems (mpol_rebind_preferred()) or when just printing > the mempolicy structure (/proc/PID/numa_maps). Hmm not sure I understand. How does change in mpol_new() affect mpol_rebind_preferred()? Vlastimil > Isolated tests done. > > Signed-off-by: Piotr Kwapulinski <kwapulinski.piotr-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> > --- > mm/mempolicy.c | 4 +++- > 1 file changed, 3 insertions(+), 1 deletion(-) > > diff --git a/mm/mempolicy.c b/mm/mempolicy.c > index 2da72a5..27b07d1 100644 > --- a/mm/mempolicy.c > +++ b/mm/mempolicy.c > @@ -276,7 +276,9 @@ static struct mempolicy *mpol_new(unsigned short mode, unsigned short flags, > return ERR_PTR(-EINVAL); > } > } else if (mode == MPOL_LOCAL) { > - if (!nodes_empty(*nodes)) > + if (!nodes_empty(*nodes) || > + (flags & MPOL_F_STATIC_NODES) || > + (flags & MPOL_F_RELATIVE_NODES)) > return ERR_PTR(-EINVAL); > mode = MPOL_PREFERRED; > } else if (nodes_empty(*nodes)) > ^ permalink raw reply [flat|nested] 2+ messages in thread
* Re: [PATCH] mm/mempolicy.c: forbid static or relative flags for local NUMA mode 2016-09-20 15:12 ` [PATCH] mm/mempolicy.c: forbid static or relative flags for local NUMA mode Vlastimil Babka @ 2016-09-20 16:23 ` Piotr Kwapulinski 0 siblings, 0 replies; 2+ messages in thread From: Piotr Kwapulinski @ 2016-09-20 16:23 UTC (permalink / raw) To: Vlastimil Babka Cc: akpm, kirill.shutemov, rientjes, mhocko, mgorman, liangchen.linux, nzimmer, linux-mm, linux-kernel, Linux API, linux-man, Peter Zijlstra On Tue, Sep 20, 2016 at 05:12:16PM +0200, Vlastimil Babka wrote: > [CC += linux-api@vger.kernel.org] > > Since this is a kernel-user-space API change, please CC linux-api@. The > kernel source file Documentation/SubmitChecklist notes that all Linux kernel > patches that change userspace interfaces should be CCed to > linux-api@vger.kernel.org, so that the various parties who are interested in > API changes are informed. For further information, see > https://www.kernel.org/doc/man-pages/linux-api-ml.html > > I think man page should document the change? Also I noticed that MPOL_NUMA > itself is missing in the man page... > > On 09/18/2016 01:29 PM, Piotr Kwapulinski wrote: > > The MPOL_F_STATIC_NODES and MPOL_F_RELATIVE_NODES flags are irrelevant > > when setting them for MPOL_LOCAL NUMA memory policy via set_mempolicy. > > Return the "invalid argument" from set_mempolicy whenever > > any of these flags is passed along with MPOL_LOCAL. > > It is consistent with MPOL_PREFERRED passed with empty nodemask. > > It also slightly shortens the execution time in paths where these flags > > are used e.g. when trying to rebind the NUMA nodes for changes in > > cgroups cpuset mems (mpol_rebind_preferred()) or when just printing > > the mempolicy structure (/proc/PID/numa_maps). > > Hmm not sure I understand. How does change in mpol_new() affect > mpol_rebind_preferred()? When MPOL_LOCAL is passed to set_mempolicy along with empty nodemask it is transformed into MPOL_PREFERRED (inside mpol_new()). Unlike MPOL_PREFERRED the MPOL_LOCAL may be set along with MPOL_F_STATIC_NODES or MPOL_F_RELATIVE_NODES flag (inconsistency). Later on when the set of allowed NUMA nodes is changed by cgroups cpuset.mems the mpol_rebind_preferred() is called. Because one of the flags is set the unnecessary code is executed. The same is for mpol_to_str(). > > Vlastimil > > > Isolated tests done. > > > > Signed-off-by: Piotr Kwapulinski <kwapulinski.piotr@gmail.com> > > --- > > mm/mempolicy.c | 4 +++- > > 1 file changed, 3 insertions(+), 1 deletion(-) > > > > diff --git a/mm/mempolicy.c b/mm/mempolicy.c > > index 2da72a5..27b07d1 100644 > > --- a/mm/mempolicy.c > > +++ b/mm/mempolicy.c > > @@ -276,7 +276,9 @@ static struct mempolicy *mpol_new(unsigned short mode, unsigned short flags, > > return ERR_PTR(-EINVAL); > > } > > } else if (mode == MPOL_LOCAL) { > > - if (!nodes_empty(*nodes)) > > + if (!nodes_empty(*nodes) || > > + (flags & MPOL_F_STATIC_NODES) || > > + (flags & MPOL_F_RELATIVE_NODES)) > > return ERR_PTR(-EINVAL); > > mode = MPOL_PREFERRED; > > } else if (nodes_empty(*nodes)) > > > -- Piotr Kwapulinski -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@kvack.org. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a> ^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2016-09-20 16:23 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[not found] <20160918112943.1645-1-kwapulinski.piotr@gmail.com>
[not found] ` <20160918112943.1645-1-kwapulinski.piotr-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2016-09-20 15:12 ` [PATCH] mm/mempolicy.c: forbid static or relative flags for local NUMA mode Vlastimil Babka
2016-09-20 16:23 ` Piotr Kwapulinski
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).