public inbox for pve-devel@lists.proxmox.com
 help / color / mirror / Atom feed
From: Filip Schauer <f.schauer@proxmox.com>
To: pve-devel@lists.proxmox.com
Subject: Re: [pve-devel] [PATCH qemu-server 4/5] Unify the default value for 'kvm'
Date: Fri, 23 Feb 2024 12:54:46 +0100	[thread overview]
Message-ID: <5d123bf2-ea6d-4ed9-946f-77c12de620a8@proxmox.com> (raw)
In-Reply-To: <20240221143317.134090-6-f.schauer@proxmox.com>

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 <f.schauer@proxmox.com>
> ---
>   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)




  reply	other threads:[~2024-02-23 11:55 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-02-21 14:33 [pve-devel] [PATCH-SERIES v8 qemu-server, common] Prevent starting a 32-bit VM using a 64-bit OVMF BIOS Filip Schauer
2024-02-21 14:33 ` [pve-devel] [PATCH common 1/1] tools: add is_native_arch to compare the CPU architecture Filip Schauer
2024-02-21 14:33 ` [pve-devel] [PATCH qemu-server 1/5] cpu config: add helper to get the default CPU type Filip Schauer
2024-02-21 14:33 ` [pve-devel] [PATCH qemu-server 2/5] prevent starting a 32-bit VM using a 64-bit OVMF BIOS Filip Schauer
2024-02-21 14:33 ` [pve-devel] [PATCH qemu-server 3/5] Move is_native from PVE::QemuServer to PVE::Tools Filip Schauer
2024-02-21 14:33 ` [pve-devel] [PATCH qemu-server 4/5] Unify the default value for 'kvm' Filip Schauer
2024-02-23 11:54   ` Filip Schauer [this message]
2024-02-21 14:33 ` [pve-devel] [PATCH qemu-server 5/5] cpu config: die on hotplug of non x86_64 CPUs Filip Schauer
2024-03-08 13:34   ` Thomas Lamprecht
2024-03-08 13:53     ` Fiona Ebner
2024-03-11 10:13       ` Filip Schauer
2024-03-08 13:34 ` [pve-devel] partially-applied-series: [PATCH-SERIES v8 qemu-server, common] Prevent starting a 32-bit VM using a 64-bit OVMF BIOS Thomas Lamprecht

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=5d123bf2-ea6d-4ed9-946f-77c12de620a8@proxmox.com \
    --to=f.schauer@proxmox.com \
    --cc=pve-devel@lists.proxmox.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
Service provided by Proxmox Server Solutions GmbH | Privacy | Legal