From: Fiona Ebner <f.ebner@proxmox.com>
To: Arthur Bied-Charreton <a.bied-charreton@proxmox.com>
Cc: pve-devel@lists.proxmox.com
Subject: Re: [PATCH manager/qemu-server 0/8] Add API and UI for custom CPU models
Date: Fri, 27 Mar 2026 14:28:46 +0100 [thread overview]
Message-ID: <21976f11-3da8-4e35-9586-a20bdcdf7a19@proxmox.com> (raw)
In-Reply-To: <t73ko3ejcbmkjo2euqinmbwxdo4vm77sll5dmfxjjegp3xpwig@quicdzqjb5tu>
Am 27.03.26 um 2:06 PM schrieb Arthur Bied-Charreton:
> On Thu, Mar 26, 2026 at 03:54:53PM +0100, Fiona Ebner wrote:
>> Am 12.03.26 um 9:40 AM schrieb Arthur Bied-Charreton:
>>> This is picked up from an old series [0] by Stefan Reiter.
>>>
>>> As of before this series, the only way to create custom CPU models is by
>>> editing `/etc/pve/virtual-guest/cpu-models.conf` manually.
>>>
>>> This can be cumbersome for a few reasons, e.g., due to the fact that flags
>>> misconfigurations are only caught when starting the VM.
>>>
>>> `cpu-flags` endpoint:
>>> The `cpu-flags` endpoint previously returned a list of hardcoded flags,
>>> which is both non-exhaustive (some flags I should be able to set are missing),
>>> and partly incorrect (some flags my host(s) do not support set are returned).
>>> This is limiting and can lead to misconfigurations. The updated endpoint
>>> intersects all flags QEMU accepts as `-cpu` arguments with all flags the host
>>> hardware/emulation actually supports. This way, if I am able to set a flag in
>>> the UI, I can be confident that the VM will actually be able to start.
>>>
>>> Custom CPU model CRUD functionality:
>>> Expose CRUD endpoints and UI flow to interact with `cpu-models.conf`. For each
>>> flag, show a list of the cluster nodes supporting it, and only expose flags that
>>> at least one node supports to avoid misconfigurations. Filter flags by
>>> acceleration type (KVM/TCG).
>>>
>>> [0] https://lore.proxmox.com/pve-devel/20211028114150.3245864-1-s.reiter@proxmox.com/
>>
>> With a pre-existing, manually added model:
>>
>> [I] root@pve9a1 ~# cat /etc/pve/virtual-guest/cpu-models.conf
>> cpu-model: nested-for-wsl
>> flags +svm
>> hidden 1
>> hv-vendor-id AuthenticAMD
>> reported-model EPYC
>>
>> When opening it up in the UI, the editor seems to immediately detect a
>> change, i.e. the OK button is clickable and when I click it, I get the
>> following error:
>>
>> Parameter verification failed. (400)
>> flags: value does not match the regex pattern
>>
> Thanks a lot for catching that!
>
>> It seems to be because of the 'svm' flag not being in the flags grid.
> Yes, just confirmed that.
>> Since users might've already added such models manually, it would be
>> nice if it would work. Maybe list the unknown flags in the grid without
>> description?
> Yes, I will display unknown flags in the grid with empty supported-on
> fields.
>
> On this topic: I currently manually filter out occurrences of svm/vmx to
> replace them with nested-virt. Would it make sense to still display them
> in the flags selector, even if they overlap with our abstraction?
I think we can still show them and don't need to filter them out. In
particular, not having the 'supported-on' for those flags can also lead
to confusion, as can (artificially) hiding them from users. I don't see
why we should force people to use the abstract 'nested-virt'. It can be
convenient for mixed-CPU-vendor clusters, and having the flag be part of
the VM-specific ones was the main motivation to add it.
prev parent reply other threads:[~2026-03-27 13:28 UTC|newest]
Thread overview: 34+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-03-12 8:40 Arthur Bied-Charreton
2026-03-12 8:40 ` [PATCH pve-manager 1/8] ui: VMCPUFlagSelector: Fix unknownFlags behaviour Arthur Bied-Charreton
2026-03-25 15:57 ` Fiona Ebner
2026-03-26 13:47 ` Arthur Bied-Charreton
2026-03-12 8:40 ` [PATCH pve-manager 2/8] ui: CPUModelSelector: Fix dirty state on default Arthur Bied-Charreton
2026-03-26 9:53 ` Fiona Ebner
2026-03-26 14:14 ` Arthur Bied-Charreton
2026-03-12 8:40 ` [PATCH pve-manager 3/8] ui: CPUModelSelector: Allow filtering out custom models Arthur Bied-Charreton
2026-03-26 9:59 ` Fiona Ebner
2026-03-26 14:17 ` Arthur Bied-Charreton
2026-03-12 8:40 ` [PATCH pve-manager 4/8] ui: Add basic custom CPU model editor Arthur Bied-Charreton
2026-03-26 15:10 ` Fiona Ebner
2026-03-27 9:23 ` Arthur Bied-Charreton
2026-03-27 9:32 ` Fiona Ebner
2026-03-27 9:34 ` Arthur Bied-Charreton
2026-03-12 8:40 ` [PATCH pve-manager 5/8] ui: Add CPU flag editor for custom models Arthur Bied-Charreton
2026-03-26 15:22 ` Fiona Ebner
2026-03-27 9:34 ` Arthur Bied-Charreton
2026-03-26 15:40 ` Maximiliano Sandoval
2026-03-27 7:48 ` Arthur Bied-Charreton
2026-03-12 8:40 ` [PATCH qemu-server 6/8] qemu: Add helpers for new custom models endpoints Arthur Bied-Charreton
2026-03-20 17:20 ` Fiona Ebner
2026-03-23 6:56 ` Arthur Bied-Charreton
2026-03-12 8:40 ` [PATCH qemu-server 7/8] api: qemu: Extend cpu-flags endpoint to return actually supported flags Arthur Bied-Charreton
2026-03-20 17:20 ` Fiona Ebner
2026-03-23 7:25 ` Arthur Bied-Charreton
2026-03-12 8:40 ` [PATCH qemu-server 8/8] api: qemu: Add CRUD handlers for custom CPU models Arthur Bied-Charreton
2026-03-23 14:46 ` Fiona Ebner
2026-03-23 16:04 ` Arthur Bied-Charreton
2026-03-23 16:10 ` Arthur Bied-Charreton
2026-03-24 9:27 ` Fiona Ebner
2026-03-26 14:54 ` [PATCH manager/qemu-server 0/8] Add API and UI " Fiona Ebner
2026-03-27 13:07 ` Arthur Bied-Charreton
2026-03-27 13:28 ` Fiona Ebner [this message]
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=21976f11-3da8-4e35-9586-a20bdcdf7a19@proxmox.com \
--to=f.ebner@proxmox.com \
--cc=a.bied-charreton@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