From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from firstgate.proxmox.com (firstgate.proxmox.com [212.224.123.68]) by lore.proxmox.com (Postfix) with ESMTPS id 2AC2F1FF13F for ; Thu, 07 May 2026 15:10:40 +0200 (CEST) Received: from firstgate.proxmox.com (localhost [127.0.0.1]) by firstgate.proxmox.com (Proxmox) with ESMTP id BAF311C549; Thu, 7 May 2026 15:10:39 +0200 (CEST) Message-ID: Date: Thu, 7 May 2026 15:10:01 +0200 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH qemu-server v4 08/17] cpu flags: improve flags list returned by endpoint To: Arthur Bied-Charreton , pve-devel@lists.proxmox.com References: <20260430160109.565536-1-a.bied-charreton@proxmox.com> <20260430160109.565536-9-a.bied-charreton@proxmox.com> Content-Language: en-US From: Fiona Ebner In-Reply-To: <20260430160109.565536-9-a.bied-charreton@proxmox.com> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-Bm-Milter-Handled: 55990f41-d878-4baa-be0a-ee34c49e34d2 X-Bm-Transport-Timestamp: 1778159293734 X-SPAM-LEVEL: Spam detection results: 0 AWL 0.009 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: ZBUS7BHEVJT35R3FASTBFLJJNLT34B2E X-Message-ID-Hash: ZBUS7BHEVJT35R3FASTBFLJJNLT34B2E 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: Am 30.04.26 um 6:01 PM schrieb Arthur Bied-Charreton: > Enhance the cpu-flags endpoint's list of flags by using the new > query_available_cpu_flags utility, which for each flag, additionally > returns a list of nodes supporting it, e.g.: > > ``` > name: 'aes', > 'supported-on': ['node1', 'node2'], > description: '...', > ``` > > An `accel` parameter selects the acceleration type, `kvm` (default) or > `tcg` for which flag to node compatibility is evaluated. Typo: s/to/the/ > > Signed-off-by: Arthur Bied-Charreton > --- > src/PVE/API2/Qemu/CPUFlags.pm | 27 +++++++++++++++++++++++---- > 1 file changed, 23 insertions(+), 4 deletions(-) > > diff --git a/src/PVE/API2/Qemu/CPUFlags.pm b/src/PVE/API2/Qemu/CPUFlags.pm > index 672bd2d2..122f0ed9 100644 > --- a/src/PVE/API2/Qemu/CPUFlags.pm > +++ b/src/PVE/API2/Qemu/CPUFlags.pm > @@ -6,7 +6,8 @@ use PVE::JSONSchema qw(get_standard_option); > use PVE::RESTHandler; > use PVE::Tools qw(extract_param); > > -use PVE::QemuServer::CPUConfig; > +use PVE::QemuServer::Helpers; > +use PVE::QemuServer::CPUFlags; Nit: not ordered alphabetically > > use base qw(PVE::RESTHandler); > > @@ -14,13 +15,22 @@ __PACKAGE__->register_method({ > name => 'index', > path => '', > method => 'GET', > - description => 'List of available VM-specific CPU flags.', > + description => > + "List of available VM-specific CPU flags. Returns an empty list for 'aarch64' " > + . "as no VM-specific flags are defined for it yet.", > permissions => { user => 'all' }, > parameters => { > additionalProperties => 0, > properties => { > node => get_standard_option('pve-node'), > arch => get_standard_option('pve-qm-cpu-arch', { optional => 1 }), > + accel => { > + description => 'Acceleration type to check node compatibility for.', > + type => 'string', > + enum => [qw(kvm tcg)], > + optional => 1, > + default => 'kvm', > + }, > }, > }, > returns => { > @@ -35,6 +45,14 @@ __PACKAGE__->register_method({ > description => { > type => 'string', > description => "Description of the CPU flag.", > + optional => 1, AFAICT, we still always have a description, so this is not necessary. > + }, > + 'supported-on' => { > + description => > + 'List of nodes supporting the CPU flag with the selected acceleration type ("accel").', > + type => 'array', > + items => get_standard_option('pve-node'), > + optional => 1, > }, > }, > }, > @@ -42,9 +60,10 @@ __PACKAGE__->register_method({ > code => sub { > my ($param) = @_; > > - my $arch = extract_param($param, 'arch'); > + my $arch = extract_param($param, 'arch') // PVE::QemuServer::Helpers::get_host_arch(); > + my $accel = extract_param($param, 'accel') // 'kvm'; > > - return PVE::QemuServer::CPUConfig::get_supported_cpu_flags($arch); > + return PVE::QemuServer::CPUFlags::query_available_cpu_flags($accel, 1, $arch); > }, > }); >