mirror of https://github.com/xemu-project/xemu.git
pc: q35: Bump max_cpus to 4096 vcpus
Since commit f10a570b093e6 ("KVM: x86: Add CONFIG_KVM_MAX_NR_VCPUS to allow up to 4096 vCPUs") Linux kernel can support upto a maximum number of 4096 vcpus when MAXSMP is enabled in the kernel. At present, QEMU has been tested to correctly boot a linux guest with 4096 vcpus using the current edk2 upstream master branch that has the fixes corresponding to the following two PRs: https://github.com/tianocore/edk2/pull/5410 https://github.com/tianocore/edk2/pull/5418 The changes merged into edk2 with the above PRs will be in the upcoming 2024-05 release. With current seabios firmware, it boots fine with 4096 vcpus already. So bump up the value max_cpus to 4096 for q35 machines versions 9 and newer. Q35 machines versions 8.2 and older continue to support 1024 maximum vcpus as before for compatibility reasons. If KVM is not able to support the specified number of vcpus, QEMU would return the following error messages: $ ./qemu-system-x86_64 -cpu host -accel kvm -machine q35 -smp 1728 qemu-system-x86_64: -accel kvm: warning: Number of SMP cpus requested (1728) exceeds the recommended cpus supported by KVM (12) qemu-system-x86_64: -accel kvm: warning: Number of hotpluggable cpus requested (1728) exceeds the recommended cpus supported by KVM (12) Number of SMP cpus requested (1728) exceeds the maximum cpus supported by KVM (1024) Cc: Daniel P. Berrangé <berrange@redhat.com> Cc: Igor Mammedov <imammedo@redhat.com> Cc: Michael S. Tsirkin <mst@redhat.com> Cc: Julia Suvorova <jusual@redhat.com> Cc: kraxel@redhat.com Reviewed-by: Daniel P. Berrangé <berrange@redhat.com> Reviewed-by: Igor Mammedov <imammedo@redhat.com> Reviewed-by: Gerd Hoffmann <kraxel@redhat.com> Signed-off-by: Ani Sinha <anisinha@redhat.com> Message-Id: <20240228143351.3967-1-anisinha@redhat.com> Reviewed-by: Zhao Liu <zhao1.liu@intel.com> Reviewed-by: Michael S. Tsirkin <mst@redhat.com> Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
This commit is contained in:
parent
1a909e3dd8
commit
e4e98c7eeb
|
@ -350,7 +350,7 @@ static void pc_q35_machine_options(MachineClass *m)
|
||||||
m->default_nic = "e1000e";
|
m->default_nic = "e1000e";
|
||||||
m->default_kernel_irqchip_split = false;
|
m->default_kernel_irqchip_split = false;
|
||||||
m->no_floppy = 1;
|
m->no_floppy = 1;
|
||||||
m->max_cpus = 1024;
|
m->max_cpus = 4096;
|
||||||
m->no_parallel = !module_object_class_by_name(TYPE_ISA_PARALLEL);
|
m->no_parallel = !module_object_class_by_name(TYPE_ISA_PARALLEL);
|
||||||
machine_class_allow_dynamic_sysbus_dev(m, TYPE_AMD_IOMMU_DEVICE);
|
machine_class_allow_dynamic_sysbus_dev(m, TYPE_AMD_IOMMU_DEVICE);
|
||||||
machine_class_allow_dynamic_sysbus_dev(m, TYPE_INTEL_IOMMU_DEVICE);
|
machine_class_allow_dynamic_sysbus_dev(m, TYPE_INTEL_IOMMU_DEVICE);
|
||||||
|
@ -371,6 +371,7 @@ static void pc_q35_8_2_machine_options(MachineClass *m)
|
||||||
{
|
{
|
||||||
pc_q35_9_0_machine_options(m);
|
pc_q35_9_0_machine_options(m);
|
||||||
m->alias = NULL;
|
m->alias = NULL;
|
||||||
|
m->max_cpus = 1024;
|
||||||
compat_props_add(m->compat_props, hw_compat_8_2, hw_compat_8_2_len);
|
compat_props_add(m->compat_props, hw_compat_8_2, hw_compat_8_2_len);
|
||||||
compat_props_add(m->compat_props, pc_compat_8_2, pc_compat_8_2_len);
|
compat_props_add(m->compat_props, pc_compat_8_2, pc_compat_8_2_len);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue