Re: [PATCH 2/6] change alloc function in pcpu_alloc_pages

From: Lee Schermerhorn
Date: Fri Apr 16 2010 - 15:13:20 EST


On Fri, 2010-04-16 at 11:07 -0500, Christoph Lameter wrote:
> On Thu, 15 Apr 2010, Minchan Kim wrote:
>
> > I don't want to remove alloc_pages for UMA system.
>
> alloc_pages is the same as alloc_pages_any_node so why have it?
>
> > #define alloc_pages alloc_page_sexact_node
> >
> > What I want to remove is just alloc_pages_node. :)
>
> Why remove it? If you want to get rid of -1 handling then check all the
> callsites and make sure that they are not using -1.
>
> Also could you define a constant for -1? -1 may have various meanings. One
> is the local node and the other is any node.

NUMA_NO_NODE is #defined as (-1) and can be used for this purpose. '-1'
has been replaced by this in many cases. It can be interpreted as "No
node specified" == "any node is acceptable". But, it also has multiple
meanings. E.g., in the hugetlb sysfs attribute and sysctl functions it
indicates the global hstates [all nodes] vs a per node hstate. So, I
suppose one could define a NUMA_ANY_NODE, to make the intention clear at
the call site.

I believe that all usage of -1 to mean the local node has been removed,
unless I missed one. Local allocation is now indicated by a mempolicy
mode flag--MPOL_F_LOCAL. It's treated as a special case of
MPOL_PREFERRED.

> The difference is if memory
> policies are obeyed or not. Note that alloc_pages follows memory policies
> whereas alloc_pages_node does not.
>
> Therefore
>
> alloc_pages() != alloc_pages_node( , -1)
>
> --
> To unsubscribe, send a message with 'unsubscribe linux-mm' in
> the body to majordomo@xxxxxxxxxx For more info on Linux MM,
> see: http://www.linux-mm.org/ .
> Don't email: <a href=mailto:"dont@xxxxxxxxx";> email@xxxxxxxxx </a>

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/