Here's a third revision to fix MF_DELAYED handling on memory failure. This patch series addresses an issue in the memory failure handling path where MF_DELAYED is incorrectly treated as an error. This issue was discovered while testing memory failure handling for guest_memfd.
The proposed solution involves - 1. Clarifying the definition of MF_DELAYED to mean that memory failure handling is only partially completed, and that the metadata for the memory that failed (as in struct page/folio) is still referenced. 2. Updating shmem’s handling to align with the clarified definition. 3. Updating how the result of .error_remove_folio() is interpreted. Changes from v2: + Address the comment about fixing the typos and clarifying the 'unmapped' status from Jiaqi + Address the comment about merging shmem memory failure selftest into memory failure selftest from Baolin + Align the consistent style in truncate_error_folio suggested by Miaohe + Fix some bugs found out by Sashiko. e.g. set vcpu register when VM is running. Thanks! Would like to request reviews from Miaohe and Baolin regarding the selftests: + Is adding more TEST_F()s suitable? + Are you expecting refactoring to reduce code duplication in selftests? Would like to get feedback on the direction of selftests before looking into adding selftests for hugetlb. Also, hope to get some feedback about the guest memfd test in this version. At a high level, should I move the memory-failure specific guest_memfd tests into a new file? guest_memfd_test is starting to get really large. Also, I'd like to use the kselftest_harness to handle teardown/cleanup (unpoisoning memory poisoned for testing) on test failure. + RFC v2: https://lore.kernel.org/r/20260319-memory-failure-mf-delayed-fix-rfc-v2-v2-0-92c596402...@google.com Signed-off-by: Lisa Wang <[email protected]> --- Lisa Wang (7): mm: memory_failure: Clarify the MF_DELAYED definition mm: memory_failure: Allow truncate_error_folio to return MF_DELAYED mm: shmem: Update shmem handler to the MF_DELAYED definition mm: memory_failure: Generalize extra_pins handling to all MF_DELAYED cases mm: selftests: Add shmem into memory failure test KVM: selftests: Add memory failure tests in guest_memfd_test KVM: selftests: Test guest_memfd behavior with respect to stage 2 page tables mm/memory-failure.c | 27 ++- mm/shmem.c | 2 +- tools/testing/selftests/kvm/guest_memfd_test.c | 238 ++++++++++++++++++++++++- tools/testing/selftests/mm/memory-failure.c | 109 ++++++++++- 4 files changed, 357 insertions(+), 19 deletions(-) --- base-commit: 513de28cb70afe6d3e24fe5b432c13363f9cfda6 change-id: 20260403-memory-failure-mf-delayed-fix-rfc-v3-02878d7ef5b5 Best regards, -- Lisa Wang <[email protected]>

