Re: [PATCH v7 1/2] mm: migration: fix the FOLL_GET failure on following huge page

From: Gerald Schaefer
Date: Thu Aug 25 2022 - 08:39:47 EST


On Wed, 24 Aug 2022 11:38:58 -0700
Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx> wrote:

> On Tue, 23 Aug 2022 21:58:40 +0800 Haiyue Wang <haiyue.wang@xxxxxxxxx> wrote:
>
> > Not all huge page APIs support FOLL_GET option, so move_pages() syscall
> > will fail to get the page node information for some huge pages.
> >
> > Like x86 on linux 5.19 with 1GB huge page API follow_huge_pud(), it will
> > return NULL page for FOLL_GET when calling move_pages() syscall with the
> > NULL 'nodes' parameter, the 'status' parameter has '-2' error in array.
> >
> > Note: follow_huge_pud() now supports FOLL_GET in linux 6.0.
> > Link: https://lore.kernel.org/all/20220714042420.1847125-3-naoya.horiguchi@xxxxxxxxx
> >
> > But these huge page APIs don't support FOLL_GET:
> > 1. follow_huge_pud() in arch/s390/mm/hugetlbpage.c
> > 2. follow_huge_addr() in arch/ia64/mm/hugetlbpage.c
> > It will cause WARN_ON_ONCE for FOLL_GET.
> > 3. follow_huge_pgd() in mm/hugetlb.c
>
> What happened to the proposal to fix these three sites so this patch is
> not needed?

For s390, you can add my patch from
https://lore.kernel.org/linux-mm/20220818135717.609eef8a@thinkpad/
to this series.

Or we can bring it upstream via s390 tree, whatever suits best. It
certainly makes sense to have, also independent from this series.
Adding some s390 people on cc.