From nobody Mon Feb 9 09:08:56 2026 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of lists.libvirt.org designates 8.43.85.245 as permitted sender) client-ip=8.43.85.245; envelope-from=devel-bounces@lists.libvirt.org; helo=lists.libvirt.org; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of lists.libvirt.org designates 8.43.85.245 as permitted sender) smtp.mailfrom=devel-bounces@lists.libvirt.org; dmarc=pass(p=none dis=none) header.from=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1770450860; cv=none; d=zohomail.com; s=zohoarc; b=NHX19Jj1gYXMX0fp40alEz9fGOjPvPN5Vdo1pBp3Ptck4M5YwGGDJTJs9cfo5DFXiJuWCF5FrQtHWPDdhwst29qkYlSL1DW699jtpR8NVyxiBkoxszQHVWMN/dX41xRoDxqaYCWhDIFbDCcTofS2R3C6uF/KxXKrkpma7u7ivjM= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1770450860; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Owner:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Subject:Subject:To:To:Message-Id:Reply-To; bh=z2LQAktDVC5paHb1MFga1UWxZHDk1Wu7h8ygQ8BRXag=; b=mVF+MExYjPJQFVx+WkN/v60B/Qc9bq5hUAeLiNRsInFYy72BjXKsxKmvbJlormyEM+ZPG99Zs5+NeC0uC8TwRdrRxy8UV8SS8tvkIv8WUX/x7u1ZabK1wIe9tBVV9SPYVfT2USz1Djy3H9OqeY5CodT2ahf4YGNbxQDLB9iWdoA= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of lists.libvirt.org designates 8.43.85.245 as permitted sender) smtp.mailfrom=devel-bounces@lists.libvirt.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.libvirt.org (lists.libvirt.org [8.43.85.245]) by mx.zohomail.com with SMTPS id 1770450860626716.452019599287; Fri, 6 Feb 2026 23:54:20 -0800 (PST) Received: by lists.libvirt.org (Postfix, from userid 993) id 043EE41967; Sat, 7 Feb 2026 02:54:20 -0500 (EST) Received: from [172.19.199.6] (lists.libvirt.org [8.43.85.245]) by lists.libvirt.org (Postfix) with ESMTP id 9B6F441BF1; Sat, 7 Feb 2026 02:52:58 -0500 (EST) Received: by lists.libvirt.org (Postfix, from userid 993) id 4FFD2417D6; Sat, 7 Feb 2026 02:52:52 -0500 (EST) Received: from mail-ej1-f44.google.com (mail-ej1-f44.google.com [209.85.218.44]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (3072 bits) server-digest SHA256) (No client certificate requested) by lists.libvirt.org (Postfix) with ESMTPS id 76AA741813 for ; Sat, 7 Feb 2026 02:52:51 -0500 (EST) Received: by mail-ej1-f44.google.com with SMTP id a640c23a62f3a-b8869cd7bb1so261462266b.1 for ; Fri, 06 Feb 2026 23:52:51 -0800 (PST) Received: from tulp.my.domain (2001-1c02-1a15-3000-c218-03ff-feb5-6cc4.cable.dynamic.v6.ziggo.nl. [2001:1c02:1a15:3000:c218:3ff:feb5:6cc4]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-b8edacaffeesm153634466b.38.2026.02.06.23.52.48 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 06 Feb 2026 23:52:48 -0800 (PST) X-Spam-Checker-Version: SpamAssassin 4.0.1 (2024-03-26) on lists.libvirt.org X-Spam-Level: X-Spam-Status: No, score=-5.3 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,RCVD_IN_DNSWL_MED, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED,RCVD_IN_VALIDITY_RPBL_BLOCKED, RCVD_IN_VALIDITY_SAFE_BLOCKED,SPF_PASS autolearn=unavailable autolearn_force=no version=4.0.1 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1770450770; x=1771055570; darn=lists.libvirt.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=z2LQAktDVC5paHb1MFga1UWxZHDk1Wu7h8ygQ8BRXag=; b=Z7xCexmlzIkKg5Yu2Ch4vOxPpFjdO/+5Ya724FAlSYO0Kkf7h4ODo1HCDZ+WKa4bd3 3DvUx4Sdc1aAahiDPpyc1+FDta39NBxgNdZVGPCP7yHNw8LPj0TIZa+ZHzpTWnI5aA5w ozw+beuKVZE6PtHNMp+sub81eBLkvJX25wv9fMmjdE+EGUcnbh93xB7hvX7BWkjhRwcx yeBPGj7BkgIkXx1Dtd07MJNnpHGmxMx+TCM71ZeMPQWm3CNL1NS8AmlCEvhpwu5K4HeC e52qtc64yylqTRDYOjqtPykbfjSvovFTTAgFNOjWzpk2z4jZ1N93tXIKXx6Ls/uUTdfw OzxA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1770450770; x=1771055570; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=z2LQAktDVC5paHb1MFga1UWxZHDk1Wu7h8ygQ8BRXag=; b=NV0ERUvxla98o6l0GZ2TM8QmT94fkq74Sk8kc2fXTFs/z28HksH8/1xruLT9BSy3Em 9YZAMU7hADPiVUdfzkoNsQB3AGT3rxObDMlBOsXt06X5wFPp+4WngOMlfNWr8JB26uyU QAAR1SOfp6rfeJLmTaCnjrw62e3hBwTaImaFowVTqmGCn2rpkAsc/gcOXVS89ju/kzTq G4XMqFRZQ8QKOHUpL01HUftkJczTQPLUat94hbh73ZdRXTX6BAfU0nI7V+OQifknitWW P9TajVyNDSIjYQiBRTUZk9Z0Uyu7EMMG6b67nYXXVdjisltUcsmK9t25eDAHH7dy/WWi IZQA== X-Gm-Message-State: AOJu0Yzafc5bOmzMf0WA1rTi/EcIegxsf6UsW4GITe1uL5n3hxB81B+4 PWMflwgGGnWFPYmQnk68jwS7lclWqZTSDOhvOXIybe94NMTsSNq5T3xQpnaWluQX X-Gm-Gg: AZuq6aJgEihP6M9E8lkEwWFXXOOydMTo98dQMNb+V0NqlHRR4aFtpyTYuXqsFrkM1bw fY2J8HhMmCVW30J2uwv5IJAZ5NxuSWSF9CrrkJf4giz+UXp2vvbccUVadFrDa7GNse2aVNPGoMb 9tJOQAL5q2H3UUrTfLxf413WYCyDewLGb123YVIOYe5m/xyI/jZXXMlolvNUv8sz28bUGlEyZmY 1nofA3gG3wXaf+CJFPL1SjXnQDCljZAU2SC4Gycv8wE4g1R7xjOTgrQcd58ed9xOkqiLxIdlYuH aBQuIMUYpN2HhUAA/bRhmxpt2kOkHbc/5NOBgbr66fAznpYhxf1oAo7GdzylBA3LCV1Zaix6+P1 8bK9m2sj+7TZOqnL49WUVgSMG8h7elqh5kZ8InzE5dNydKZVTOqiNyJpwH1suNupoK8w54qtWHo tKPKHmL7eGvp/1Lsduh/3AWvfkUN5CFw6AJgKBebVZLFhVwhrL7hft0YMHiV+dr3T5fW2iEDoZw ZufoggIcVG8R1vCwv9Kq5f0pjl/pKmCeuo= X-Received: by 2002:a17:906:7944:b0:b8e:15cf:78e0 with SMTP id a640c23a62f3a-b8edf2fbc62mr315899866b.40.1770450769580; Fri, 06 Feb 2026 23:52:49 -0800 (PST) From: Roman Bogorodskiy To: devel@lists.libvirt.org Subject: [PATCH 2/2] bhyve: implement domainGetVcpuPinInfo Date: Sat, 7 Feb 2026 08:52:09 +0100 Message-ID: <20260207075209.18946-3-bogorodskiy@gmail.com> X-Mailer: git-send-email 2.52.0 In-Reply-To: <20260207075209.18946-1-bogorodskiy@gmail.com> References: <20260207075209.18946-1-bogorodskiy@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Message-ID-Hash: TUGA3RDWKIO6NFCPQPLMAKRMPSE7RTB7 X-Message-ID-Hash: TUGA3RDWKIO6NFCPQPLMAKRMPSE7RTB7 X-MailFrom: bogorodskiy@gmail.com X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; loop; banned-address; header-match-devel.lists.libvirt.org-0; emergency; member-moderation; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header CC: Roman Bogorodskiy X-Mailman-Version: 3.3.10 Precedence: list List-Id: Development discussions about the libvirt library & tools Archived-At: List-Archive: List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: X-ZohoMail-DKIM: pass (identity @gmail.com) X-ZM-MESSAGEID: 1770450862735154100 Content-Type: text/plain; charset="utf-8" Implement domainGetVcpuPinInfo for querying vcpu pinning information. Also, implement a couple of other APIs this one depends on: domainGetVcpusFlags and domainGetMaxVcpus. Signed-off-by: Roman Bogorodskiy --- src/bhyve/bhyve_driver.c | 74 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 74 insertions(+) diff --git a/src/bhyve/bhyve_driver.c b/src/bhyve/bhyve_driver.c index cbcdc996dc..a7bd16704e 100644 --- a/src/bhyve/bhyve_driver.c +++ b/src/bhyve/bhyve_driver.c @@ -1775,6 +1775,77 @@ bhyveDomainBlockStats(virDomainPtr domain, return ret; } =20 +static int +bhyveDomainGetVcpusFlags(virDomainPtr domain, unsigned int flags) +{ + virDomainObj *vm; + virDomainDef *def; + int ret =3D -1; + + virCheckFlags(VIR_DOMAIN_AFFECT_LIVE | + VIR_DOMAIN_AFFECT_CONFIG | + VIR_DOMAIN_VCPU_MAXIMUM, -1); + + if (!(vm =3D bhyveDomObjFromDomain(domain))) + return -1; + + if (virDomainGetVcpusFlagsEnsureACL(domain->conn, vm->def, flags) < 0) + goto cleanup; + + if (!(def =3D virDomainObjGetOneDef(vm, flags))) + goto cleanup; + + if (flags & VIR_DOMAIN_VCPU_MAXIMUM) + ret =3D virDomainDefGetVcpusMax(def); + else + ret =3D virDomainDefGetVcpus(def); + + cleanup: + virDomainObjEndAPI(&vm); + return ret; +} + +static int +bhyveDomainGetMaxVcpus(virDomainPtr domain) +{ + return bhyveDomainGetVcpusFlags(domain, (VIR_DOMAIN_AFFECT_LIVE | + VIR_DOMAIN_VCPU_MAXIMUM)); +} + +static int +bhyveDomainGetVcpuPinInfo(virDomainPtr domain, + int ncpumaps, + unsigned char *cpumaps, + int maplen, + unsigned int flags) +{ + virDomainObj *vm; + virDomainDef *def; + g_autoptr(virBitmap) hostcpus =3D NULL; + int ret =3D -1; + + virCheckFlags(VIR_DOMAIN_AFFECT_LIVE | VIR_DOMAIN_AFFECT_CONFIG, -1); + + if (!(vm =3D bhyveDomObjFromDomain(domain))) + return -1; + + if (virDomainGetVcpuPinInfoEnsureACL(domain->conn, vm->def) < 0) + goto cleanup; + + if (!(def =3D virDomainObjGetOneDef(vm, flags))) + goto cleanup; + + if (!(hostcpus =3D virHostCPUGetAvailableCPUsBitmap())) + goto cleanup; + + ret =3D virDomainDefGetVcpuPinInfoHelper(def, maplen, ncpumaps, cpumap= s, + hostcpus, NULL); + + cleanup: + virDomainObjEndAPI(&vm); + return ret; +} + static virHypervisorDriver bhyveHypervisorDriver =3D { .name =3D "bhyve", .connectURIProbe =3D bhyveConnectURIProbe, @@ -1838,6 +1909,9 @@ static virHypervisorDriver bhyveHypervisorDriver =3D { .domainInterfaceStats =3D bhyveDomainInterfaceStats, /* 11.7.0 */ .domainMemoryStats =3D bhyveDomainMemoryStats, /* 11.7.0 */ .domainBlockStats =3D bhyveDomainBlockStats, /* 11.7.0 */ + .domainGetVcpusFlags =3D bhyveDomainGetVcpusFlags, /* 12.1.0 */ + .domainGetMaxVcpus =3D bhyveDomainGetMaxVcpus, /* 12.1.0 */ + .domainGetVcpuPinInfo =3D bhyveDomainGetVcpuPinInfo, /* 12.1.0 */ }; =20 =20 --=20 2.52.0