Thread (184 messages) 184 messages, 12 authors, 35m ago

Re: [PATCH v8 04/46] KVM: Decouple kvm_has_arch_private_mem from CONFIG_KVM_VM_MEMORY_ATTRIBUTES

From: Xiaoyao Li <hidden>
Date: 2026-06-30 16:24:19
Also in: kvm, linux-coco, linux-doc, linux-kselftest, linux-mm, lkml

On 6/30/2026 9:06 PM, Sean Christopherson wrote:
On Tue, Jun 30, 2026, Xiaoyao Li wrote:
quoted
On 6/19/2026 8:31 AM, Ackerley Tng via B4 Relay wrote:
quoted
   arch/x86/include/asm/kvm_host.h | 4 +++-
   include/linux/kvm_host.h        | 2 +-
   2 files changed, 4 insertions(+), 2 deletions(-)
diff --git a/arch/x86/include/asm/kvm_host.h b/arch/x86/include/asm/kvm_host.h
index 8e8eb8a5e8a6b..1bde67cf6eb0e 100644
--- a/arch/x86/include/asm/kvm_host.h
+++ b/arch/x86/include/asm/kvm_host.h
@@ -2394,7 +2394,9 @@ 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_VM_MEMORY_ATTRIBUTES
+#if defined(CONFIG_KVM_SW_PROTECTED_VM) ||	\
+	defined(CONFIG_KVM_INTEL_TDX) ||	\
+	defined(CONFIG_KVM_AMD_SEV)
Maybe we can just remove the #ifdef and make it always avaiable?
No, because common KVM keys off the macro to determine whether or not PRIVATE is
a supported attribute:

   #ifdef kvm_arch_has_private_mem
   static u64 kvm_supports_private_mem(struct kvm *kvm)
   {
	return !kvm || kvm_arch_has_private_mem(kvm);
   }
   #else
   #define kvm_supports_private_mem(kvm) false
   #endif

And also whether or not to provide the in-place conversion param (without PRIVATE,
conversions aren't supported in general):

   #ifdef kvm_arch_has_private_mem
   bool __ro_after_init gmem_in_place_conversion = !IS_ENABLED(CONFIG_KVM_VM_MEMORY_ATTRIBUTES);
   module_param(gmem_in_place_conversion, bool, 0444);
   EXPORT_SYMBOL_FOR_KVM_INTERNAL(gmem_in_place_conversion);
   #endif

I agree the #ifdeffery is ugly, but kvm_supports_private_mem() in particular
needs to evaluate to false if PRIVATE memory isn't supported.
I agree with the above after seeing the later patches. But just to the 
state where this patch applies on top, the #ifdef is not necessary.

Maybe add some log to explain it will be helpful.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help