From: Jiang Liu <jiang.liu@linux.intel.com>
To: Robin Holt <robinmholt@gmail.com>
Cc: Andrew Morton <akpm@linux-foundation.org>,
Mel Gorman <mgorman@suse.de>,
David Rientjes <rientjes@google.com>,
Mike Galbraith <umgwanakikbuti@gmail.com>,
Peter Zijlstra <peterz@infradead.org>,
"Rafael J . Wysocki" <rafael.j.wysocki@intel.com>,
Tang Chen <tangchen@cn.fujitsu.com>, Tejun Heo <tj@kernel.org>,
Cliff Whickman <cpw@sgi.com>, Tony Luck <tony.luck@intel.com>,
linux-mm@kvack.org, linux-hotplug@vger.kernel.org,
LKML <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
Date: Wed, 19 Aug 2015 12:45:11 +0000 [thread overview]
Message-ID: <55D47A57.3030702@linux.intel.com> (raw)
In-Reply-To: <CAPp3RGoo3ZPTApwezua01Adjt1JaBraCTUCF0BcN=SKJfQO0iQ@mail.gmail.com>
On 2015/8/19 19:52, Robin Holt wrote:
> On Sun, Aug 16, 2015 at 10:19 PM, Jiang Liu <jiang.liu@linux.intel.com> 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 <jiang.liu@linux.intel.com>
>> ---
>> 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
>
WARNING: multiple messages have this Message-ID (diff)
From: Jiang Liu <jiang.liu@linux.intel.com>
To: Robin Holt <robinmholt@gmail.com>
Cc: Andrew Morton <akpm@linux-foundation.org>,
Mel Gorman <mgorman@suse.de>,
David Rientjes <rientjes@google.com>,
Mike Galbraith <umgwanakikbuti@gmail.com>,
Peter Zijlstra <peterz@infradead.org>,
"Rafael J . Wysocki" <rafael.j.wysocki@intel.com>,
Tang Chen <tangchen@cn.fujitsu.com>, Tejun Heo <tj@kernel.org>,
Cliff Whickman <cpw@sgi.com>, Tony Luck <tony.luck@intel.com>,
linux-mm@kvack.org, linux-hotplug@vger.kernel.org,
LKML <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
Date: Wed, 19 Aug 2015 20:45:11 +0800 [thread overview]
Message-ID: <55D47A57.3030702@linux.intel.com> (raw)
In-Reply-To: <CAPp3RGoo3ZPTApwezua01Adjt1JaBraCTUCF0BcN=SKJfQO0iQ@mail.gmail.com>
On 2015/8/19 19:52, Robin Holt wrote:
> On Sun, Aug 16, 2015 at 10:19 PM, Jiang Liu <jiang.liu@linux.intel.com> 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 <jiang.liu@linux.intel.com>
>> ---
>> 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, 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: Jiang Liu <jiang.liu@linux.intel.com>
To: Robin Holt <robinmholt@gmail.com>
Cc: Andrew Morton <akpm@linux-foundation.org>,
Mel Gorman <mgorman@suse.de>,
David Rientjes <rientjes@google.com>,
Mike Galbraith <umgwanakikbuti@gmail.com>,
Peter Zijlstra <peterz@infradead.org>,
"Rafael J . Wysocki" <rafael.j.wysocki@intel.com>,
Tang Chen <tangchen@cn.fujitsu.com>, Tejun Heo <tj@kernel.org>,
Cliff Whickman <cpw@sgi.com>, Tony Luck <tony.luck@intel.com>,
linux-mm@kvack.org, linux-hotplug@vger.kernel.org,
LKML <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
Date: Wed, 19 Aug 2015 20:45:11 +0800 [thread overview]
Message-ID: <55D47A57.3030702@linux.intel.com> (raw)
In-Reply-To: <CAPp3RGoo3ZPTApwezua01Adjt1JaBraCTUCF0BcN=SKJfQO0iQ@mail.gmail.com>
On 2015/8/19 19:52, Robin Holt wrote:
> On Sun, Aug 16, 2015 at 10:19 PM, Jiang Liu <jiang.liu@linux.intel.com> 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 <jiang.liu@linux.intel.com>
>> ---
>> 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
>
next prev parent reply other threads:[~2015-08-19 12:45 UTC|newest]
Thread overview: 130+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-08-17 3:18 [Patch V3 0/9] Enable memoryless node support for x86 Jiang Liu
2015-08-17 3:18 ` Jiang Liu
2015-08-17 3:18 ` Jiang Liu
2015-08-17 3:18 ` [Patch V3 1/9] x86, NUMA, ACPI: Online node earlier when doing CPU hot-addition Jiang Liu
2015-08-17 3:18 ` Jiang Liu
2015-08-17 3:18 ` Jiang Liu
2015-08-17 3:18 ` [Patch V3 2/9] kernel/profile.c: Replace cpu_to_mem() with cpu_to_node() Jiang Liu
2015-08-17 3:18 ` Jiang Liu
2015-08-17 3:18 ` Jiang Liu
2015-08-18 0:31 ` David Rientjes
2015-08-18 0:31 ` David Rientjes
2015-08-18 0:31 ` David Rientjes
2015-08-19 7:18 ` Jiang Liu
2015-08-19 7:18 ` Jiang Liu
2015-08-19 7:18 ` Jiang Liu
2015-08-20 0:00 ` David Rientjes
2015-08-20 0:00 ` David Rientjes
2015-08-20 0:00 ` David Rientjes
2015-10-09 2:35 ` Jiang Liu
2015-10-09 2:35 ` Jiang Liu
2015-10-09 2:35 ` Jiang Liu
2015-08-17 3:19 ` [Patch V3 3/9] sgi-xp: Replace cpu_to_node() with cpu_to_mem() to support memoryless node Jiang Liu
2015-08-17 3:19 ` Jiang Liu
2015-08-17 3:19 ` Jiang Liu
2015-08-18 0:25 ` David Rientjes
2015-08-18 0:25 ` David Rientjes
2015-08-18 0:25 ` David Rientjes
2015-08-19 8:20 ` Jiang Liu
2015-08-19 8:20 ` Jiang Liu
2015-08-19 8:20 ` Jiang Liu
2015-08-20 0:02 ` David Rientjes
2015-08-20 0:02 ` David Rientjes
2015-08-20 0:02 ` David Rientjes
2015-08-20 6:36 ` Jiang Liu
2015-08-20 6:36 ` Jiang Liu
2015-08-20 6:36 ` Jiang Liu
2015-10-09 5:04 ` Jiang Liu
2015-10-09 5:04 ` Jiang Liu
2015-10-09 5:04 ` Jiang Liu
2015-08-19 11:52 ` Robin Holt
2015-08-19 11:52 ` Robin Holt
2015-08-19 11:52 ` Robin Holt
2015-08-19 12:45 ` Jiang Liu [this message]
2015-08-19 12:45 ` Jiang Liu
2015-08-19 12:45 ` Jiang Liu
2015-08-17 3:19 ` [Patch V3 4/9] openvswitch: " Jiang Liu
2015-08-17 3:19 ` Jiang Liu
2015-08-17 3:19 ` Jiang Liu
2015-08-18 0:14 ` Pravin Shelar
2015-08-18 0:14 ` Pravin Shelar
2015-08-18 0:14 ` Pravin Shelar
2015-08-17 3:19 ` [Intel-wired-lan] [Patch V3 5/9] i40e: Use numa_mem_id() to better " Jiang Liu
2015-08-17 3:19 ` Jiang Liu
2015-08-17 3:19 ` Jiang Liu
2015-08-17 3:19 ` Jiang Liu
2015-08-18 0:35 ` [Intel-wired-lan] " David Rientjes
2015-08-18 0:35 ` David Rientjes
2015-08-18 0:35 ` David Rientjes
2015-08-18 0:35 ` David Rientjes
2015-08-19 17:04 ` [Intel-wired-lan] " Bowers, AndrewX
2015-08-19 22:38 ` Patil, Kiran
2015-08-19 22:38 ` Patil, Kiran
2015-08-19 22:38 ` Patil, Kiran
2015-08-20 0:18 ` David Rientjes
2015-08-20 0:18 ` David Rientjes
2015-08-20 0:18 ` David Rientjes
2015-08-20 0:18 ` David Rientjes
2015-08-20 0:18 ` David Rientjes
2015-10-08 20:20 ` Andrew Morton
2015-10-08 20:20 ` Andrew Morton
2015-10-08 20:20 ` Andrew Morton
2015-10-08 20:20 ` Andrew Morton
2015-10-08 20:20 ` Andrew Morton
2015-10-09 5:52 ` Jiang Liu
2015-10-09 5:52 ` Jiang Liu
2015-10-09 5:52 ` Jiang Liu
2015-10-09 5:52 ` Jiang Liu
2015-10-09 5:52 ` Jiang Liu
2015-10-09 9:08 ` Kamezawa Hiroyuki
2015-10-09 9:08 ` Kamezawa Hiroyuki
2015-10-09 9:08 ` Kamezawa Hiroyuki
2015-10-09 9:08 ` Kamezawa Hiroyuki
2015-10-09 9:08 ` Kamezawa Hiroyuki
2015-10-09 9:25 ` Jiang Liu
2015-10-09 9:25 ` Jiang Liu
2015-10-09 9:25 ` Jiang Liu
2015-10-09 9:25 ` Jiang Liu
2015-10-09 9:25 ` Jiang Liu
2015-08-17 3:19 ` [Intel-wired-lan] [Patch V3 6/9] i40evf: " Jiang Liu
2015-08-17 3:19 ` Jiang Liu
2015-08-17 3:19 ` Jiang Liu
2015-08-17 3:19 ` Jiang Liu
2015-08-17 19:03 ` [Intel-wired-lan] " Patil, Kiran
2015-08-17 19:03 ` Patil, Kiran
2015-08-17 19:03 ` Patil, Kiran
2015-08-18 21:34 ` Jeff Kirsher
2015-08-18 21:34 ` Jeff Kirsher
2015-08-17 3:19 ` [Patch V3 7/9] x86, numa: Kill useless code to improve code readability Jiang Liu
2015-08-17 3:19 ` Jiang Liu
2015-08-17 3:19 ` Jiang Liu
2015-08-17 3:19 ` [Patch V3 8/9] mm: Update _mem_id_[] for every possible CPU when memory configuration changes Jiang Liu
2015-08-17 3:19 ` Jiang Liu
2015-08-17 3:19 ` Jiang Liu
2015-08-17 3:19 ` [Patch V3 9/9] mm, x86: Enable memoryless node support to better support CPU/memory hotplug Jiang Liu
2015-08-17 3:19 ` Jiang Liu
2015-08-17 3:19 ` Jiang Liu
2015-08-17 3:19 ` Jiang Liu
2015-08-18 6:11 ` Tang Chen
2015-08-18 6:11 ` Tang Chen
2015-08-18 6:11 ` Tang Chen
2015-08-18 6:11 ` Tang Chen
2015-08-18 6:59 ` Jiang Liu
2015-08-18 6:59 ` Jiang Liu
2015-08-18 11:28 ` Tang Chen
2015-08-18 11:28 ` Tang Chen
2015-08-18 11:28 ` Tang Chen
2015-08-18 11:28 ` Tang Chen
2015-08-18 7:31 ` Ingo Molnar
2015-08-18 7:31 ` Ingo Molnar
2015-08-18 7:31 ` Ingo Molnar
2015-08-18 7:31 ` Ingo Molnar
2015-08-17 21:35 ` [Patch V3 0/9] Enable memoryless node support for x86 Andrew Morton
2015-08-17 21:35 ` Andrew Morton
2015-08-17 21:35 ` Andrew Morton
2015-08-18 10:02 ` Tang Chen
2015-08-18 10:02 ` Tang Chen
2015-08-18 10:02 ` Tang Chen
2015-08-19 8:09 ` Jiang Liu
2015-08-19 8:09 ` Jiang Liu
2015-08-19 8:09 ` Jiang Liu
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=55D47A57.3030702@linux.intel.com \
--to=jiang.liu@linux.intel.com \
--cc=akpm@linux-foundation.org \
--cc=cpw@sgi.com \
--cc=linux-hotplug@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=mgorman@suse.de \
--cc=peterz@infradead.org \
--cc=rafael.j.wysocki@intel.com \
--cc=rientjes@google.com \
--cc=robinmholt@gmail.com \
--cc=tangchen@cn.fujitsu.com \
--cc=tj@kernel.org \
--cc=tony.luck@intel.com \
--cc=umgwanakikbuti@gmail.com \
--cc=x86@kernel.org \
/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.