All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jiang Liu <jiang.liu@linux.intel.com>
To: David Rientjes <rientjes@google.com>
Cc: Andrew Morton <akpm@linux-foundation.org>,
	Mel Gorman <mgorman@suse.de>,
	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>, Robin Holt <robinmholt@gmail.com>,
	Tony Luck <tony.luck@intel.com>,
	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
Date: Thu, 20 Aug 2015 06:36:12 +0000	[thread overview]
Message-ID: <55D5755C.5060803@linux.intel.com> (raw)
In-Reply-To: <alpine.DEB.2.10.1508191701010.30666@chino.kir.corp.google.com>

On 2015/8/20 8:02, David Rientjes wrote:
> On Wed, 19 Aug 2015, Jiang Liu wrote:
> 
>>> 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.
>> Hi David,
>> 	There are some usage cases, such as memory migration,
>> expect the page allocator rejecting memory allocation requests
>> if there is no memory on local node. So we have:
>> 1) alloc_pages_node(cpu_to_node(), __GFP_THISNODE) to only allocate
>> memory from local node.
>> 2) alloc_pages_node(cpu_to_mem(), __GFP_THISNODE) to allocate memory
>> from local node or from nearest node if local node is memoryless.
>>
> 
> Right, so do you think it would be better to make the default zonelists be 
> setup so that cpu_to_node()->zonelists = cpu_to_mem()->zonelists and then 
> individual callers that want to fail for memoryless nodes check 
> populated_zone() themselves?
Hi David,
	Great idea:) I think that means we are going to kill the
concept of memoryless node, and we only need to specially handle
a few callers who really care about whether there is memory on
local node.
	Then I need some time to audit all usages of __GFP_THISNODE
and update you whether it's doable.
Thanks!
Gerry


WARNING: multiple messages have this Message-ID (diff)
From: Jiang Liu <jiang.liu@linux.intel.com>
To: David Rientjes <rientjes@google.com>
Cc: Andrew Morton <akpm@linux-foundation.org>,
	Mel Gorman <mgorman@suse.de>,
	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>, Robin Holt <robinmholt@gmail.com>,
	Tony Luck <tony.luck@intel.com>,
	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
Date: Thu, 20 Aug 2015 14:36:12 +0800	[thread overview]
Message-ID: <55D5755C.5060803@linux.intel.com> (raw)
In-Reply-To: <alpine.DEB.2.10.1508191701010.30666@chino.kir.corp.google.com>

On 2015/8/20 8:02, David Rientjes wrote:
> On Wed, 19 Aug 2015, Jiang Liu wrote:
> 
>>> 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.
>> Hi David,
>> 	There are some usage cases, such as memory migration,
>> expect the page allocator rejecting memory allocation requests
>> if there is no memory on local node. So we have:
>> 1) alloc_pages_node(cpu_to_node(), __GFP_THISNODE) to only allocate
>> memory from local node.
>> 2) alloc_pages_node(cpu_to_mem(), __GFP_THISNODE) to allocate memory
>> from local node or from nearest node if local node is memoryless.
>>
> 
> Right, so do you think it would be better to make the default zonelists be 
> setup so that cpu_to_node()->zonelists == cpu_to_mem()->zonelists and then 
> individual callers that want to fail for memoryless nodes check 
> populated_zone() themselves?
Hi David,
	Great idea:) I think that means we are going to kill the
concept of memoryless node, and we only need to specially handle
a few callers who really care about whether there is memory on
local node.
	Then I need some time to audit all usages of __GFP_THISNODE
and update you whether it's doable.
Thanks!
Gerry

--
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: David Rientjes <rientjes@google.com>
Cc: Andrew Morton <akpm@linux-foundation.org>,
	Mel Gorman <mgorman@suse.de>,
	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>, Robin Holt <robinmholt@gmail.com>,
	Tony Luck <tony.luck@intel.com>,
	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
Date: Thu, 20 Aug 2015 14:36:12 +0800	[thread overview]
Message-ID: <55D5755C.5060803@linux.intel.com> (raw)
In-Reply-To: <alpine.DEB.2.10.1508191701010.30666@chino.kir.corp.google.com>

On 2015/8/20 8:02, David Rientjes wrote:
> On Wed, 19 Aug 2015, Jiang Liu wrote:
> 
>>> 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.
>> Hi David,
>> 	There are some usage cases, such as memory migration,
>> expect the page allocator rejecting memory allocation requests
>> if there is no memory on local node. So we have:
>> 1) alloc_pages_node(cpu_to_node(), __GFP_THISNODE) to only allocate
>> memory from local node.
>> 2) alloc_pages_node(cpu_to_mem(), __GFP_THISNODE) to allocate memory
>> from local node or from nearest node if local node is memoryless.
>>
> 
> Right, so do you think it would be better to make the default zonelists be 
> setup so that cpu_to_node()->zonelists == cpu_to_mem()->zonelists and then 
> individual callers that want to fail for memoryless nodes check 
> populated_zone() themselves?
Hi David,
	Great idea:) I think that means we are going to kill the
concept of memoryless node, and we only need to specially handle
a few callers who really care about whether there is memory on
local node.
	Then I need some time to audit all usages of __GFP_THISNODE
and update you whether it's doable.
Thanks!
Gerry


  reply	other threads:[~2015-08-20  6:36 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 [this message]
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
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=55D5755C.5060803@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.