Re: kconfig does not accept a lower value for KVM_MAX_NR_VCPUS

Sean Christopherson
2025-01-21T15:55:14Z

On Mon, Jan 20, 2025, Bagas Sanjaya wrote:
> On Sun, Jan 19, 2025 at 12:04:04PM +0100, Toralf Förster wrote:
> > I was wondering why I cannot put a lower value here during make oldconfig:

The lower limit of 1024 in the Kconfig exists to ensure backwards compatibility.
CONFIG_KVM_MAX_NR_VCPUS is effectively exposed to userspace via KVM_CAP_MAX_VCPUS,
and prior to the Kconfig KVM hardcoded KVM_CAP_MAX_VCPUS to 1024.

I did float the idea of setting the range to 1 - 4096, but we opted to go with
the conservative approach because the benefits are relatively minor, and we didn't
want to risk indirectly breaking userspace.

> > Maximum number of vCPUs per KVM guest (KVM_MAX_NR_VCPUS) [1024] (NEW) 16
> > Maximum number of vCPUs per KVM guest (KVM_MAX_NR_VCPUS) [1024] (NEW) 8
> > Maximum number of vCPUs per KVM guest (KVM_MAX_NR_VCPUS) [1024] (NEW)
> >
>
> Hi Toralf,
>
> From arch/x86/kvm/Kconfig:
>
> >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
> > created for a given VM.
>
> I don't know your use case, but you can safely choose the default (1024).
>
> Thanks.
>
> --
> An old man doll... just what I always wanted! - Clara