Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751950AbbHRAZT (ORCPT ); Mon, 17 Aug 2015 20:25:19 -0400 Received: from mail-pa0-f49.google.com ([209.85.220.49]:36168 "EHLO mail-pa0-f49.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751089AbbHRAZR (ORCPT ); Mon, 17 Aug 2015 20:25:17 -0400 Date: Mon, 17 Aug 2015 17:25:15 -0700 (PDT) From: David Rientjes X-X-Sender: rientjes@chino.kir.corp.google.com To: Jiang Liu cc: Andrew Morton , Mel Gorman , Mike Galbraith , Peter Zijlstra , "Rafael J . Wysocki" , Tang Chen , Tejun Heo , Cliff Whickman , Robin Holt , Tony Luck , linux-mm@kvack.org, linux-hotplug@vger.kernel.org, linux-kernel@vger.kernel.org, x86@kernel.org Subject: Re: [Patch V3 3/9] sgi-xp: Replace cpu_to_node() with cpu_to_mem() to support memoryless node In-Reply-To: <1439781546-7217-4-git-send-email-jiang.liu@linux.intel.com> Message-ID: References: <1439781546-7217-1-git-send-email-jiang.liu@linux.intel.com> <1439781546-7217-4-git-send-email-jiang.liu@linux.intel.com> User-Agent: Alpine 2.10 (DEB 1266 2009-07-14) MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1610 Lines: 39 On Mon, 17 Aug 2015, Jiang Liu wrote: > Function xpc_create_gru_mq_uv() allocates memory with __GFP_THISNODE > flag set, which may cause permanent memory allocation failure on > memoryless node. So replace cpu_to_node() with cpu_to_mem() to better > support memoryless node. For node with memory, cpu_to_mem() is the same > as cpu_to_node(). > > Signed-off-by: Jiang Liu > --- > drivers/misc/sgi-xp/xpc_uv.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/misc/sgi-xp/xpc_uv.c b/drivers/misc/sgi-xp/xpc_uv.c > index 95c894482fdd..9210981c0d5b 100644 > --- a/drivers/misc/sgi-xp/xpc_uv.c > +++ b/drivers/misc/sgi-xp/xpc_uv.c > @@ -238,7 +238,7 @@ xpc_create_gru_mq_uv(unsigned int mq_size, int cpu, char *irq_name, > > mq->mmr_blade = uv_cpu_to_blade_id(cpu); > > - nid = cpu_to_node(cpu); > + nid = cpu_to_mem(cpu); > page = alloc_pages_exact_node(nid, > GFP_KERNEL | __GFP_ZERO | __GFP_THISNODE, > pg_order); Why not simply fix build_zonelists_node() so that the __GFP_THISNODE zonelists are set up to reference the zones of cpu_to_mem() for memoryless nodes? It seems much better than checking and maintaining every __GFP_THISNODE user to determine if they are using a memoryless node or not. I don't feel that this solution is maintainable in the longterm. -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/