From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751133AbdJBKiJ (ORCPT ); Mon, 2 Oct 2017 06:38:09 -0400 Received: from usa-sjc-mx-foss1.foss.arm.com ([217.140.101.70]:35206 "EHLO foss.arm.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750949AbdJBKiH (ORCPT ); Mon, 2 Oct 2017 06:38:07 -0400 Date: Mon, 2 Oct 2017 11:38:07 +0100 From: Will Deacon To: Zhen Lei Cc: Catalin Marinas , linux-kernel , linux-api , Greg Kroah-Hartman , Michal Hocko , linux-mm , Tianhong Ding , Hanjun Guo , Libin , Kefeng Wang , akpm@linux-foundation.org Subject: Re: [PATCH v2 1/1] mm: only dispaly online cpus of the numa node Message-ID: <20171002103806.GB3823@arm.com> References: <1506678805-15392-1-git-send-email-thunder.leizhen@huawei.com> <1506678805-15392-2-git-send-email-thunder.leizhen@huawei.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1506678805-15392-2-git-send-email-thunder.leizhen@huawei.com> User-Agent: Mutt/1.5.23 (2014-03-12) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org [+akpm] Hi Thunder, On Fri, Sep 29, 2017 at 05:53:25PM +0800, Zhen Lei wrote: > When I executed numactl -H(which read /sys/devices/system/node/nodeX/cpumap > and display cpumask_of_node for each node), but I got different result on > X86 and arm64. For each numa node, the former only displayed online CPUs, > and the latter displayed all possible CPUs. Unfortunately, both Linux > documentation and numactl manual have not described it clear. > > I sent a mail to ask for help, and Michal Hocko replied > that he preferred to print online cpus because it doesn't really make much > sense to bind anything on offline nodes. > > Signed-off-by: Zhen Lei > Acked-by: Michal Hocko > --- > drivers/base/node.c | 12 ++++++++++-- > 1 file changed, 10 insertions(+), 2 deletions(-) Which tree is this intended to go through? I'm happy to take it via arm64, but I don't want to tread on anybody's toes in linux-next and it looks like there are already queued changes to this file via Andrew's tree. Will > diff --git a/drivers/base/node.c b/drivers/base/node.c > index 3855902..aae2402 100644 > --- a/drivers/base/node.c > +++ b/drivers/base/node.c > @@ -27,13 +27,21 @@ static struct bus_type node_subsys = { > > static ssize_t node_read_cpumap(struct device *dev, bool list, char *buf) > { > + ssize_t n; > + cpumask_var_t mask; > struct node *node_dev = to_node(dev); > - const struct cpumask *mask = cpumask_of_node(node_dev->dev.id); > > /* 2008/04/07: buf currently PAGE_SIZE, need 9 chars per 32 bits. */ > BUILD_BUG_ON((NR_CPUS/32 * 9) > (PAGE_SIZE-1)); > > - return cpumap_print_to_pagebuf(list, buf, mask); > + if (!alloc_cpumask_var(&mask, GFP_KERNEL)) > + return 0; > + > + cpumask_and(mask, cpumask_of_node(node_dev->dev.id), cpu_online_mask); > + n = cpumap_print_to_pagebuf(list, buf, mask); > + free_cpumask_var(mask); > + > + return n; > } > > static inline ssize_t node_read_cpumask(struct device *dev, > -- > 2.5.0 > > From mboxrd@z Thu Jan 1 00:00:00 1970 From: Will Deacon Subject: Re: [PATCH v2 1/1] mm: only dispaly online cpus of the numa node Date: Mon, 2 Oct 2017 11:38:07 +0100 Message-ID: <20171002103806.GB3823@arm.com> References: <1506678805-15392-1-git-send-email-thunder.leizhen@huawei.com> <1506678805-15392-2-git-send-email-thunder.leizhen@huawei.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Return-path: Content-Disposition: inline In-Reply-To: <1506678805-15392-2-git-send-email-thunder.leizhen@huawei.com> Sender: owner-linux-mm@kvack.org To: Zhen Lei Cc: Catalin Marinas , linux-kernel , linux-api , Greg Kroah-Hartman , Michal Hocko , linux-mm , Tianhong Ding , Hanjun Guo , Libin , Kefeng Wang , akpm@linux-foundation.org List-Id: linux-api@vger.kernel.org [+akpm] Hi Thunder, On Fri, Sep 29, 2017 at 05:53:25PM +0800, Zhen Lei wrote: > When I executed numactl -H(which read /sys/devices/system/node/nodeX/cpumap > and display cpumask_of_node for each node), but I got different result on > X86 and arm64. For each numa node, the former only displayed online CPUs, > and the latter displayed all possible CPUs. Unfortunately, both Linux > documentation and numactl manual have not described it clear. > > I sent a mail to ask for help, and Michal Hocko replied > that he preferred to print online cpus because it doesn't really make much > sense to bind anything on offline nodes. > > Signed-off-by: Zhen Lei > Acked-by: Michal Hocko > --- > drivers/base/node.c | 12 ++++++++++-- > 1 file changed, 10 insertions(+), 2 deletions(-) Which tree is this intended to go through? I'm happy to take it via arm64, but I don't want to tread on anybody's toes in linux-next and it looks like there are already queued changes to this file via Andrew's tree. Will > diff --git a/drivers/base/node.c b/drivers/base/node.c > index 3855902..aae2402 100644 > --- a/drivers/base/node.c > +++ b/drivers/base/node.c > @@ -27,13 +27,21 @@ static struct bus_type node_subsys = { > > static ssize_t node_read_cpumap(struct device *dev, bool list, char *buf) > { > + ssize_t n; > + cpumask_var_t mask; > struct node *node_dev = to_node(dev); > - const struct cpumask *mask = cpumask_of_node(node_dev->dev.id); > > /* 2008/04/07: buf currently PAGE_SIZE, need 9 chars per 32 bits. */ > BUILD_BUG_ON((NR_CPUS/32 * 9) > (PAGE_SIZE-1)); > > - return cpumap_print_to_pagebuf(list, buf, mask); > + if (!alloc_cpumask_var(&mask, GFP_KERNEL)) > + return 0; > + > + cpumask_and(mask, cpumask_of_node(node_dev->dev.id), cpu_online_mask); > + n = cpumap_print_to_pagebuf(list, buf, mask); > + free_cpumask_var(mask); > + > + return n; > } > > static inline ssize_t node_read_cpumask(struct device *dev, > -- > 2.5.0 > > -- 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: email@kvack.org