[PATCH v6 00/18] TDX MMU prep series part 1
From: Paolo Bonzini
Date: Sun Dec 22 2024 - 14:35:08 EST
Hi,
this is the essentially final version of the TDX MMU prep series, focusing
on supporting TDX's separation of EPT into a direct part (for shared pages)
and a part that is managed by the TDX module and cached (into a "mirror"
EPT) by KVM.
The only difference from v5 is squashing in Yan's
https://lore.kernel.org/kvm/20241104084229.29882-1-yan.y.zhao@xxxxxxxxx/,
and a few comment and commit message updates.
Paolo
Isaku Yamahata (12):
KVM: Add member to struct kvm_gfn_range to indicate private/shared
KVM: x86/mmu: Add an external pointer to struct kvm_mmu_page
KVM: x86/mmu: Add an is_mirror member for union kvm_mmu_page_role
KVM: x86/tdp_mmu: Take struct kvm in iter loops
KVM: x86/mmu: Support GFN direct bits
KVM: x86/tdp_mmu: Extract root invalid check from tdx_mmu_next_root()
KVM: x86/tdp_mmu: Introduce KVM MMU root types to specify page table
type
KVM: x86/tdp_mmu: Take root in tdp_mmu_for_each_pte()
KVM: x86/tdp_mmu: Support mirror root for TDP MMU
KVM: x86/tdp_mmu: Propagate building mirror page tables
KVM: x86/tdp_mmu: Propagate tearing down mirror page tables
KVM: x86/tdp_mmu: Take root types for
kvm_tdp_mmu_invalidate_all_roots()
Paolo Bonzini (1):
KVM: x86/tdp_mmu: Propagate attr_filter to MMU notifier callbacks
Rick Edgecombe (5):
KVM: x86/mmu: Zap invalid roots with mmu_lock held for write at
uninit
KVM: x86: Add a VM type define for TDX
KVM: x86/mmu: Make kvm_tdp_mmu_alloc_root() return void
KVM: x86/tdp_mmu: Don't zap valid mirror roots in
kvm_tdp_mmu_zap_all()
KVM: x86/mmu: Prevent aliased memslot GFNs
arch/x86/include/asm/kvm-x86-ops.h | 4 +
arch/x86/include/asm/kvm_host.h | 26 ++-
arch/x86/include/uapi/asm/kvm.h | 1 +
arch/x86/kvm/mmu.h | 31 +++
arch/x86/kvm/mmu/mmu.c | 50 ++++-
arch/x86/kvm/mmu/mmu_internal.h | 64 +++++-
arch/x86/kvm/mmu/spte.h | 5 +
arch/x86/kvm/mmu/tdp_iter.c | 10 +-
arch/x86/kvm/mmu/tdp_iter.h | 21 +-
arch/x86/kvm/mmu/tdp_mmu.c | 325 ++++++++++++++++++++++-------
arch/x86/kvm/mmu/tdp_mmu.h | 51 ++++-
arch/x86/kvm/x86.c | 3 +
include/linux/kvm_host.h | 6 +
virt/kvm/guest_memfd.c | 2 +
virt/kvm/kvm_main.c | 14 ++
15 files changed, 506 insertions(+), 107 deletions(-)
--
2.43.5