linux-api.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* 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).