Re: [RFC PATCH 2/2] mm, memory_hotplug: drop CONFIG_MOVABLE_NODE

From: Michal Hocko
Date: Wed May 24 2017 - 09:50:42 EST


On Wed 24-05-17 15:30:17, Igor Mammedov wrote:
> On Wed, 24 May 2017 14:24:11 +0200
> Michal Hocko <mhocko@xxxxxxxxxx> wrote:
>
> [...]
> > index facc20a3f962..ec7d6ae01c96 100644
> > --- a/Documentation/admin-guide/kernel-parameters.txt
> > +++ b/Documentation/admin-guide/kernel-parameters.txt
> > @@ -2246,8 +2246,11 @@
> [...]
> > + movable. This means that the memory of such nodes
> > + will be usable only for movable allocations which
> > + rules out almost all kernel allocations. Use with
> > + caution!
> maybe dumb question but, is it really true that kernel won't ever
> do kernel allocations from movable zone?
>
> looking at kmalloc(slab): we can get here:
>
> get_page_from_freelist() ->
> rmqueue() ->
> __rmqueue() ->
> __rmqueue_fallback() ->
> find_suitable_fallback()
>
> and it might return movable fallback and page could be stolen from there.

No, you are mixing movable/unmovable pageblocks and movable zones.
Movable zone basically works the same way as the Highmem zone. Have a
look at gfp_zone() and high_zoneidx usage in get_page_from_freelist
--
Michal Hocko
SUSE Labs