Re: [PATCH] mm: rename and document alloc_pages_exact_node

David Rientjes
2015-07-21T21:31:09Z

On Tue, 21 Jul 2015, Vlastimil Babka wrote:

> The function alloc_pages_exact_node() was introduced in 6484eb3e2a81 ("page
> allocator: do not check NUMA node ID when the caller knows the node is valid")
> as an optimized variant of alloc_pages_node(), that doesn't allow the node id
> to be -1. Unfortunately the name of the function can easily suggest that the
> allocation is restricted to the given node. In truth, the node is only
> preferred, unless __GFP_THISNODE is among the gfp flags.
>
> The misleading name has lead to mistakes in the past, see 5265047ac301 ("mm,
> thp: really limit transparent hugepage allocation to local node") and
> b360edb43f8e ("mm, mempolicy: migrate_to_node should only migrate to node").
>
> To prevent further mistakes, this patch renames the function to
> alloc_pages_prefer_node() and documents it together with alloc_pages_node().
>

alloc_pages_exact_node(), as you said, connotates that the allocation will
take place on that node or will fail. So why not go beyond this patch and
actually make alloc_pages_exact_node() set __GFP_THISNODE and then call
into a new alloc_pages_prefer_node(), which would be the current
alloc_pages_exact_node() implementation, and then fix up the callers?