On Thu, 7 May 2026 at 21:22, Ackerley Tng via B4 Relay <[email protected]> wrote: > > From: Sean Christopherson <[email protected]> > > Rename the per-VM memory attributes Kconfig to make it explicitly about > per-VM attributes in anticipation of adding memory attributes support to > guest_memfd, at which point it will be possible (and desirable) to have > memory attributes without the per-VM support, even in x86. > > No functional change intended. > > Signed-off-by: Sean Christopherson <[email protected]> > Signed-off-by: Ackerley Tng <[email protected]>
Reviewed-by: Fuad Tabba <[email protected]> Cheers, /fuad > --- > arch/x86/include/asm/kvm_host.h | 2 +- > arch/x86/kvm/Kconfig | 6 +++--- > arch/x86/kvm/mmu/mmu.c | 2 +- > arch/x86/kvm/x86.c | 2 +- > include/linux/kvm_host.h | 8 ++++---- > include/trace/events/kvm.h | 4 ++-- > virt/kvm/Kconfig | 2 +- > virt/kvm/kvm_main.c | 14 +++++++------- > 8 files changed, 20 insertions(+), 20 deletions(-) > > diff --git a/arch/x86/include/asm/kvm_host.h b/arch/x86/include/asm/kvm_host.h > index c470e40a00aa4..60b997764beef 100644 > --- a/arch/x86/include/asm/kvm_host.h > +++ b/arch/x86/include/asm/kvm_host.h > @@ -2369,7 +2369,7 @@ void kvm_configure_mmu(bool enable_tdp, int > tdp_forced_root_level, > int tdp_max_root_level, int tdp_huge_page_level); > > > -#ifdef CONFIG_KVM_GENERIC_MEMORY_ATTRIBUTES > +#ifdef CONFIG_KVM_VM_MEMORY_ATTRIBUTES > #define kvm_arch_has_private_mem(kvm) ((kvm)->arch.has_private_mem) > #endif > > diff --git a/arch/x86/kvm/Kconfig b/arch/x86/kvm/Kconfig > index 801bf9e520db3..26f6afd51bbdc 100644 > --- a/arch/x86/kvm/Kconfig > +++ b/arch/x86/kvm/Kconfig > @@ -84,7 +84,7 @@ config KVM_SW_PROTECTED_VM > bool "Enable support for KVM software-protected VMs" > depends on EXPERT > depends on KVM_X86 && X86_64 > - select KVM_GENERIC_MEMORY_ATTRIBUTES > + select KVM_VM_MEMORY_ATTRIBUTES > help > Enable support for KVM software-protected VMs. Currently, software- > protected VMs are purely a development and testing vehicle for > @@ -135,7 +135,7 @@ config KVM_INTEL_TDX > bool "Intel Trust Domain Extensions (TDX) support" > default y > depends on INTEL_TDX_HOST > - select KVM_GENERIC_MEMORY_ATTRIBUTES > + select KVM_VM_MEMORY_ATTRIBUTES > select HAVE_KVM_ARCH_GMEM_POPULATE > help > Provides support for launching Intel Trust Domain Extensions (TDX) > @@ -159,7 +159,7 @@ config KVM_AMD_SEV > depends on KVM_AMD && X86_64 > depends on CRYPTO_DEV_SP_PSP && !(KVM_AMD=y && CRYPTO_DEV_CCP_DD=m) > select ARCH_HAS_CC_PLATFORM > - select KVM_GENERIC_MEMORY_ATTRIBUTES > + select KVM_VM_MEMORY_ATTRIBUTES > select HAVE_KVM_ARCH_GMEM_PREPARE > select HAVE_KVM_ARCH_GMEM_INVALIDATE > select HAVE_KVM_ARCH_GMEM_POPULATE > diff --git a/arch/x86/kvm/mmu/mmu.c b/arch/x86/kvm/mmu/mmu.c > index 892246204435c..a80a876ab4ad6 100644 > --- a/arch/x86/kvm/mmu/mmu.c > +++ b/arch/x86/kvm/mmu/mmu.c > @@ -7899,7 +7899,7 @@ void kvm_mmu_pre_destroy_vm(struct kvm *kvm) > vhost_task_stop(kvm->arch.nx_huge_page_recovery_thread); > } > > -#ifdef CONFIG_KVM_GENERIC_MEMORY_ATTRIBUTES > +#ifdef CONFIG_KVM_VM_MEMORY_ATTRIBUTES > static bool hugepage_test_mixed(struct kvm_memory_slot *slot, gfn_t gfn, > int level) > { > diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c > index 0a1b63c63d1a9..1560de1e95be0 100644 > --- a/arch/x86/kvm/x86.c > +++ b/arch/x86/kvm/x86.c > @@ -13625,7 +13625,7 @@ static int kvm_alloc_memslot_metadata(struct kvm *kvm, > } > } > > -#ifdef CONFIG_KVM_GENERIC_MEMORY_ATTRIBUTES > +#ifdef CONFIG_KVM_VM_MEMORY_ATTRIBUTES > kvm_mmu_init_memslot_memory_attributes(kvm, slot); > #endif > > diff --git a/include/linux/kvm_host.h b/include/linux/kvm_host.h > index 4c14aee1fb063..7b9faa3545300 100644 > --- a/include/linux/kvm_host.h > +++ b/include/linux/kvm_host.h > @@ -722,7 +722,7 @@ static inline int kvm_arch_vcpu_memslots_id(struct > kvm_vcpu *vcpu) > } > #endif > > -#ifndef CONFIG_KVM_GENERIC_MEMORY_ATTRIBUTES > +#ifndef CONFIG_KVM_VM_MEMORY_ATTRIBUTES > static inline bool kvm_arch_has_private_mem(struct kvm *kvm) > { > return false; > @@ -871,7 +871,7 @@ struct kvm { > #ifdef CONFIG_HAVE_KVM_PM_NOTIFIER > struct notifier_block pm_notifier; > #endif > -#ifdef CONFIG_KVM_GENERIC_MEMORY_ATTRIBUTES > +#ifdef CONFIG_KVM_VM_MEMORY_ATTRIBUTES > /* Protected by slots_lock (for writes) and RCU (for reads) */ > struct xarray mem_attr_array; > #endif > @@ -2528,7 +2528,7 @@ static inline bool kvm_memslot_is_gmem_only(const > struct kvm_memory_slot *slot) > return slot->flags & KVM_MEMSLOT_GMEM_ONLY; > } > > -#ifdef CONFIG_KVM_GENERIC_MEMORY_ATTRIBUTES > +#ifdef CONFIG_KVM_VM_MEMORY_ATTRIBUTES > static inline unsigned long kvm_get_memory_attributes(struct kvm *kvm, gfn_t > gfn) > { > return xa_to_value(xa_load(&kvm->mem_attr_array, gfn)); > @@ -2550,7 +2550,7 @@ static inline bool kvm_mem_is_private(struct kvm *kvm, > gfn_t gfn) > { > return false; > } > -#endif /* CONFIG_KVM_GENERIC_MEMORY_ATTRIBUTES */ > +#endif /* CONFIG_KVM_VM_MEMORY_ATTRIBUTES */ > > #ifdef CONFIG_KVM_GUEST_MEMFD > int kvm_gmem_get_pfn(struct kvm *kvm, struct kvm_memory_slot *slot, > diff --git a/include/trace/events/kvm.h b/include/trace/events/kvm.h > index b282e3a867696..1ba72bd73ea2f 100644 > --- a/include/trace/events/kvm.h > +++ b/include/trace/events/kvm.h > @@ -358,7 +358,7 @@ TRACE_EVENT(kvm_dirty_ring_exit, > TP_printk("vcpu %d", __entry->vcpu_id) > ); > > -#ifdef CONFIG_KVM_GENERIC_MEMORY_ATTRIBUTES > +#ifdef CONFIG_KVM_VM_MEMORY_ATTRIBUTES > /* > * @start: Starting address of guest memory range > * @end: End address of guest memory range > @@ -383,7 +383,7 @@ TRACE_EVENT(kvm_vm_set_mem_attributes, > TP_printk("%#016llx -- %#016llx [0x%lx]", > __entry->start, __entry->end, __entry->attr) > ); > -#endif /* CONFIG_KVM_GENERIC_MEMORY_ATTRIBUTES */ > +#endif /* CONFIG_KVM_VM_MEMORY_ATTRIBUTES */ > > TRACE_EVENT(kvm_unmap_hva_range, > TP_PROTO(unsigned long start, unsigned long end), > diff --git a/virt/kvm/Kconfig b/virt/kvm/Kconfig > index 794976b88c6f9..5119cb37145fc 100644 > --- a/virt/kvm/Kconfig > +++ b/virt/kvm/Kconfig > @@ -100,7 +100,7 @@ config KVM_ELIDE_TLB_FLUSH_IF_YOUNG > config KVM_MMU_LOCKLESS_AGING > bool > > -config KVM_GENERIC_MEMORY_ATTRIBUTES > +config KVM_VM_MEMORY_ATTRIBUTES > bool > > config KVM_GUEST_MEMFD > diff --git a/virt/kvm/kvm_main.c b/virt/kvm/kvm_main.c > index 89489996fbc1e..306153abbafa5 100644 > --- a/virt/kvm/kvm_main.c > +++ b/virt/kvm/kvm_main.c > @@ -1115,7 +1115,7 @@ static struct kvm *kvm_create_vm(unsigned long type, > const char *fdname) > spin_lock_init(&kvm->mn_invalidate_lock); > rcuwait_init(&kvm->mn_memslots_update_rcuwait); > xa_init(&kvm->vcpu_array); > -#ifdef CONFIG_KVM_GENERIC_MEMORY_ATTRIBUTES > +#ifdef CONFIG_KVM_VM_MEMORY_ATTRIBUTES > xa_init(&kvm->mem_attr_array); > #endif > > @@ -1300,7 +1300,7 @@ static void kvm_destroy_vm(struct kvm *kvm) > cleanup_srcu_struct(&kvm->irq_srcu); > srcu_barrier(&kvm->srcu); > cleanup_srcu_struct(&kvm->srcu); > -#ifdef CONFIG_KVM_GENERIC_MEMORY_ATTRIBUTES > +#ifdef CONFIG_KVM_VM_MEMORY_ATTRIBUTES > xa_destroy(&kvm->mem_attr_array); > #endif > kvm_arch_free_vm(kvm); > @@ -2418,7 +2418,7 @@ static int kvm_vm_ioctl_clear_dirty_log(struct kvm *kvm, > } > #endif /* CONFIG_KVM_GENERIC_DIRTYLOG_READ_PROTECT */ > > -#ifdef CONFIG_KVM_GENERIC_MEMORY_ATTRIBUTES > +#ifdef CONFIG_KVM_VM_MEMORY_ATTRIBUTES > static u64 kvm_supported_mem_attributes(struct kvm *kvm) > { > if (!kvm || kvm_arch_has_private_mem(kvm)) > @@ -2623,7 +2623,7 @@ static int kvm_vm_ioctl_set_mem_attributes(struct kvm > *kvm, > > return kvm_vm_set_mem_attributes(kvm, start, end, attrs->attributes); > } > -#endif /* CONFIG_KVM_GENERIC_MEMORY_ATTRIBUTES */ > +#endif /* CONFIG_KVM_VM_MEMORY_ATTRIBUTES */ > > struct kvm_memory_slot *gfn_to_memslot(struct kvm *kvm, gfn_t gfn) > { > @@ -4921,7 +4921,7 @@ static int kvm_vm_ioctl_check_extension_generic(struct > kvm *kvm, long arg) > case KVM_CAP_SYSTEM_EVENT_DATA: > case KVM_CAP_DEVICE_CTRL: > return 1; > -#ifdef CONFIG_KVM_GENERIC_MEMORY_ATTRIBUTES > +#ifdef CONFIG_KVM_VM_MEMORY_ATTRIBUTES > case KVM_CAP_MEMORY_ATTRIBUTES: > return kvm_supported_mem_attributes(kvm); > #endif > @@ -5325,7 +5325,7 @@ static long kvm_vm_ioctl(struct file *filp, > break; > } > #endif /* CONFIG_HAVE_KVM_IRQ_ROUTING */ > -#ifdef CONFIG_KVM_GENERIC_MEMORY_ATTRIBUTES > +#ifdef CONFIG_KVM_VM_MEMORY_ATTRIBUTES > case KVM_SET_MEMORY_ATTRIBUTES: { > struct kvm_memory_attributes attrs; > > @@ -5336,7 +5336,7 @@ static long kvm_vm_ioctl(struct file *filp, > r = kvm_vm_ioctl_set_mem_attributes(kvm, &attrs); > break; > } > -#endif /* CONFIG_KVM_GENERIC_MEMORY_ATTRIBUTES */ > +#endif /* CONFIG_KVM_VM_MEMORY_ATTRIBUTES */ > case KVM_CREATE_DEVICE: { > struct kvm_create_device cd; > > > -- > 2.54.0.563.g4f69b47b94-goog > >
