From: Piotr Kwapulinski <kwapulinski.piotr@gmail.com>
To: Michal Hocko <mhocko@kernel.org>
Cc: akpm@linux-foundation.org, kirill.shutemov@linux.intel.com,
vbabka@suse.cz, rientjes@google.com, mgorman@techsingularity.net,
liangchen.linux@gmail.com, nzimmer@sgi.com, linux-mm@kvack.org,
linux-kernel@vger.kernel.org
Subject: Re: [PATCH] mm/mempolicy.c: forbid static or relative flags for local NUMA mode
Date: Tue, 20 Sep 2016 17:47:20 +0200 [thread overview]
Message-ID: <20160920154719.GA3899@home> (raw)
In-Reply-To: <20160919115204.GL10785@dhcp22.suse.cz>
On Mon, Sep 19, 2016 at 01:52:05PM +0200, Michal Hocko wrote:
> On Sun 18-09-16 13:29:43, 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.
>
> man 2 set_mempolicy doesn't list this as invalid option. Maybe this is a
> documentation bug but is it possible that somebody will see this as an
> unexpected error?
>
The MPOL_LOCAL is currently not documented in "man set_mempolicy(2)".
In case the nodemask is empty for MPOL_LOCAL it is transformed into MPOL_PREFERRED.
The motivation for disabling MPOL_F_STATIC_NODES and MPOL_F_RELATIVE_NODES
flags for MPOL_PREFERRED with empty nodemask is described at this commit
3e1f064562fcff7. Currently I call set_mempolicy(MPOL_LOCAL, ...) via the syscall()
but despite of that it is inconsistent with MPOL_PREFERRED.
> > 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).
>
> I am not sure I understand this argument. What does this patch actually
> fix? If this is about the execution time then why not just bail out
> early when MPOL_LOCAL && (MPOL_F_STATIC_NODES || MPOL_F_RELATIVE_NODES)
>
The mpol_new() performs additional checks on nodemask.
> > 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))
> > --
> > 2.9.2
>
> --
> Michal Hocko
> SUSE Labs
--
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>
WARNING: multiple messages have this Message-ID (diff)
From: Piotr Kwapulinski <kwapulinski.piotr@gmail.com>
To: Michal Hocko <mhocko@kernel.org>
Cc: akpm@linux-foundation.org, kirill.shutemov@linux.intel.com,
vbabka@suse.cz, rientjes@google.com, mgorman@techsingularity.net,
liangchen.linux@gmail.com, nzimmer@sgi.com, linux-mm@kvack.org,
linux-kernel@vger.kernel.org
Subject: Re: [PATCH] mm/mempolicy.c: forbid static or relative flags for local NUMA mode
Date: Tue, 20 Sep 2016 17:47:20 +0200 [thread overview]
Message-ID: <20160920154719.GA3899@home> (raw)
In-Reply-To: <20160919115204.GL10785@dhcp22.suse.cz>
On Mon, Sep 19, 2016 at 01:52:05PM +0200, Michal Hocko wrote:
> On Sun 18-09-16 13:29:43, 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.
>
> man 2 set_mempolicy doesn't list this as invalid option. Maybe this is a
> documentation bug but is it possible that somebody will see this as an
> unexpected error?
>
The MPOL_LOCAL is currently not documented in "man set_mempolicy(2)".
In case the nodemask is empty for MPOL_LOCAL it is transformed into MPOL_PREFERRED.
The motivation for disabling MPOL_F_STATIC_NODES and MPOL_F_RELATIVE_NODES
flags for MPOL_PREFERRED with empty nodemask is described at this commit
3e1f064562fcff7. Currently I call set_mempolicy(MPOL_LOCAL, ...) via the syscall()
but despite of that it is inconsistent with MPOL_PREFERRED.
> > 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).
>
> I am not sure I understand this argument. What does this patch actually
> fix? If this is about the execution time then why not just bail out
> early when MPOL_LOCAL && (MPOL_F_STATIC_NODES || MPOL_F_RELATIVE_NODES)
>
The mpol_new() performs additional checks on nodemask.
> > 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))
> > --
> > 2.9.2
>
> --
> Michal Hocko
> SUSE Labs
--
Piotr Kwapulinski
next prev parent reply other threads:[~2016-09-20 15:47 UTC|newest]
Thread overview: 54+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-09-18 11:29 [PATCH] mm/mempolicy.c: forbid static or relative flags for local NUMA mode Piotr Kwapulinski
2016-09-18 11:29 ` Piotr Kwapulinski
2016-09-19 11:52 ` Michal Hocko
2016-09-19 11:52 ` Michal Hocko
2016-09-20 15:47 ` Piotr Kwapulinski [this message]
2016-09-20 15:47 ` Piotr Kwapulinski
2016-09-20 0:57 ` David Rientjes
2016-09-20 0:57 ` David Rientjes
2016-09-20 15:56 ` Piotr Kwapulinski
2016-09-20 15:56 ` Piotr Kwapulinski
2016-09-20 20:05 ` David Rientjes
2016-09-20 20:05 ` David Rientjes
2016-09-27 13:19 ` [PATCH 0/1] man/set_mempolicy.2,mbind.2: add MPOL_LOCAL NUMA memory policy documentation Piotr Kwapulinski
2016-09-27 13:19 ` Piotr Kwapulinski
[not found] ` <20160927131948.11974-1-kwapulinski.piotr-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2016-10-04 8:36 ` Christoph Lameter
2016-10-04 8:36 ` Christoph Lameter
2016-10-04 8:36 ` Christoph Lameter
[not found] ` <alpine.DEB.2.20.1610040333050.10814-wcBtFHqTun5QOdAKl3ChDw@public.gmane.org>
2016-10-09 18:56 ` [PATCH v2 " Piotr Kwapulinski
2016-10-09 18:56 ` Piotr Kwapulinski
2016-10-09 18:56 ` Piotr Kwapulinski
2016-10-10 13:55 ` Christoph Lameter
2016-10-10 13:55 ` Christoph Lameter
2016-10-10 16:23 ` [PATCH v3 " Piotr Kwapulinski
2016-10-10 16:23 ` Piotr Kwapulinski
2016-10-12 7:55 ` Michael Kerrisk (man-pages)
2016-10-12 7:55 ` Michael Kerrisk (man-pages)
2016-10-12 14:08 ` Christoph Lameter
2016-10-12 14:08 ` Christoph Lameter
2016-10-12 14:35 ` Michael Kerrisk (man-pages)
2016-10-12 14:35 ` Michael Kerrisk (man-pages)
2016-10-12 15:53 ` Piotr Kwapulinski
2016-10-12 15:53 ` Piotr Kwapulinski
2016-10-12 19:55 ` Christoph Lameter
2016-10-12 19:55 ` Christoph Lameter
2016-10-13 6:48 ` Michael Kerrisk (man-pages)
2016-10-13 6:48 ` Michael Kerrisk (man-pages)
2016-09-27 13:25 ` [PATCH v2 0/1] mm/mempolicy.c: forbid static or relative flags for local NUMA mode Piotr Kwapulinski
2016-09-27 13:25 ` Piotr Kwapulinski
2016-10-27 16:30 ` [PATCH v3 " Piotr Kwapulinski
2016-10-27 16:30 ` Piotr Kwapulinski
[not found] ` <20161027163037.4089-1-kwapulinski.piotr-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2016-11-01 0:21 ` David Rientjes
2016-11-01 0:21 ` David Rientjes
2016-11-01 0:21 ` David Rientjes
[not found] ` <alpine.DEB.2.10.1609201304450.134671-X6Q0R45D7oAcqpCFd4KODRPsWskHk0ljAL8bYrjMMd8@public.gmane.org>
2016-09-27 13:22 ` [PATCH 1/1] mm/mempolicy.c: add MPOL_LOCAL NUMA memory policy documentation Piotr Kwapulinski
2016-09-27 13:22 ` Piotr Kwapulinski
2016-09-27 13:22 ` Piotr Kwapulinski
2016-09-27 13:27 ` [PATCH 1/1] man/set_mempolicy.2,mbind.2: forbid static or relative flags for local NUMA mode Piotr Kwapulinski
2016-09-27 13:27 ` Piotr Kwapulinski
2016-09-27 13:27 ` Piotr Kwapulinski
[not found] ` <20160918112943.1645-1-kwapulinski.piotr-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2016-09-20 15:12 ` [PATCH] mm/mempolicy.c: " Vlastimil Babka
2016-09-20 15:12 ` Vlastimil Babka
2016-09-20 15:12 ` Vlastimil Babka
2016-09-20 16:23 ` Piotr Kwapulinski
2016-09-20 16:23 ` Piotr Kwapulinski
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20160920154719.GA3899@home \
--to=kwapulinski.piotr@gmail.com \
--cc=akpm@linux-foundation.org \
--cc=kirill.shutemov@linux.intel.com \
--cc=liangchen.linux@gmail.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=mgorman@techsingularity.net \
--cc=mhocko@kernel.org \
--cc=nzimmer@sgi.com \
--cc=rientjes@google.com \
--cc=vbabka@suse.cz \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.