[PATCH 0/4] Small changes related to prefetch and spurious faults
From: Yan Zhao
Date: Thu Feb 06 2025 - 22:07:59 EST
Hi,
This series contains some small changes related to prefetch/prefault and
spurious faults.
Patch 1 checks if a shadow-present old SPTE is leaf to determine a
prefetch fault is spurious.
Patch 2 merges the case of prefetch into the case of is_access_allowed().
Patch 3 is according to the previous discussion at [1].
Patch 4 always free obsolete roots before reload mmu.
With below scenario
1. add a memslot with size 4K
2. prefault GPA A in the memslot
3. delete the memslot
4. re-add the memslot with size 2M
5. prefault GPA A again.
Patch 1 is required if zap all quirk is disabled in step 3.
Patch 5 is required if zap all is performed in step 3 and if step 2/5 are
executed before any vcpu_run().
The series can be applied to both
f7bafceba76e9ab475b413578c1757ee18c3e44b and
eb723766b1030a23c38adf2348b7c3d1409d11f0.
Thanks
Yan
[1] https://lore.kernel.org/kvm/Z2WTZGHmPDXHSrTA@xxxxxxxxxx/
Yan Zhao (4):
KVM: x86/mmu: Further check old SPTE is leaf for spurious prefetch
fault
KVM: x86/tdp_mmu: Merge the prefetch into the is_access_allowed()
check
KVM: x86/mmu: Make sure pfn is not changed for spurious fault
KVM: x86/mmu: Free obsolete roots when pre-faulting SPTEs
arch/x86/kvm/mmu/mmu.c | 8 +++++++-
arch/x86/kvm/mmu/tdp_mmu.c | 6 ++----
2 files changed, 9 insertions(+), 5 deletions(-)
--
2.43.2