Re: gigantic hugepages vs. movable zones

From: Michal Hocko
Date: Thu Jul 27 2017 - 03:29:07 EST


On Thu 27-07-17 07:52:08, Aneesh Kumar K.V wrote:
> Michal Hocko <mhocko@xxxxxxxxxx> writes:
>
> > Hi,
> > I've just noticed that alloc_gigantic_page ignores movability of the
> > gigantic page and it uses any existing zone. Considering that
> > hugepage_migration_supported only supports 2MB and pgd level hugepages
> > then 1GB pages are not migratable and as such allocating them from a
> > movable zone will break the basic expectation of this zone. Standard
> > hugetlb allocations try to avoid that by using htlb_alloc_mask and I
> > believe we should do the same for gigantic pages as well.
> >
> > I suspect this behavior is not intentional. What do you think about the
> > following untested patch?
>
>
> I also noticed an unrelated issue with the usage of
> start_isolate_page_range. On error we set the migrate type to
> MIGRATE_MOVABLE.

Why that should be a problem? I think it is perfectly OK to have
MIGRATE_MOVABLE pageblocks inside kernel zones.

> That may conflict with CMA pages ?

How?

> Wondering whether we should check for page's pageblock migrate type in
> pfn_range_valid_gigantic() ?

I do not think so. Migrate type is just too lowlevel for
pfn_range_valid_gigantic. If something like that is really needed then
it should go down the CMA/alloc_contig_range path.
--
Michal Hocko
SUSE Labs