Subject: Re: [PATCH] mm: rename and document alloc_pages_exact_node

From: Vlastimil Babka <[email-masked]>
Date: Fri, 24 Jul 2015 16:52:18 +0200

On 07/23/2015 10:27 PM, David Rientjes wrote:
> On Thu, 23 Jul 2015, Christoph Lameter wrote:
>
>>> The only possible downside would be existing users of
>>> alloc_pages_node() that are calling it with an offline node.  Since it's a
>>> VM_BUG_ON() that would catch that, I think it should be changed to a
>>> VM_WARN_ON() and eventually fixed up because it's nonsensical.
>>> VM_BUG_ON() here should be avoided.
>>
>> The offline node thing could be addresses by using numa_mem_id()?
>>
>
> I was concerned about any callers that were passing an offline node, not
> NUMA_NO_NODE, today.  One of the alloc-node functions has a VM_BUG_ON()
> for it, the other silently calls node_zonelist() on it.
>
> I suppose the final alloc_pages_node() implementation could be
>
>          if (nid == NUMA_NO_NODE || VM_WARN_ON(!node_online(nid)))
>                  nid = numa_mem_id();
>
>          VM_BUG_ON(nid < 0 || nid >= MAX_NUMNODES);
>          return __alloc_pages(gfp_mask, order, node_zonelist(nid, gfp_mask));
>
> though.

I've posted v2 based on David's and Christoph's suggestions (thanks) but 
to avoid spamming everyone until we agree on the final interface, it's 
marked as RFC and excludes the arch people from CC:

http://marc.info/?l=linux-kernel&m=143774920902608&w=2