From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from gate001.proxmox.com (gate001.proxmox.com [IPv6:2a0f:8001:1:32::40]) by lore.proxmox.com (Postfix) with ESMTPS id C80881FF0E2 for ; Thu, 30 Jul 2026 16:15:30 +0200 (CEST) Received: from gate001.proxmox.com (localhost.localdomain [127.0.0.1]) by gate001.proxmox.com (Proxmox) with ESMTP id 3698A21489; Thu, 30 Jul 2026 16:15:29 +0200 (CEST) From: Fiona Ebner To: pve-devel@lists.proxmox.com Subject: [RFC qemu/qemu-server 0/2] qemu: dump and ship CPU model expansions Date: Thu, 30 Jul 2026 16:15:08 +0200 Message-ID: <20260730141522.203966-1-f.ebner@proxmox.com> X-Mailer: git-send-email 2.47.3 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Bm-Milter-Handled: 55990f41-d878-4baa-be0a-ee34c49e34d2 X-Bm-Transport-Timestamp: 1785420916956 X-SPAM-LEVEL: Spam detection results: 0 AWL 0.162 Adjusted score from AWL reputation of From: address DMARC_MISSING 0.1 Missing DMARC policy KAM_DMARC_STATUS 0.01 Test Rule for DKIM or SPF Failure with Strict Alignment (newer systems) RCVD_IN_DNSWL_LOW -0.7 Sender listed at https://www.dnswl.org/, low trust 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: FT3F2BA62QIJVEUUIYKNVHCQ4VUUNWTJ X-Message-ID-Hash: FT3F2BA62QIJVEUUIYKNVHCQ4VUUNWTJ X-MailFrom: f.ebner@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: Sending this, so Arthur and Erik can look into it for issue #7841. Having the CPU model expansions readily available makes it possible to be precise when checking for the presence of certain CPU flags or properties. For example, the pdpe1gb flag is relevant since OVMF will limit the phys-bits to 40 without that. Starting a QEMU process to query this via QMP is too costly in many cases, so qemu-server is currently limited to use heuristics. Having the flags can also be useful for the custom CPU model editor to show what the default value for a given flag and model actually is. The one for x86_64 is rather large with 1.65 MiB, but it can be loaded on first use and then cached by the CPUConfig.pm module. It's important to be aware that some features/flags are gated behind others, most prominently, the nested virtualization ones. pve-qemu: Fiona Ebner (1): d/rules: dump and ship CPU model expansions debian/cpu-model-expansions-aarch64.json | 220 + debian/cpu-model-expansions-x86_64.json | 51268 +++++++++++++++++++++ debian/dump-cpu-model-expansions.pl | 66 + debian/rules | 10 + 4 files changed, 51564 insertions(+) create mode 100644 debian/cpu-model-expansions-aarch64.json create mode 100644 debian/cpu-model-expansions-x86_64.json create mode 100755 debian/dump-cpu-model-expansions.pl qemu-server: Fiona Ebner (1): cpu flags: introduce get_cpu_model_expansions() helper src/PVE/QemuServer/CPUFlags.pm | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) Summary over all repositories: 5 files changed, 51591 insertions(+), 0 deletions(-) -- Generated by git-murpp 0.5.0