mirror of
https://git.proxmox.com/git/qemu-server
synced 2025-10-04 17:30:20 +00:00
cpu config: Unify the default value for 'kvm'
Make the default value for 'kvm' consistent, taking into account whether the VM will run on the same CPU architecture as the host. This would be a breaking change to CPU hotplug for VMs with a different CPU architecture running on an x86_64 host, as in this case the default CPU type for CPU hotplug changes from 'kvm64' to 'qemu64'. However, CPU hotplug of non x86_64 architectures is not supported anyway, so this is not a breaking change after all. It should be noted that this change does alter the CPU hotplug behaviour when emulating an x86_64 CPU on a non-x86_64 host. This is however not officially supported in Proxmox VE. Signed-off-by: Filip Schauer <f.schauer@proxmox.com>
This commit is contained in:
parent
bb42334981
commit
d1a7abd07c
@ -3744,7 +3744,7 @@ sub config_to_command {
|
||||
if ($hotplug_features->{cpu} && min_version($machine_version, 2, 7)) {
|
||||
push @$cmd, '-smp', "1,sockets=$sockets,cores=$cores,maxcpus=$maxcpus";
|
||||
for (my $i = 2; $i <= $vcpus; $i++) {
|
||||
my $cpustr = print_cpu_device($conf,$i);
|
||||
my $cpustr = print_cpu_device($conf, $arch, $i);
|
||||
push @$cmd, '-device', $cpustr;
|
||||
}
|
||||
|
||||
@ -4586,9 +4586,10 @@ sub qemu_cpu_hotplug {
|
||||
if scalar(@{$currentrunningvcpus}) != $currentvcpus;
|
||||
|
||||
if (PVE::QemuServer::Machine::machine_version($machine_type, 2, 7)) {
|
||||
my $arch = get_vm_arch($conf);
|
||||
|
||||
for (my $i = $currentvcpus+1; $i <= $vcpus; $i++) {
|
||||
my $cpustr = print_cpu_device($conf, $i);
|
||||
my $cpustr = print_cpu_device($conf, $arch, $i);
|
||||
qemu_deviceadd($vmid, $cpustr);
|
||||
|
||||
my $retry = 0;
|
||||
|
@ -5,6 +5,7 @@ use warnings;
|
||||
|
||||
use PVE::JSONSchema;
|
||||
use PVE::Cluster qw(cfs_register_file cfs_read_file);
|
||||
use PVE::Tools qw(is_native_arch);
|
||||
use PVE::QemuServer::Helpers qw(min_version);
|
||||
|
||||
use base qw(PVE::SectionConfig Exporter);
|
||||
@ -414,9 +415,9 @@ sub get_custom_model {
|
||||
|
||||
# Print a QEMU device node for a given VM configuration for hotplugging CPUs
|
||||
sub print_cpu_device {
|
||||
my ($conf, $id) = @_;
|
||||
my ($conf, $arch, $id) = @_;
|
||||
|
||||
my $kvm = $conf->{kvm} // 1;
|
||||
my $kvm = $conf->{kvm} // is_native_arch($arch);
|
||||
my $cpu = get_default_cpu_type('x86_64', $kvm);
|
||||
if (my $cputype = $conf->{cpu}) {
|
||||
my $cpuconf = PVE::JSONSchema::parse_property_string('pve-vm-cpu-conf', $cputype)
|
||||
|
Loading…
Reference in New Issue
Block a user