Re: [PATCH] mm, memory_hotplug: teach has_unmovable_pages about of LRU migrateable pages

From: Michal Hocko
Date: Mon Nov 05 2018 - 04:35:54 EST


On Mon 05-11-18 17:26:18, Baoquan He wrote:
[...]
> diff --git a/mm/page_alloc.c b/mm/page_alloc.c
> index a919ba5..021e39d 100644
> --- a/mm/page_alloc.c
> +++ b/mm/page_alloc.c
> @@ -7824,7 +7824,8 @@ bool has_unmovable_pages(struct zone *zone, struct page *page, int count,
> if (__PageMovable(page))
> continue;
>
> - if (!PageLRU(page))
> + if (!PageLRU(page) &&
> + (get_pageblock_migratetype(page) != MIGRATE_MOVABLE))
> found++;
> /*
> * If there are RECLAIMABLE pages, we need to check

As explained during the private conversion I am not really thrilled by
this check. AFAIU this will be the case for basically all pages in the
zone_movable. As we have seen already some unexpected ones can lurk in
easily.

--
Michal Hocko
SUSE Labs