[PATCH v3] KVM: x86: Add CONFIG_KVM_MAX_NR_VCPUS

From: Kyle Meyer
Date: Thu Aug 24 2023 - 18:01:02 EST


Add a Kconfig entry to set the maximum number of vCPUs per KVM guest and
set the default value to 4096 when MAXSMP is enabled.

Suggested-by: Sean Christopherson <seanjc@xxxxxxxxxx>
Signed-off-by: Kyle Meyer <kyle.meyer@xxxxxxx>
---
v2 -> v3: Default KVM_MAX_VCPUS to 1024 when CONFIG_KVM_MAX_NR_VCPUS is not
defined. This prevents build failures in arch/x86/events/intel/core.c and
drivers/vfio/vfio_main.c when KVM is disabled.

arch/x86/include/asm/kvm_host.h | 4 ++++
arch/x86/kvm/Kconfig | 11 +++++++++++
2 files changed, 15 insertions(+)

diff --git a/arch/x86/include/asm/kvm_host.h b/arch/x86/include/asm/kvm_host.h
index 3bc146dfd38d..cd27e0a00765 100644
--- a/arch/x86/include/asm/kvm_host.h
+++ b/arch/x86/include/asm/kvm_host.h
@@ -39,7 +39,11 @@

#define __KVM_HAVE_ARCH_VCPU_DEBUGFS

+#ifdef CONFIG_KVM_MAX_NR_VCPUS
+#define KVM_MAX_VCPUS CONFIG_KVM_MAX_NR_VCPUS
+#else
#define KVM_MAX_VCPUS 1024
+#endif

/*
* In x86, the VCPU ID corresponds to the APIC ID, and APIC IDs
diff --git a/arch/x86/kvm/Kconfig b/arch/x86/kvm/Kconfig
index 89ca7f4c1464..e730e8255e22 100644
--- a/arch/x86/kvm/Kconfig
+++ b/arch/x86/kvm/Kconfig
@@ -141,4 +141,15 @@ config KVM_XEN
config KVM_EXTERNAL_WRITE_TRACKING
bool

+config KVM_MAX_NR_VCPUS
+ int "Maximum number of vCPUs per KVM guest"
+ depends on KVM
+ range 1024 4096
+ default 4096 if MAXSMP
+ default 1024
+ help
+ Set the maximum number of vCPUs per KVM guest. Larger values will increase
+ the memory footprint of each KVM guest, regardless of how many vCPUs are
+ configured.
+
endif # VIRTUALIZATION
--
2.26.2