Message ID | 20250527180245.1413463-5-tabba@google.com |
---|---|
State | New |
Headers | show |
Series | KVM: Mapping guest_memfd backed memory at the host for software protected VMs | expand |
On 5/27/2025 11:32 PM, Fuad Tabba wrote: > The bool has_private_mem is used to indicate whether guest_memfd is > supported. Rename it to supports_gmem to make its meaning clearer and to > decouple memory being private from guest_memfd. > > Reviewed-by: Gavin Shan <gshan@redhat.com> > Reviewed-by: Ira Weiny <ira.weiny@intel.com> > Co-developed-by: David Hildenbrand <david@redhat.com> > Signed-off-by: David Hildenbrand <david@redhat.com> > Signed-off-by: Fuad Tabba <tabba@google.com> > --- > arch/x86/include/asm/kvm_host.h | 4 ++-- > arch/x86/kvm/mmu/mmu.c | 2 +- > arch/x86/kvm/svm/svm.c | 4 ++-- > arch/x86/kvm/x86.c | 3 +-- > 4 files changed, 6 insertions(+), 7 deletions(-) > > diff --git a/arch/x86/include/asm/kvm_host.h b/arch/x86/include/asm/kvm_host.h > index 4a83fbae7056..709cc2a7ba66 100644 > --- a/arch/x86/include/asm/kvm_host.h > +++ b/arch/x86/include/asm/kvm_host.h > @@ -1331,7 +1331,7 @@ struct kvm_arch { > unsigned int indirect_shadow_pages; > u8 mmu_valid_gen; > u8 vm_type; > - bool has_private_mem; > + bool supports_gmem; > bool has_protected_state; > bool pre_fault_allowed; > struct hlist_head mmu_page_hash[KVM_NUM_MMU_PAGES]; > @@ -2254,7 +2254,7 @@ void kvm_configure_mmu(bool enable_tdp, int tdp_forced_root_level, > > > #ifdef CONFIG_KVM_GMEM > -#define kvm_arch_supports_gmem(kvm) ((kvm)->arch.has_private_mem) > +#define kvm_arch_supports_gmem(kvm) ((kvm)->arch.supports_gmem) > #else > #define kvm_arch_supports_gmem(kvm) false > #endif > diff --git a/arch/x86/kvm/mmu/mmu.c b/arch/x86/kvm/mmu/mmu.c > index b66f1bf24e06..69bf2ef22ed0 100644 > --- a/arch/x86/kvm/mmu/mmu.c > +++ b/arch/x86/kvm/mmu/mmu.c > @@ -3486,7 +3486,7 @@ static bool page_fault_can_be_fast(struct kvm *kvm, struct kvm_page_fault *fault > * on RET_PF_SPURIOUS until the update completes, or an actual spurious > * case might go down the slow path. Either case will resolve itself. > */ > - if (kvm->arch.has_private_mem && > + if (kvm->arch.supports_gmem && > fault->is_private != kvm_mem_is_private(kvm, fault->gfn)) > return false; > > diff --git a/arch/x86/kvm/svm/svm.c b/arch/x86/kvm/svm/svm.c > index a89c271a1951..a05b7dc7b717 100644 > --- a/arch/x86/kvm/svm/svm.c > +++ b/arch/x86/kvm/svm/svm.c > @@ -5110,8 +5110,8 @@ static int svm_vm_init(struct kvm *kvm) > (type == KVM_X86_SEV_ES_VM || type == KVM_X86_SNP_VM); > to_kvm_sev_info(kvm)->need_init = true; > > - kvm->arch.has_private_mem = (type == KVM_X86_SNP_VM); > - kvm->arch.pre_fault_allowed = !kvm->arch.has_private_mem; > + kvm->arch.supports_gmem = (type == KVM_X86_SNP_VM); > + kvm->arch.pre_fault_allowed = !kvm->arch.supports_gmem; > } > > if (!pause_filter_count || !pause_filter_thresh) > diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c > index be7bb6d20129..035ced06b2dd 100644 > --- a/arch/x86/kvm/x86.c > +++ b/arch/x86/kvm/x86.c > @@ -12718,8 +12718,7 @@ int kvm_arch_init_vm(struct kvm *kvm, unsigned long type) > return -EINVAL; > > kvm->arch.vm_type = type; > - kvm->arch.has_private_mem = > - (type == KVM_X86_SW_PROTECTED_VM); > + kvm->arch.supports_gmem = (type == KVM_X86_SW_PROTECTED_VM); > /* Decided by the vendor code for other VM types. */ > kvm->arch.pre_fault_allowed = > type == KVM_X86_DEFAULT_VM || type == KVM_X86_SW_PROTECTED_VM; Reviewed-by: Shivank Garg <shivankg@amd.com>
diff --git a/arch/x86/include/asm/kvm_host.h b/arch/x86/include/asm/kvm_host.h index 4a83fbae7056..709cc2a7ba66 100644 --- a/arch/x86/include/asm/kvm_host.h +++ b/arch/x86/include/asm/kvm_host.h @@ -1331,7 +1331,7 @@ struct kvm_arch { unsigned int indirect_shadow_pages; u8 mmu_valid_gen; u8 vm_type; - bool has_private_mem; + bool supports_gmem; bool has_protected_state; bool pre_fault_allowed; struct hlist_head mmu_page_hash[KVM_NUM_MMU_PAGES]; @@ -2254,7 +2254,7 @@ void kvm_configure_mmu(bool enable_tdp, int tdp_forced_root_level, #ifdef CONFIG_KVM_GMEM -#define kvm_arch_supports_gmem(kvm) ((kvm)->arch.has_private_mem) +#define kvm_arch_supports_gmem(kvm) ((kvm)->arch.supports_gmem) #else #define kvm_arch_supports_gmem(kvm) false #endif diff --git a/arch/x86/kvm/mmu/mmu.c b/arch/x86/kvm/mmu/mmu.c index b66f1bf24e06..69bf2ef22ed0 100644 --- a/arch/x86/kvm/mmu/mmu.c +++ b/arch/x86/kvm/mmu/mmu.c @@ -3486,7 +3486,7 @@ static bool page_fault_can_be_fast(struct kvm *kvm, struct kvm_page_fault *fault * on RET_PF_SPURIOUS until the update completes, or an actual spurious * case might go down the slow path. Either case will resolve itself. */ - if (kvm->arch.has_private_mem && + if (kvm->arch.supports_gmem && fault->is_private != kvm_mem_is_private(kvm, fault->gfn)) return false; diff --git a/arch/x86/kvm/svm/svm.c b/arch/x86/kvm/svm/svm.c index a89c271a1951..a05b7dc7b717 100644 --- a/arch/x86/kvm/svm/svm.c +++ b/arch/x86/kvm/svm/svm.c @@ -5110,8 +5110,8 @@ static int svm_vm_init(struct kvm *kvm) (type == KVM_X86_SEV_ES_VM || type == KVM_X86_SNP_VM); to_kvm_sev_info(kvm)->need_init = true; - kvm->arch.has_private_mem = (type == KVM_X86_SNP_VM); - kvm->arch.pre_fault_allowed = !kvm->arch.has_private_mem; + kvm->arch.supports_gmem = (type == KVM_X86_SNP_VM); + kvm->arch.pre_fault_allowed = !kvm->arch.supports_gmem; } if (!pause_filter_count || !pause_filter_thresh) diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c index be7bb6d20129..035ced06b2dd 100644 --- a/arch/x86/kvm/x86.c +++ b/arch/x86/kvm/x86.c @@ -12718,8 +12718,7 @@ int kvm_arch_init_vm(struct kvm *kvm, unsigned long type) return -EINVAL; kvm->arch.vm_type = type; - kvm->arch.has_private_mem = - (type == KVM_X86_SW_PROTECTED_VM); + kvm->arch.supports_gmem = (type == KVM_X86_SW_PROTECTED_VM); /* Decided by the vendor code for other VM types. */ kvm->arch.pre_fault_allowed = type == KVM_X86_DEFAULT_VM || type == KVM_X86_SW_PROTECTED_VM;