Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754087AbbHSMpV (ORCPT ); Wed, 19 Aug 2015 08:45:21 -0400 Received: from mga14.intel.com ([192.55.52.115]:35079 "EHLO mga14.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753714AbbHSMpT (ORCPT ); Wed, 19 Aug 2015 08:45:19 -0400 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.15,709,1432623600"; d="scan'208";a="787031567" Subject: Re: [Patch V3 3/9] sgi-xp: Replace cpu_to_node() with cpu_to_mem() to support memoryless node To: Robin Holt References: <1439781546-7217-1-git-send-email-jiang.liu@linux.intel.com> <1439781546-7217-4-git-send-email-jiang.liu@linux.intel.com> Cc: Andrew Morton , Mel Gorman , David Rientjes , Mike Galbraith , Peter Zijlstra , "Rafael J . Wysocki" , Tang Chen , Tejun Heo , Cliff Whickman , Tony Luck , linux-mm@kvack.org, linux-hotplug@vger.kernel.org, LKML , x86@kernel.org From: Jiang Liu Organization: Intel Message-ID: <55D47A57.3030702@linux.intel.com> Date: Wed, 19 Aug 2015 20:45:11 +0800 User-Agent: Mozilla/5.0 (Windows NT 6.2; WOW64; rv:38.0) Gecko/20100101 Thunderbird/38.1.0 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 2066 Lines: 49 On 2015/8/19 19:52, Robin Holt wrote: > On Sun, Aug 16, 2015 at 10:19 PM, 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); > > I would recommend rejecting this. First, SGI's UV system does not and > can not support memory-less nodes. Additionally the hardware _REALLY_ > wants the memory to be local to the CPU. We will register this memory > region with the node firmware. That will set the hardware up to watch > this memory block and raise an IRQ targeting the registered CPU when > anything is written into the memory block. This is all part of how > cross-partition communications expects to work. > > Additionally, the interrupt handler will read the memory region, so > having node-local memory is extremely helpful. Hi Robin, Thanks for review, I will drop this patch in next version. Actually, if SGI UV systems don't support memoryless node, cpu_to_mem() is the same as cpu_to_node(). Thanks! Gerry > > Thanks, > Robin > -- 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/