Re: [PATCH] mm,memory_hotplug: Explicitly pass the head to isolate_huge_page

From: Michal Hocko
Date: Wed Feb 13 2019 - 07:33:45 EST

On Wed 13-02-19 09:13:14, Oscar Salvador wrote:
> On Tue, Feb 12, 2019 at 04:13:05PM -0800, Mike Kravetz wrote:
> > Well, commit 94310cbcaa3c ("mm/madvise: enable (soft|hard) offline of
> > HugeTLB pages at PGD level") should have allowed migration of gigantic
> > pages. I believe it was added for 16GB pages on powerpc. However, due
> > to subsequent changes I suspsect this no longer works.
> I will take a look, I am definitely interested in that.
> Thanks for pointing it out Mike.
> >
> > > This check doesn't make much sense in principle. Why should we bail out
> > > based on a section size? We are offlining a pfn range. All that we care
> > > about is whether the hugetlb is migrateable.
> >
> > Yes. Do note that the do_migrate_range is only called from __offline_pages
> > with a start_pfn that was returned by scan_movable_pages. scan_movable_pages
> > has the hugepage_migration_supported check for PageHuge pages. So, it would
> > seem to be redundant to do another check in do_migrate_range.
> Well, the thing is that if the gigantic page does not start at the very beginning
> of the memblock, and we do find migrateable pages before it in scan_movable_pages(),
> the range that we will pass to do_migrate_ranges() will contain the gigantic page.
> So we need the check there to cover that case too, although I agree that the current
> check is misleading.

Why isn't our check in has_unmovable_pages sufficient?
Michal Hocko