On 31/05/2023 23:51, Suravee Suthikulpanit wrote:
> Since KVM_MAX_VCPUS is currently defined to 1024 for x86 as shown in
> arch/x86/include/asm/kvm_host.h, update QEMU limits to the same number.
>
> In case KVM could not support the specified number of vcpus, QEMU would
> return the following error message:
>
> qemu-system-x86_64: kvm_init_vcpu: kvm_get_vcpu failed (xxx): Invalid
> argument
>
> Signed-off-by: Suravee Suthikulpanit <suravee.suthikulpa...@amd.com>
> ---
>
> Changes from V1:
> (https://lore.kernel.org/all/ynkdgsii1vfvx...@redhat.com/T/)
> * Bump from 512 to KVM_MAX_VCPUS (per Igor's suggestion)
>
> Note:
> From the last discussion, Daniel mentioned that SMBIO 2.1 tables might
> cause overflow at approx 720 CPUs, and it might require using the
> SMBIO 3.0 entry point. Also, we might need to change the default for
> the x86 machine type to SMBIO 3.0. However, I do not know the status
> of this.
>
I suspect smbios 3.0 (64-bit entry point) is already supported.
With current qemu and all the smbios fixes in the last cycle, perhaps this is
mainly just setting smbios_entry_point_type to SMBIOS_ENTRY_POINT_TYPE_64 if
MachineState::smp::max_cpus is bigger than 720 (e.g. in pc_q35_init()?)
> Thank you,
> Suravee
>
> hw/i386/pc_q35.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/hw/i386/pc_q35.c b/hw/i386/pc_q35.c
> index f02919d92c..e7dc226bd5 100644
> --- a/hw/i386/pc_q35.c
> +++ b/hw/i386/pc_q35.c
> @@ -370,7 +370,7 @@ static void pc_q35_machine_options(MachineClass *m)
> machine_class_allow_dynamic_sysbus_dev(m, TYPE_INTEL_IOMMU_DEVICE);
> machine_class_allow_dynamic_sysbus_dev(m, TYPE_RAMFB_DEVICE);
> machine_class_allow_dynamic_sysbus_dev(m, TYPE_VMBUS_BRIDGE);
> - m->max_cpus = 288;
> + m->max_cpus = 1024;
> }
>
> static void pc_q35_8_1_machine_options(MachineClass *m)