Re: [PATCH] migrate: Skip hwpoisoned hugetlb folios during migration
From: Andrew Morton
Date: Wed Sep 02 2026 - 22:36:15 EST
On Wed, 1 Jul 2026 18:55:44 +0800 Kaitao Cheng <kaitao.cheng@xxxxxxxxx> wrote:
> Date: Wed, 1 Jul 2026 18:55:44 +0800
Well.
> 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.
As always: please provide a description of the userspace-visible
runtime effects of the bug.
Even better if you can present a reproducer.
> Fixes: 290408d4a250 ("hugetlb: hugepage migration core")
Oct, 2010. So I'm assuming this isn't super-urgent.
otoh, now it's out there and known about, perhaps Bad Guys can find a
way of triggering this, so the urgency becomes higher.
Anyway, please consider the Sashiko report
(https://sashiko.dev/#/patchset/20260701105544.97059-1-kaitao.cheng@xxxxxxxxx)
then update the changelog with the above info. Decide whether we
should cc:stable (and describe why) then resend?
Thanks.