From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from firstgate.proxmox.com (firstgate.proxmox.com [IPv6:2a01:7e0:0:424::9]) by lore.proxmox.com (Postfix) with ESMTPS id CE8DE1FF142 for ; Mon, 02 Mar 2026 14:30:17 +0100 (CET) Received: from firstgate.proxmox.com (localhost [127.0.0.1]) by firstgate.proxmox.com (Proxmox) with ESMTP id 33F9F32F4A; Mon, 2 Mar 2026 14:30:06 +0100 (CET) From: Dominik Csapak To: pve-devel@lists.proxmox.com Subject: [PATCH manager v3 17/18] ui: qemu: change ui default for cpu model Date: Mon, 2 Mar 2026 14:21:05 +0100 Message-ID: <20260302132913.3169037-18-d.csapak@proxmox.com> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20260302132913.3169037-1-d.csapak@proxmox.com> References: <20260302132913.3169037-1-d.csapak@proxmox.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-SPAM-LEVEL: Spam detection results: 0 AWL 0.035 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 Message-ID-Hash: KUP3OGX266L5DSZ53QFG24AAGRCYTZS3 X-Message-ID-Hash: KUP3OGX266L5DSZ53QFG24AAGRCYTZS3 X-MailFrom: d.csapak@proxmox.com X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; loop; banned-address; emergency; member-moderation; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header X-Mailman-Version: 3.3.10 Precedence: list List-Id: Proxmox VE development discussion List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: in the wizard, we already choose 'x86-64-v2-AES' by default for new vms, but the backend default (kvm64) is very easy to select by emptying the field. Since that default is actually discouraged (but can't be changed as backend default easily), use the wizard default as default for all occurrences of the cpu model selector (making it much harder to accidentally select 'kvm64'). While at it, document the 'default' cpu types in Utils, and use it to set the correct emptyText for earch architecture. Signed-off-by: Dominik Csapak --- www/manager6/form/CPUModelSelector.js | 26 ++++++++++++++++++++++++++ www/manager6/qemu/OSDefaults.js | 1 - www/manager6/qemu/ProcessorEdit.js | 13 ++++++++++++- 3 files changed, 38 insertions(+), 2 deletions(-) diff --git a/www/manager6/form/CPUModelSelector.js b/www/manager6/form/CPUModelSelector.js index 602706e7..a55d473e 100644 --- a/www/manager6/form/CPUModelSelector.js +++ b/www/manager6/form/CPUModelSelector.js @@ -20,6 +20,28 @@ Ext.define('PVE.form.CPUModelSelector', { deleteEmpty: true, + getSubmitData: function () { + let me = this, + data = null, + val; + if (!me.disabled && me.submitValue) { + val = me.getSubmitValue(); + if (val !== null && val !== '' && val !== undefined) { + data = {}; + data[me.getName()] = val; + } else if (me.getDeleteEmpty()) { + data = {}; + // special case to change gui default for x86 + if (me.arch === 'x86_64') { + data[me.getName()] = PVE.qemu.Architecture.defaultProcessorModel.x86_64; + } else { + data.delete = me.getName(); + } + } + } + return data; + }, + listConfig: { columns: [ { @@ -51,6 +73,10 @@ Ext.define('PVE.form.CPUModelSelector', { } me.store.getProxy().setExtraParams(params); me.store.reload(); + + let defaultCPU = PVE.qemu.Architecture.defaultProcessorModel[arch] ?? 'kvm64'; + + me.setEmptyText(`${Proxmox.Utils.defaultText} (${defaultCPU})`); }, store: { diff --git a/www/manager6/qemu/OSDefaults.js b/www/manager6/qemu/OSDefaults.js index a2c218df..bd652e2f 100644 --- a/www/manager6/qemu/OSDefaults.js +++ b/www/manager6/qemu/OSDefaults.js @@ -52,7 +52,6 @@ Ext.define('PVE.qemu.OSDefaults', { virtio: 1, }, scsihw: 'virtio-scsi-single', - cputype: 'x86-64-v2-AES', }, aarch64: { diff --git a/www/manager6/qemu/ProcessorEdit.js b/www/manager6/qemu/ProcessorEdit.js index 5fa57048..68caec16 100644 --- a/www/manager6/qemu/ProcessorEdit.js +++ b/www/manager6/qemu/ProcessorEdit.js @@ -305,8 +305,19 @@ Ext.define('PVE.qemu.ProcessorEdit', { vm.set('showCustomModelPermWarning', true); } } - me.setValues(data); let arch = PVE.qemu.Architecture.getGuestArchitecture(data.arch, me.nodename); + // change default cputype for x86 in gui only + if (arch === 'x86_64') { + if (!data.cputype) { + // use our backend default as explicit value + data.cputype = 'kvm64'; + } else if ( + data.cputype === PVE.qemu.Architecture.defaultProcessorModel.x86_64 + ) { + delete data.cputype; + } + } + me.setValues(data); ipanel.setArch(arch); }, }); -- 2.47.3