[PATCH v2 0/3] KVM: Fix deadlock for invalid memslots

Yan Zhao
2025-08-22T07:03:51Z

Hi,

This series addresses the deadlock issue encountered with invalid memslots
during prefaulting or TDX private EPT violations.

Patches 1-2 are the new fixes from Sean.
Patch 1 is for the prefaulting case,
patch 2 for the TDX private EPT violation case.

Patch 3 updates the selftest for prefaulting.
The ioctl KVM_PRE_FAULT_MEMORY is now expected to return EAGAIN
instead of ENOENT when prefaulting GFNs in an invalid memslot.

The TDX-specific selftest is not included in this series, though it's
passed locally.

v2:
- Use Sean suggested fixes (patches 1-2).
- Updated selftest for the prefault case accordingly.
- code base: kvm-x86-next-2025.08.21

v1:
https://lore.kernel.org/all/20250519023613.30329-1-yan.y.zhao@intel.com

Sean Christopherson (2):
KVM: x86/mmu: Return -EAGAIN if userspace deletes/moves memslot during
prefault
KVM: TDX: Do not retry locally when the retry is caused by invalid
memslot

Yan Zhao (1):
KVM: selftests: Test prefault memory during concurrent memslot removal

arch/x86/kvm/mmu/mmu.c | 10 +-
arch/x86/kvm/vmx/tdx.c | 11 +++
.../selftests/kvm/pre_fault_memory_test.c | 94 +++++++++++++++----
virt/kvm/kvm_main.c | 1 +
4 files changed, 98 insertions(+), 18 deletions(-)

--
2.43.2