Re: [PATCH] mm/migrate: Putback split folios when numa hint migration fails

From: Andrew Morton
Date: Mon Jul 08 2024 - 19:04:14 EST


On Mon, 8 Jul 2024 17:55:37 -0400 Peter Xu <peterx@xxxxxxxxxx> wrote:

> This issue is not from any report yet, but by code observation only.
>
> This is yet another fix besides Hugh's patch [1] but on relevant code path,
> where eager split of folio can happen if the folio is already on deferred
> list during a folio migration.
>
> Here the issue is NUMA path (migrate_misplaced_folio()) may start to
> encounter such folio split now even with MR_NUMA_MISPLACED hint applied.
> Then when migrate_pages() didn't migrate all the folios, it's possible the
> split small folios be put onto the list instead of the original folio.
> Then putting back only the head page won't be enough.
>
> Fix it by putting back all the folios on the list.

mm/migrate.c: In function 'migrate_misplaced_folio':
mm/migrate.c:2624:13: error: unused variable 'nr_pages' [-Werror=unused-variable]
2624 | int nr_pages = folio_nr_pages(folio);
| ^~~~~~~~

Worrisome. Which kernel version was this tested against?

> Don't need to copy stable if this can still hit 6.10.. Only smoke tested.

Also worrisome. Are we to take an only-smoke-tested patch which
doesn't apply to mainline and which doesn't compile on mm-unstable into
mainline based on "only smoke tested"?