Re: [PATCH] migrate: Skip hwpoisoned hugetlb folios during migration
From: Andrew Morton
Date: Wed Jul 01 2026 - 19:05:17 EST
On Wed, 1 Jul 2026 18:55:44 +0800 Kaitao Cheng <kaitao.cheng@xxxxxxxxx> wrote:
> Hugetlb migration does not check whether the source folio contains
> hwpoisoned memory before trying to move it. After the folio is unmapped,
> the move path can reach hugetlbfs_migrate_folio() and then
> migrate_huge_page_move_mapping(), which copies the source folio into the
> new folio.
>
> That copy uses folio_mc_copy(), so architectures with recoverable
> machine-check copy support can fail the copy with -EHWPOISON. However,
> there is no reason to attempt the move once the source folio is already
> known to contain poisoned memory. Architectures without such copy_mc
> support also fall back to a normal copy, which can consume the poison.
>
> Check folio_contain_hwpoisoned_page() after locking the source hugetlb
> folio and fail the migration with -EHWPOISON before unmapping or copying
> it. This covers both a hwpoisoned hugetlb head folio and large folios
> that only have the has_hwpoisoned summary flag set.
Thanks. I'll await reviewer input on this.
AI review suggests that a couple of other places may have the same
issue:
https://sashiko.dev/#/patchset/20260701105544.97059-1-kaitao.cheng@xxxxxxxxx