From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from firstgate.proxmox.com (firstgate.proxmox.com [212.224.123.68]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits)) (No client certificate requested) by lists.proxmox.com (Postfix) with ESMTPS id 915AB94DA2 for ; Fri, 23 Feb 2024 12:55:18 +0100 (CET) Received: from firstgate.proxmox.com (localhost [127.0.0.1]) by firstgate.proxmox.com (Proxmox) with ESMTP id 7144E17D99 for ; Fri, 23 Feb 2024 12:54:48 +0100 (CET) Received: from proxmox-new.maurer-it.com (proxmox-new.maurer-it.com [94.136.29.106]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits)) (No client certificate requested) by firstgate.proxmox.com (Proxmox) with ESMTPS for ; Fri, 23 Feb 2024 12:54:47 +0100 (CET) Received: from proxmox-new.maurer-it.com (localhost.localdomain [127.0.0.1]) by proxmox-new.maurer-it.com (Proxmox) with ESMTP id 2F9FD44F1B for ; Fri, 23 Feb 2024 12:54:47 +0100 (CET) Message-ID: <5d123bf2-ea6d-4ed9-946f-77c12de620a8@proxmox.com> Date: Fri, 23 Feb 2024 12:54:46 +0100 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Content-Language: en-US To: pve-devel@lists.proxmox.com References: <20240221143317.134090-1-f.schauer@proxmox.com> <20240221143317.134090-6-f.schauer@proxmox.com> From: Filip Schauer In-Reply-To: <20240221143317.134090-6-f.schauer@proxmox.com> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-SPAM-LEVEL: Spam detection results: 0 AWL -0.102 Adjusted score from AWL reputation of From: address BAYES_00 -1.9 Bayes spam probability is 0 to 1% DMARC_MISSING 0.1 Missing DMARC policy KAM_DMARC_STATUS 0.01 Test Rule for DKIM or SPF Failure with Strict Alignment SPF_HELO_NONE 0.001 SPF: HELO does not publish an SPF Record SPF_PASS -0.001 SPF: sender matches SPF record T_SCC_BODY_TEXT_LINE -0.01 - URIBL_BLOCKED 0.001 ADMINISTRATOR NOTICE: The query to URIBL was blocked. See http://wiki.apache.org/spamassassin/DnsBlocklists#dnsbl-block for more information. [qemuserver.pm, cpuconfig.pm] Subject: Re: [pve-devel] [PATCH qemu-server 4/5] Unify the default value for 'kvm' X-BeenThere: pve-devel@lists.proxmox.com X-Mailman-Version: 2.1.29 Precedence: list List-Id: Proxmox VE development discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 23 Feb 2024 11:55:18 -0000 This is missing a descriptive commit message. It must have accidentally gone lost during a rebase. Use this as the commit message: 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. On 21/02/2024 15:33, Filip Schauer wrote: > Signed-off-by: Filip Schauer > --- > PVE/QemuServer.pm | 5 +++-- > PVE/QemuServer/CPUConfig.pm | 5 +++-- > 2 files changed, 6 insertions(+), 4 deletions(-) > > diff --git a/PVE/QemuServer.pm b/PVE/QemuServer.pm > index 7600939..6055d40 100644 > --- a/PVE/QemuServer.pm > +++ b/PVE/QemuServer.pm > @@ -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; > diff --git a/PVE/QemuServer/CPUConfig.pm b/PVE/QemuServer/CPUConfig.pm > index 65ba43f..7d471f4 100644 > --- a/PVE/QemuServer/CPUConfig.pm > +++ b/PVE/QemuServer/CPUConfig.pm > @@ -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)