Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1243038 > unrolled thread

Re: [Patch V3 3/9] sgi-xp: Replace cpu_to_node() with cpu_to_mem() to support memoryless node

Started byJiang Liu <jiang.liu@linux.intel.com>
First post2015-10-09 07:10 +0200
Last post2015-10-09 07:10 +0200
Articles 1 — 1 participant

Back to article view | Back to linux.kernel

This discussion starts older than the indexed window; earlier articles aren't shown. The article labeled Started by below is the oldest one visible, not the original post.


Contents

  Re: [Patch V3 3/9] sgi-xp: Replace cpu_to_node() with cpu_to_mem() to  support memoryless node Jiang Liu <jiang.liu@linux.intel.com> - 2015-10-09 07:10 +0200

#1243038 — Re: [Patch V3 3/9] sgi-xp: Replace cpu_to_node() with cpu_to_mem() to support memoryless node

FromJiang Liu <jiang.liu@linux.intel.com>
Date2015-10-09 07:10 +0200
SubjectRe: [Patch V3 3/9] sgi-xp: Replace cpu_to_node() with cpu_to_mem() to support memoryless node
Message-ID<qhy6l-FU-5@gated-at.bofh.it>
On 2015/8/20 14:36, Jiang Liu wrote:
> 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.
Hi David,
	It seems that I'm too optimistic:(. After auditing all usages
of __GFP_THISNODE and reading Documentation/vm/numa again, I feel it
would be better to keep cpu_to_mem()/numa_mem_id(). It makes things
more clear if we follow rules:
1) cpu_to_node()/numa_node_id() for schedule domain
2) cpu_to_mem()/numa_mem_id() for memory management domain
3) alloc_pages_node(cpu_to_node(cpu), __GFP_THIS_NODE) for special
   usage cases.
   And it would be easier for maintenance than open-coded checking of
populated_zone() by using alloc_pages_node(cpu_to_node(cpu),
__GFP_THIS_NODE).
Thanks!
Gerry
--
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/

[toc] | [standalone]


Back to top | Article view | linux.kernel


csiph-web