[PATCH v2 0/2] vfio/pci: fix huge_fault write handling and add selftest
From: Mina Almasry
Date: Sun Nov 01 2026 - 01:21:24 EST
Fix vfio_pci_vmf_insert_pfn() passing write=false to
vmf_insert_pfn_pmd() and vmf_insert_pfn_pud(), which causes an infinite
write page-fault loop when vma->vm_page_prot starts read-only (such as
after soft-dirty clearing via /proc/<pid>/clear_refs in CRIU or live
migration, or on arm64 without hardware DBM), and add a companion VFIO
PCI selftest covering both read-then-write upgrade and initial write
faults after clear_refs.
Changes in v2:
- Expand Patch 1/2 commit log with practical trigger scenarios (CRIU /
clear_refs soft-dirty clearing and arm64 software dirty tracking) for
stable backport evaluation, per Alex Williamson.
- Drop the Assisted-by tag from Patch 1/2.
- Add Patch 2/2 selftest in vfio_pci_device_test (bar_write_fault_after_clear_refs),
as suggested by Alex Williamson.
- Link to v1: https://lore.kernel.org/all/20261024015540.538758-1-almasrymina@xxxxxxxxxx/
Mina Almasry (2):
vfio/pci: pass FAULT_FLAG_WRITE to vmf_insert_pfn_pmd/pud()
vfio: selftests: Test BAR write faults after clear_refs
drivers/vfio/pci/vfio_pci_core.c | 6 +-
.../selftests/vfio/vfio_pci_device_test.c | 83 +++++++++++++++++++
2 files changed, 87 insertions(+), 2 deletions(-)
base-commit: 076d7e989cb69f6ded7d60f2a080eb909930061b
--
2.56.0.385.gac671c819a-goog