From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1755342AbcISLwQ (ORCPT ); Mon, 19 Sep 2016 07:52:16 -0400 Received: from mail-wm0-f66.google.com ([74.125.82.66]:33325 "EHLO mail-wm0-f66.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751214AbcISLwI (ORCPT ); Mon, 19 Sep 2016 07:52:08 -0400 Date: Mon, 19 Sep 2016 13:52:05 +0200 From: Michal Hocko To: Piotr Kwapulinski 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 Message-ID: <20160919115204.GL10785@dhcp22.suse.cz> References: <20160918112943.1645-1-kwapulinski.piotr@gmail.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20160918112943.1645-1-kwapulinski.piotr@gmail.com> User-Agent: Mutt/1.6.0 (2016-04-01) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 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? > 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) > Isolated tests done. > > Signed-off-by: Piotr Kwapulinski > --- > 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