From nobody Fri Nov 21 10:02:43 2025 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=1762797584; cv=none; d=zohomail.com; s=zohoarc; b=fMySr7PFFka6cuq4Xn+On4tCcP/7u2mAyhi1UE2lLWhf9oaevfq6ivfoGn1KMiMGe2OzF1c7kFgP1cP+uA8SBso8ocqgx9tRjsWRAhUjPj4B2DeFD3Ivku05KW/tJOGBMkgTCH1xUKKmpBomAlAR0S584e4npK2D1sAYLgTU1Lw= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1762797584; 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=pSr6IinDfgqbkyU4qQawtrsmj6w3NLQvmlnsGKLVGB0=; b=YaQeJNdZLjuRScTlGIf+yJcdmT91B0ZBEdtdrkukjtcIA1MiOqIYHtmSqAhTTueFLaWhCo5iXfUIP9mAVIwBDM965gBmh6BtXN2ZUzLrSJsR4kszq3M0qAonrwKEB8n8ResYlP/k8dn3cAs1I5DervEjZOhapm6KcTCWo28QrEA= 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 1762797584319248.69564190011874; Mon, 10 Nov 2025 09:59:44 -0800 (PST) Received: by lists.libvirt.org (Postfix, from userid 993) id 683D844B45; Mon, 10 Nov 2025 12:59:43 -0500 (EST) Received: from [172.19.199.29] (lists.libvirt.org [8.43.85.245]) by lists.libvirt.org (Postfix) with ESMTP id F134344B93; Mon, 10 Nov 2025 12:58:00 -0500 (EST) Received: by lists.libvirt.org (Postfix, from userid 993) id C0D66448F0; Mon, 10 Nov 2025 12:57:45 -0500 (EST) Received: from mail-ej1-f52.google.com (mail-ej1-f52.google.com [209.85.218.52]) (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 35776449C0 for ; Mon, 10 Nov 2025 12:57:45 -0500 (EST) Received: by mail-ej1-f52.google.com with SMTP id a640c23a62f3a-b3c2db014easo611342066b.0 for ; Mon, 10 Nov 2025 09:57:45 -0800 (PST) Received: from tulp.my.domain (84-25-144-101.cable.dynamic.v4.ziggo.nl. [84.25.144.101]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-b72bf9bc214sm1182030966b.52.2025.11.10.09.57.42 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 10 Nov 2025 09:57:42 -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=1762797464; x=1763402264; 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=pSr6IinDfgqbkyU4qQawtrsmj6w3NLQvmlnsGKLVGB0=; b=RK5V7xJBXHwiT6dsZ+6eOYHTnK2pIldY3RUjDAKy9MB8pYj7Kc8L76BWh8cbkS76r/ uNxOPtfGgalg7OT7hIKlKYkP5ZksLqqbWQUH6TNIvna4OV9TZGjPywy44zSj1pzH7tCQ R0R95rwpN59GkRu9ZssahIttGwYksJNmev/1sEZawzMQ/yLOgeEVvK6GCzqNALiPd0Tn 0SxMm8c8uhih+i5ZTxqMI9USO4TSqRVIoz+erwFfChF9/Uy2NQFX56E+MJbYehgZh/sM s54ENQztpb2UEAO6GyJOB1wTJbcg+PFmw9O3XTBe9fdtUXXmX/2y1BecGgkGrVgTfY1P KBmw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1762797464; x=1763402264; 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=pSr6IinDfgqbkyU4qQawtrsmj6w3NLQvmlnsGKLVGB0=; b=SwafDBv/j6IfI6APzd62Wf2VGIONzLG+HBOaLx7LKy15YsONO7iFCsMx0Bqs0ZS3Hf /Dn7DoPWavKkIXNM4AsN6VDCiEzkd/89eYj/udZ5FwJgSRL0Q4K2ybUXx7+cvvVxqS9a EuniuHg7JI6GJ6HroOvqtHujTD5oEpEYyXh5sdJwE+EVZuw19rfsvpB2BslyFBPUPbNZ 9ftwNsnZ/wLUis5oKBSUZC1fNM7i45h1aLhqSqMzNayKCVf3Ml+VJ5RMg9MLgyr6XN2w VwvTPHqosZMAL0/d7E88vY8GtJUGA4fHTeZ8evDLT7AyloH04GXxlZp9n0uEeYWlucGZ ybpQ== X-Gm-Message-State: AOJu0YxbOZPnoHEa6m4cBjowZXpkuT4MDETGUZrkUrxtxC0nn9Klvv33 sEpqZ7QDduKU0+7BaRCYyUVIbQG+zNMDXmPul2IvENRyBHQSPAoV4LP0TrOkF43oagCWyw== X-Gm-Gg: ASbGncvoNXU9ODsmObsVcykF4/q/u4ROG/ZGChaz8hH+kgtZgvtpJb6DMdKqFu4IXi6 MBrrKr+yLlZLZSm0LZsVub51fgtiZrtleINSL1OYXbh6RezyhEN+ixAhwBYsBczf2NhPq/2ATd0 IH6WFo5YdhCcQ7WsVYHZyIhLNpmKHcE9VcUjiUcYz16eEtssHqFXlZnxZFpTLSlP8eXAHQoUVPZ f7U+3Ez/aNXxUPE3GPSfOWEMqevVNnZ1/cEFET4RoHDj9yiOGr63T0i5JuXy8yFQILlgAfpaEgT qFVvVvGJQf7bmc7cNVXYA5UDVRmzRcaly9fte4mFrSueXzAmchtBIwcelISwBLh27UEXvv835au 8EKUwxz4Vzqcj1UrgEibG3KT3KSHpFqQAK1hHf1Dg5gKvBQ11EVKhMC/QJOBnppQ24kS7l+0qQN O6g+obInR4rJMP5Tnp9wF6HNJG8nOvlxs0ZDaDv0Y+jkr9Nw== X-Google-Smtp-Source: AGHT+IHwBIe89H+KIxAkeyUg+ggl6ti2BYP+8Ng7gzA4U78sC2OOdVU6lBzxkqvZpj0UasDx2ydOnw== X-Received: by 2002:a17:906:528a:b0:b73:16fe:92d0 with SMTP id a640c23a62f3a-b7316fe948emr143532566b.18.1762797463276; Mon, 10 Nov 2025 09:57:43 -0800 (PST) From: Roman Bogorodskiy To: devel@lists.libvirt.org Subject: [PATCH 1/4] conf: domain_validate: make disk queue configuration driver specific Date: Mon, 10 Nov 2025 18:55:39 +0100 Message-ID: <20251110175542.36724-2-bogorodskiy@gmail.com> X-Mailer: git-send-email 2.51.0 In-Reply-To: <20251110175542.36724-1-bogorodskiy@gmail.com> References: <20251110175542.36724-1-bogorodskiy@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Message-ID-Hash: JZAT7MREXS6QOJ4HNPOGVJ55HP2AOSK3 X-Message-ID-Hash: JZAT7MREXS6QOJ4HNPOGVJ55HP2AOSK3 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: 1762797585525158500 Content-Type: text/plain; charset="utf-8" Currently, virDomainDiskDefValidate() allows to configure disks' number of queues and queue size for virtio disks only. However, the bhyve driver allows to configure these for the NVMe disks, so make this check driver-specific. Signed-off-by: Roman Bogorodskiy Reviewed-by: Michal Privoznik --- src/conf/domain_validate.c | 12 ------------ src/qemu/qemu_driver.c | 15 +++++++++++++++ src/qemu/qemu_validate.c | 14 ++++++++++++++ 3 files changed, 29 insertions(+), 12 deletions(-) diff --git a/src/conf/domain_validate.c b/src/conf/domain_validate.c index 17955decc0..8085d782c5 100644 --- a/src/conf/domain_validate.c +++ b/src/conf/domain_validate.c @@ -835,18 +835,6 @@ virDomainDiskDefValidate(const virDomainDef *def, return -1; } =20 - if (disk->queues) { - virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", - _("queues attribute in disk driver element is o= nly supported for virtio bus")); - return -1; - } - - if (disk->queue_size) { - virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", - _("queue_size attribute in disk driver is only = supported for virtio bus")); - return -1; - } - if (disk->event_idx !=3D VIR_TRISTATE_SWITCH_ABSENT) { virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", _("disk event_idx mode supported only for virti= o bus")); diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c index a1b1edcbbf..88c2b4edc3 100644 --- a/src/qemu/qemu_driver.c +++ b/src/qemu/qemu_driver.c @@ -6745,6 +6745,21 @@ qemuDomainAttachDeviceConfig(virDomainDef *vmdef, _("target %1$s already exists"), disk->dst); return -1; } + + if (disk->bus !=3D VIR_DOMAIN_DISK_BUS_VIRTIO) { + if (disk->queues) { + virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", + _("queues attribute in disk driver element = is only supported for virtio bus")); + return -1; + } + + if (disk->queue_size) { + virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", + _("queue_size attribute in disk driver is o= nly supported for virtio bus")); + return -1; + } + } + if (virDomainDiskTranslateSourcePool(disk) < 0) return -1; if (qemuCheckDiskConfigAgainstDomain(vmdef, disk) < 0) diff --git a/src/qemu/qemu_validate.c b/src/qemu/qemu_validate.c index 747e54bf44..5008391707 100644 --- a/src/qemu/qemu_validate.c +++ b/src/qemu/qemu_validate.c @@ -3698,6 +3698,20 @@ qemuValidateDomainDeviceDefDisk(const virDomainDiskD= ef *disk, } } =20 + if (disk->bus !=3D VIR_DOMAIN_DISK_BUS_VIRTIO) { + if (disk->queues) { + virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", + _("queues attribute in disk driver element is o= nly supported for virtio bus")); + return -1; + } + + if (disk->queue_size) { + virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", + _("queue_size attribute in disk driver is only = supported for virtio bus")); + return -1; + } + } + return 0; } =20 --=20 2.51.0 From nobody Fri Nov 21 10:02:43 2025 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=1762797645; cv=none; d=zohomail.com; s=zohoarc; b=khmffgJLitg/YqCBkLFdXQfLrRDH6TuJWox0RuLXE3+VLZpabg5EvzC1D9AQbVs016Bc8uMTMpYCfH4yTmMamxgdfqSxnQ53qiHhDuG6eDv3XWz+q2VCwA3GzZiYFtQb/C6n+vYYzBT08bYxJGz4TftqZrTZtNjm/zgpdfCOrAU= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1762797645; 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=cbab+5BBM97ufGMtkkc0IMq6NOcIrmW/jw1gB7Z+F0U=; b=T3eje4y9KV5bTEHBpvk4S8hVnT6RV8jPJAr78tTvD6cs1cbsF+2wMj4OKcM/98syDHf7duTf7tIqZduMSNf6Wqtcb8m8TLWSYlqndeJXRQaL8RL+rc3AXAr45e3RL1QCAqbKxdwa5GSDcrp8RLQPAIdnrYTLFKrabXZCMnKW5SA= 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 1762797645640889.009746970456; Mon, 10 Nov 2025 10:00:45 -0800 (PST) Received: by lists.libvirt.org (Postfix, from userid 993) id 9031144A87; Mon, 10 Nov 2025 13:00:44 -0500 (EST) Received: from [172.19.199.29] (lists.libvirt.org [8.43.85.245]) by lists.libvirt.org (Postfix) with ESMTP id 8F7FF44BD5; Mon, 10 Nov 2025 12:58:05 -0500 (EST) Received: by lists.libvirt.org (Postfix, from userid 993) id F23D0449C8; Mon, 10 Nov 2025 12:57:46 -0500 (EST) Received: from mail-ej1-f41.google.com (mail-ej1-f41.google.com [209.85.218.41]) (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 4A090448F0 for ; Mon, 10 Nov 2025 12:57:46 -0500 (EST) Received: by mail-ej1-f41.google.com with SMTP id a640c23a62f3a-b403bb7843eso602712066b.3 for ; Mon, 10 Nov 2025 09:57:46 -0800 (PST) Received: from tulp.my.domain (84-25-144-101.cable.dynamic.v4.ziggo.nl. [84.25.144.101]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-b72bf9bc214sm1182030966b.52.2025.11.10.09.57.43 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 10 Nov 2025 09:57:43 -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=1762797464; x=1763402264; 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=cbab+5BBM97ufGMtkkc0IMq6NOcIrmW/jw1gB7Z+F0U=; b=ZOBJxL2GaRZwEbtgf+tc4yua2H/k0BQdCrjomNAwAiS2x2ddB8In+H6aE3gy2jlpzh MFNTXH5to9vMZKswddkceuYH3FTVCbgyTF47YNfrniH7UzyaATZybA1WQufWFqPkLoL0 MT2j49HbvX61L0ZoNfyyLKUi7LZ3bJ2dF8HtjpGRFfROaWkzuYe6Ou9/9SNHmPWfV3l/ n6bzSGl/4K/d9TRBtpwaVPtosVeC5E3bovk1pS49sk6pc/AzvEV2CrBfuzq3bJFsz/JT 6t5n24wgRZpB59YvMw7Xzyu9T9Y/p54Y8ygclGFOkrJN0NlFGeB8NMjICq056sm7U0q2 h20A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1762797464; x=1763402264; 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=cbab+5BBM97ufGMtkkc0IMq6NOcIrmW/jw1gB7Z+F0U=; b=oZ9dsqo6jLzgi6kN2G7tZ3pWLuZReToC3ePLPUnqQSVtZwTEUKYykxrzXN8emqIyPV kRN50fYpNzWMDtLA2yoAGgwC20w7TQFobW6QLTFrJrBihFp+IM/tO8ZtG5zmSuKAZIpq +lJIdeWzBR+vymBkg6JFJlVEoF2RZKBKx1UcgKCIrtfB3rV1+OdYwsz83AVSkNGfYowi vin3SJ8bFCDdh+KUNZgB4PNNgXI/78ASPIqys84HcrrGQq/Zvv2GOcm/33qQ+Wcd5vfx ys5234/KFFy9/2ZUWPgw9WBogIXIX9Wzkd9645wa9gUcaEh/1xgETRxhPRtJEy+Ms4hC Krow== X-Gm-Message-State: AOJu0YzDOAJLiB4xW5/RFW7SD6h7JjrZDUC2QQoc6Mt5eulMM+F9gNg0 u9zzBoibqJvj9cJOavKwef2ys55/1CuaJaT6pgLAes7gM0cm0r9DktI57Ck03xVUu5WSKA== X-Gm-Gg: ASbGncuTeUkO8EngM8MrRWgYuY8p49qg0iBpYkxxiTPCBOBJLq7ZhcKCIcbIR0L2GfJ j/G5PlkFJrvtgbdX7YY2UMe0pYT/2NjGytmoULH5TxA5a4wuerBTQcpKbPYb4iGQgvxR73a2Fpb 30NwsKj2+BqFr+LrTw6RPrLihaqf4ea+FJC71X9664hvu/tOkixNTkCBN20wG24GumJUeE8sbtB wTr0eQ2b7Z8i1MfAOUYo6P7863uYTKAJeF6tLshb5B43NuBOpjfG2zVi3bWq0Q5psf7DlFyZeR5 MiZIirRT9cbQb+IXhTtmHBuybICu8h3YjkKb2TuqqTcOHN5YZ0sgGOOlKKkvnPhG7Gn67m7jM7y sNtYN8JV8kgmNqZEsQOXzwrTz2vSevwxwMcHJXlSy2JFsjAafZyzDbynsaAPqLVRlLZFgvRUGmh AeN1Gqo2Ne2cLBbUvE63cshwBRaxqPvwwoDvEOM+lZoLXwvHzqp2ObEtguFq57x+MJXFE= X-Google-Smtp-Source: AGHT+IEKjFyssR0chii264E6nlzSlVlOWTjtrJN+0wx6cXeNc703mlcYOIZdoRPRmrIlQl9hGK6oGg== X-Received: by 2002:a17:906:6a11:b0:b72:5bdf:6093 with SMTP id a640c23a62f3a-b72e030473bmr728980266b.23.1762797464145; Mon, 10 Nov 2025 09:57:44 -0800 (PST) From: Roman Bogorodskiy To: devel@lists.libvirt.org Subject: [PATCH 2/4] bhyve: support queue configuration for NVMe disks Date: Mon, 10 Nov 2025 18:55:40 +0100 Message-ID: <20251110175542.36724-3-bogorodskiy@gmail.com> X-Mailer: git-send-email 2.51.0 In-Reply-To: <20251110175542.36724-1-bogorodskiy@gmail.com> References: <20251110175542.36724-1-bogorodskiy@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Message-ID-Hash: IJK4UYB6OTSKSA75RVBBQPAM4ZOYAQYH X-Message-ID-Hash: IJK4UYB6OTSKSA75RVBBQPAM4ZOYAQYH 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: 1762797646317158500 Content-Type: text/plain; charset="utf-8" bhyve supports queue configuration for the NVMe disks: maxq Max number of queues. qsz Max elements in each queue. Map that to the disk driver's "queues" and "queue_size" attributes respectfully, so: results in: -s N:0,nvme,/tmp/disk.img,maxq=3D2,qsz=3D256 Signed-off-by: Roman Bogorodskiy Reviewed-by: Michal Privoznik --- src/bhyve/bhyve_command.c | 16 ++++++++++++++-- tests/bhyvexml2argvdata/bhyvexml2argv-nvme.args | 2 +- tests/bhyvexml2argvdata/bhyvexml2argv-nvme.xml | 2 +- .../bhyvexml2xmloutdata/bhyvexml2xmlout-nvme.xml | 2 +- 4 files changed, 17 insertions(+), 5 deletions(-) diff --git a/src/bhyve/bhyve_command.c b/src/bhyve/bhyve_command.c index 0ceac618e8..8bfd5a6f93 100644 --- a/src/bhyve/bhyve_command.c +++ b/src/bhyve/bhyve_command.c @@ -371,6 +371,9 @@ bhyveBuildNVMeControllerArgStr(const virDomainDef *def, size_t i; =20 for (i =3D 0; i < def->ndisks; i++) { + g_autofree char *nvme_opts =3D NULL; + + g_auto(virBuffer) opt =3D VIR_BUFFER_INITIALIZER; virDomainDiskDef *disk =3D def->disks[i]; =20 if (disk->bus !=3D VIR_DOMAIN_DISK_BUS_NVME) @@ -389,10 +392,19 @@ bhyveBuildNVMeControllerArgStr(const virDomainDef *de= f, =20 disk_source =3D virDomainDiskGetSource(disk); =20 + if (disk->queues) + virBufferAsprintf(&opt, ",maxq=3D%d", disk->queues); + if (disk->queue_size) + virBufferAsprintf(&opt, ",qsz=3D%d", disk->queue_size); + + nvme_opts =3D virBufferContentAndReset(&opt); + virCommandAddArg(cmd, "-s"); - virCommandAddArgFormat(cmd, "%d:0,nvme,%s", + virCommandAddArgFormat(cmd, "%d:0,nvme,%s%s", controller->info.addr.pci.slot, - disk_source); + disk_source, + NULLSTR_EMPTY(nvme_opts)); + } =20 return 0; diff --git a/tests/bhyvexml2argvdata/bhyvexml2argv-nvme.args b/tests/bhyvex= ml2argvdata/bhyvexml2argv-nvme.args index bd39db1fe6..80877717f2 100644 --- a/tests/bhyvexml2argvdata/bhyvexml2argv-nvme.args +++ b/tests/bhyvexml2argvdata/bhyvexml2argv-nvme.args @@ -5,5 +5,5 @@ bhyve \ -H \ -P \ -s 0:0,hostbridge \ --s 2:0,nvme,/tmp/freebsd.img \ +-s 2:0,nvme,/tmp/freebsd.img,maxq=3D2,qsz=3D256 \ bhyve diff --git a/tests/bhyvexml2argvdata/bhyvexml2argv-nvme.xml b/tests/bhyvexm= l2argvdata/bhyvexml2argv-nvme.xml index 8daaa11e85..5401ed6ad8 100644 --- a/tests/bhyvexml2argvdata/bhyvexml2argv-nvme.xml +++ b/tests/bhyvexml2argvdata/bhyvexml2argv-nvme.xml @@ -8,7 +8,7 @@ - + diff --git a/tests/bhyvexml2xmloutdata/bhyvexml2xmlout-nvme.xml b/tests/bhy= vexml2xmloutdata/bhyvexml2xmlout-nvme.xml index d4ab69b15f..40a1ea1c5e 100644 --- a/tests/bhyvexml2xmloutdata/bhyvexml2xmlout-nvme.xml +++ b/tests/bhyvexml2xmloutdata/bhyvexml2xmlout-nvme.xml @@ -14,7 +14,7 @@ destroy - +
--=20 2.51.0 From nobody Fri Nov 21 10:02:43 2025 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=1762797703; cv=none; d=zohomail.com; s=zohoarc; b=Jjtn75ZuoJmgKIQibNzj5jSlLBmfA6lpZUAM4mhdWR2Sicfbw3Ph5cdbi5n9q6vNYeUxpkbLGatq41WxVemV+jdyTq9rM539vB600TkTvYaSrmelhtTUj0UTFfzFl+vqlLqIZHG9JwOudUUDtA+xfxQ2mEAelG06keQ9TVterqg= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1762797703; 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=fhvmQM7vXkreuYab2XPQtp/CqpmJyhu/ldmR2mdqFqU=; b=aN9fB2kiudoE1o4dDF5F1qCzwM2S8uMZcpWuyRsJSQVC6WHTB9jkBZzGFN0njieEikNhSqxoVCYAQg6W1scNxySPUOTyVA8pJlxhCGrN2sBb2PDXXwlCgXj0dM7jk+jb3quYIFA95oc+OKxWGZDYqM4xFv0tfRyiBmoajhwRxvk= 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 1762797703928783.6807987241045; Mon, 10 Nov 2025 10:01:43 -0800 (PST) Received: by lists.libvirt.org (Postfix, from userid 993) id 51C0144204; Mon, 10 Nov 2025 13:01:41 -0500 (EST) Received: from [172.19.199.29] (lists.libvirt.org [8.43.85.245]) by lists.libvirt.org (Postfix) with ESMTP id DDE7344C14; Mon, 10 Nov 2025 12:58:09 -0500 (EST) Received: by lists.libvirt.org (Postfix, from userid 993) id BD60B441DE; Mon, 10 Nov 2025 12:57:47 -0500 (EST) Received: from mail-ej1-f48.google.com (mail-ej1-f48.google.com [209.85.218.48]) (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 D6629449CC for ; Mon, 10 Nov 2025 12:57:46 -0500 (EST) Received: by mail-ej1-f48.google.com with SMTP id a640c23a62f3a-b5b823b4f3dso485831666b.3 for ; Mon, 10 Nov 2025 09:57:46 -0800 (PST) Received: from tulp.my.domain (84-25-144-101.cable.dynamic.v4.ziggo.nl. [84.25.144.101]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-b72bf9bc214sm1182030966b.52.2025.11.10.09.57.44 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 10 Nov 2025 09:57:44 -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=1762797465; x=1763402265; 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=fhvmQM7vXkreuYab2XPQtp/CqpmJyhu/ldmR2mdqFqU=; b=MXLFR4btLLFu3eoUEDkI0PiW5UIs7cK7W/JKq6dj7FjrlWGWQRP7r3YD0J2cDScWCL 2inRPfLWM4ODD4kwBTCsyV2egRHPQlPw4dPlLViKF4l015jodPI/QUsJWTLxS3I6Svtf aVftzrKBhZGp4dUuq4tZOIuUXc+J/Uiu6GZS6NHoCeEV1ivu3VRELq918FOkjh1ElMpb IVuwVVgWfKxYi0UG6Z1XSwqL6XZP7mV5VNpN0FAaP7LW9ja5XoSGnfs4BENsILWUkiNK +3rxR1U3hwKrqZD4HY9+AscTsF2zLmwsIFIfdlw4htnAblqgmhrlEZrOwuXW/3G9/Syu oufg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1762797465; x=1763402265; 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=fhvmQM7vXkreuYab2XPQtp/CqpmJyhu/ldmR2mdqFqU=; b=XVToO4fDlf40GWRckgpfCnJd3hpUd5RgVxNUkTalA9ChzBIapLBNuZ36zdE43yskJQ /D7Q5goRgadrU//Fe2O6HNsQugQMcIL/NFTVyjToErW95KfIaGv9HYjLiKqnPC498BF4 qrWVRsioPFX0/TZCoNlU5jTPevvuj6NPuJhZZopRozuZMbGrlnYxoIhsILr6XfkAj+Aa Bs1BGxem7ZHeVn1H8G5W001sIfkpPCzq15hKLwIbEXXb9Eyh/GNxyy8OdWLikcICbAjB QhkvckmGGoFOo6YSsr//xnKY8aNI1gDHYpiMhlQhcXWotG1v98jQqwGxf7ceYAwt1gi9 5jVg== X-Gm-Message-State: AOJu0Ywwy2QbKrA4LFrlsGysG9OZl96HwdXOGXUinbNP+AN4P5V6+msN MT/rJRPJUjQS+iJ3lYflDTGhwnWI8+kTu4Gq/ClOs7OxiPd9Go9Y5wdv33IKv90CJ5OkzA== X-Gm-Gg: ASbGncsRp+sSDZVyc5BJdVFsSAas/J9psAaXUCEJWmbAB/DHpM4zWi9UUthGvR3GB5H kzKcOS3BK4KPZN9h7yx4hqWwtvhqqcWNQcfBDW0bMC5xnlW5f96thqLjrlbJinurT6kE4ipWC4D 226aep2JrPyO320OHR3EoBwvVlIsfMQzwIAeO9+AlTzmNyQdV3TWQJwQbYp8Mwrtk3pkcxI8rxQ sUbPQVn2HIEAay/Q+94hVoLgJ/LRrMh4ReRe24nAzWdSnB/bs6+S1JhjEVUgCk7KvUCGjqXgxGO K552VwQ4vMCexkP6RYOHtwg2S6j7vd+ARyQfVnGAb0T+4UFzjmLz9gSooU0M0A40If2GBXcsXVb 8yuTikeIodYPGmwKrlqdRbjcrU45Oab8osoEFiiBOlsq/LB7+s1PYja5m9HVQylIcu50wP4rlq3 eDiPiOhBErOdh1BSPvRimrewGu677BB01AhheBkofcpD3knL772+LoyM0+ X-Google-Smtp-Source: AGHT+IHT+PIj/I3Nwnl7icz24LWQ9urZsP2AITEkYhqCucV2rfUNysniaoegM3ab/avtkwVQVQ4gig== X-Received: by 2002:a17:907:80e:b0:b3c:3c8e:189d with SMTP id a640c23a62f3a-b72e05bd5acmr1160514666b.32.1762797465208; Mon, 10 Nov 2025 09:57:45 -0800 (PST) From: Roman Bogorodskiy To: devel@lists.libvirt.org Subject: [PATCH 3/4] bhyve: domain: refactor bhyveDomainDeviceDefValidate() Date: Mon, 10 Nov 2025 18:55:41 +0100 Message-ID: <20251110175542.36724-4-bogorodskiy@gmail.com> X-Mailer: git-send-email 2.51.0 In-Reply-To: <20251110175542.36724-1-bogorodskiy@gmail.com> References: <20251110175542.36724-1-bogorodskiy@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Message-ID-Hash: U4KI6LJ63G5IMWDJRS4AWOOS7MX4WDU5 X-Message-ID-Hash: U4KI6LJ63G5IMWDJRS4AWOOS7MX4WDU5 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: 1762797706520153000 Content-Type: text/plain; charset="utf-8" Refactor bhyveDomainDeviceDefValidate() to use switch/case instead of series of ifs which makes it easier to follow. Signed-off-by: Roman Bogorodskiy Reviewed-by: Michal Privoznik --- src/bhyve/bhyve_domain.c | 103 +++++++++++++++++++++++++++------------ 1 file changed, 71 insertions(+), 32 deletions(-) diff --git a/src/bhyve/bhyve_domain.c b/src/bhyve/bhyve_domain.c index 63d61b9f85..16ca4b1d0f 100644 --- a/src/bhyve/bhyve_domain.c +++ b/src/bhyve/bhyve_domain.c @@ -248,13 +248,15 @@ bhyveDomainDeviceDefValidate(const virDomainDeviceDef= *dev, void *opaque G_GNUC_UNUSED, void *parseOpaque G_GNUC_UNUSED) { - if (dev->type =3D=3D VIR_DOMAIN_DEVICE_CONTROLLER && - dev->data.controller->type =3D=3D VIR_DOMAIN_CONTROLLER_TYPE_ISA && - dev->data.controller->idx !=3D 0) { - return -1; - } + switch (dev->type) { + case VIR_DOMAIN_DEVICE_CONTROLLER: + if (dev->data.controller->type =3D=3D VIR_DOMAIN_CONTROLLER_TYPE_I= SA && + dev->data.controller->idx !=3D 0) { + return -1; + } + break; =20 - if (dev->type =3D=3D VIR_DOMAIN_DEVICE_RNG) { + case VIR_DOMAIN_DEVICE_RNG: if (dev->data.rng->model =3D=3D VIR_DOMAIN_RNG_MODEL_VIRTIO) { if (dev->data.rng->backend =3D=3D VIR_DOMAIN_RNG_BACKEND_RANDO= M) { if (STRNEQ(dev->data.rng->source.file, "/dev/random")) { @@ -272,39 +274,76 @@ bhyveDomainDeviceDefValidate(const virDomainDeviceDef= *dev, _("Only 'virio' RNG device model is supported")= ); return -1; } - } else if (dev->type =3D=3D VIR_DOMAIN_DEVICE_CHR && - dev->data.chr->deviceType =3D=3D VIR_DOMAIN_CHR_DEVICE_TYPE= _SERIAL) { - virDomainChrDef *chr =3D dev->data.chr; - if (chr->source->type !=3D VIR_DOMAIN_CHR_TYPE_NMDM && - chr->source->type !=3D VIR_DOMAIN_CHR_TYPE_TCP) { - virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", - _("Only 'nmdm' and 'tcp' console types are supp= orted")); - return -1; - } - if (chr->target.port > 3) { - virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", - _("Only four serial ports are supported")); - return -1; - } - if (chr->source->type =3D=3D VIR_DOMAIN_CHR_TYPE_TCP) { - if (chr->source->data.tcp.listen =3D=3D false) { + break; + + case VIR_DOMAIN_DEVICE_CHR: + if (dev->data.chr->deviceType =3D=3D VIR_DOMAIN_CHR_DEVICE_TYPE_SE= RIAL) { + virDomainChrDef *chr =3D dev->data.chr; + if (chr->source->type !=3D VIR_DOMAIN_CHR_TYPE_NMDM && + chr->source->type !=3D VIR_DOMAIN_CHR_TYPE_TCP) { virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", - _("Only listening TCP sockets are supported= ")); + _("Only 'nmdm' and 'tcp' console types are = supported")); return -1; } - - if (chr->source->data.tcp.protocol !=3D VIR_DOMAIN_CHR_TCP_PRO= TOCOL_RAW) { + if (chr->target.port > 3) { virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", - _("Only 'raw' protocol is supported for TCP= sockets")); + _("Only four serial ports are supported")); return -1; } + if (chr->source->type =3D=3D VIR_DOMAIN_CHR_TYPE_TCP) { + if (chr->source->data.tcp.listen =3D=3D false) { + virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", + _("Only listening TCP sockets are suppo= rted")); + return -1; + } + + if (chr->source->data.tcp.protocol !=3D VIR_DOMAIN_CHR_TCP= _PROTOCOL_RAW) { + virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", + _("Only 'raw' protocol is supported for= TCP sockets")); + return -1; + } + } } - } else if (dev->type =3D=3D VIR_DOMAIN_DEVICE_DISK && - dev->data.disk->rotation_rate && - dev->data.disk->bus !=3D VIR_DOMAIN_DISK_BUS_SATA) { - virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", - _("rotation rate is only valid for SATA bus")); - return -1; + break; + + case VIR_DOMAIN_DEVICE_DISK: { + virDomainDiskDef *disk =3D dev->data.disk; + + if (disk->rotation_rate && + disk->bus !=3D VIR_DOMAIN_DISK_BUS_SATA) { + virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", + _("rotation rate is only valid for SATA bus")); + return -1; + } + + break; + } + case VIR_DOMAIN_DEVICE_AUDIO: + case VIR_DOMAIN_DEVICE_CRYPTO: + case VIR_DOMAIN_DEVICE_FS: + case VIR_DOMAIN_DEVICE_GRAPHICS: + case VIR_DOMAIN_DEVICE_HOSTDEV: + case VIR_DOMAIN_DEVICE_HUB: + case VIR_DOMAIN_DEVICE_INPUT: + case VIR_DOMAIN_DEVICE_IOMMU: + case VIR_DOMAIN_DEVICE_LAST: + case VIR_DOMAIN_DEVICE_LEASE: + case VIR_DOMAIN_DEVICE_MEMBALLOON: + case VIR_DOMAIN_DEVICE_MEMORY: + case VIR_DOMAIN_DEVICE_NET: + case VIR_DOMAIN_DEVICE_NONE: + case VIR_DOMAIN_DEVICE_NVRAM: + case VIR_DOMAIN_DEVICE_PANIC: + case VIR_DOMAIN_DEVICE_PSTORE: + case VIR_DOMAIN_DEVICE_REDIRDEV: + case VIR_DOMAIN_DEVICE_SHMEM: + case VIR_DOMAIN_DEVICE_SMARTCARD: + case VIR_DOMAIN_DEVICE_SOUND: + case VIR_DOMAIN_DEVICE_TPM: + case VIR_DOMAIN_DEVICE_VIDEO: + case VIR_DOMAIN_DEVICE_VSOCK: + case VIR_DOMAIN_DEVICE_WATCHDOG: + break; } =20 return 0; --=20 2.51.0 From nobody Fri Nov 21 10:02:43 2025 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=1762797779; cv=none; d=zohomail.com; s=zohoarc; b=juwNuthbxRCBY/e7O8sW65rQCfeaF299i83J1Z6623vF7nraRXNc6CzfKzznGpJt7x0y443nXPtQ1EifSzBVZE6SJjIMXwvEjlvaTcQ7/VOv7ZScYh0SPy5Ki1ZNE6rgp62oCPyAGqMdVmLz1rm+zaujXwsZ8LuUvq84lcGfj7o= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1762797779; 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=vlhjjuVtxnGy9awFTU3LZ3864LgTxBxQtqBOrOQYQxw=; b=bwJJwRguEIjKaIT/OWEsNkaSEXixc89XZSc5u2GEnwfpe58PcZUWWgmDj4O0xSpdPfH6PoJKnXYMi/n7V2PNf+QYc+V7eC5sBIDf1cT3XcuThArpPpAnl3uWF/ZbrWb05HMlZOUqaGOs6p9Oy5T71o6C7Hcw+bkvMYP9Xx2Sqko= 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 1762797779259522.9719144630861; Mon, 10 Nov 2025 10:02:59 -0800 (PST) Received: by lists.libvirt.org (Postfix, from userid 993) id A5F1844204; Mon, 10 Nov 2025 13:02:58 -0500 (EST) Received: from [172.19.199.29] (lists.libvirt.org [8.43.85.245]) by lists.libvirt.org (Postfix) with ESMTP id 3C52044C41; Mon, 10 Nov 2025 12:58:14 -0500 (EST) Received: by lists.libvirt.org (Postfix, from userid 993) id 30E6F449ED; Mon, 10 Nov 2025 12:57:49 -0500 (EST) Received: from mail-ej1-f54.google.com (mail-ej1-f54.google.com [209.85.218.54]) (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 152DF441DE for ; Mon, 10 Nov 2025 12:57:48 -0500 (EST) Received: by mail-ej1-f54.google.com with SMTP id a640c23a62f3a-b728a43e410so713527266b.1 for ; Mon, 10 Nov 2025 09:57:48 -0800 (PST) Received: from tulp.my.domain (84-25-144-101.cable.dynamic.v4.ziggo.nl. [84.25.144.101]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-b72bf9bc214sm1182030966b.52.2025.11.10.09.57.45 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 10 Nov 2025 09:57:45 -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=1762797466; x=1763402266; 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=vlhjjuVtxnGy9awFTU3LZ3864LgTxBxQtqBOrOQYQxw=; b=MgNJ8uRlA2+iUmehRwfAng3DtX4GHJjHVZy6t53dU6ibdweWzMfSBHRBb9fcAuYQaz y0djZJnsxG6RRt1J2tFPhDPQdV0bFoZFPC50T5jgZ5SIUDCglJUvSfivmOHZkNEeIn/M cMqejOzeQNMnsKVzteAcp8lUYuHYZROh6PriBz6/NDmqC01XW+mac8hXnYRwN/oJXcgB xqMZU+oTcLtCp4cKGnwjylabeE2dp870ApB2ViE10NpMoV5pdG4lZNghvRj5BUGOgtyr j4QovU/tm3U1fBgHFgabd64AiSxx8K6of7IXyL6jvpAadpdWqQgwLIFfddZpDG98Jpkv hzmQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1762797466; x=1763402266; 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=vlhjjuVtxnGy9awFTU3LZ3864LgTxBxQtqBOrOQYQxw=; b=WwefpTB67wrN9UT/66NYXngK+M7vtzl3Q0mWZec3lEyx2t6GG2r4Eu9yY1cnYeLsrB hGpDaYuGpzL/4epDIKHPAZkXCk+b2KCZ8MGlrwWjy+Z48BlJfyQIu8JVewQWzd1yoew6 AUEBoKWsEXSDIskLxCmVwmlsiIcbORC/DImsnA/++cDGqdqxVs2Pjj5/bSYE2sV3wcP5 Q117DHTAwNroD+NvzLbSj3UXypwWEkmARzepooJSbkzfsA4t8BYgnB5bY1DWNVDi3rkY qsie57+wgtaDl11PR8MYnp4O5ORcxrGtdAfIEygZhAUIJ5oOtXoAPvldNDbPLhh91k6v 0bDg== X-Gm-Message-State: AOJu0YwRyu5gEM9FYPgEMaWGvkCd1bbMoVAKyh4x+zPBgeC7kulOOv6V p8zoPIjZ+BW+TEpJ6Q0sgNAntW8jIfUlfIvdF5LbRcw4W8JElXBsFn0LXUwunUgfMxyckg== X-Gm-Gg: ASbGncuCE+r6+jNob2J7OnIvPzRdVVBl6JwIz7K1AVPXJ3uXaexhODF33C6GBj1HewV heNw4yRfg0e7PvAmlba45J8ejqL0vh+/FAvsO5MBLVGOvevnuJlKTqTE86bAYK8w+ddulqvexaE M/r9P0aEtHoPo5Q18cNuRA1bUYYcGJhcYIfHTAVmR4Pk0YeDzjU77gfRwvtyvPfmZMm4z731wuL lvOX3EVqQmlz/DivrLy5qLXoGkX8nAaLvmXHnV8okhmqrvZ/pSzaxKhTZ9euRV4/jyMXjO2JzwM VfzGwHREXKiycSWvNpup5aN99NXxLxWmbm81V7yREP4W+JaenEXBq2228voXA2G8nj4+hicQHXO XWMr8xnC2lsPVXHYLwEVbY1sGteuej0ARtD+o3sz8lWi3JeikeRpyAF95CJGsurB2NDTcVtC/zd qYV65SMwLa0seAJtsmK3JstgXWDpuT3bBNUIOeaPjxqGfMEMZlUeyHP8Vis5PIykM2cnw= X-Google-Smtp-Source: AGHT+IHIEw/Q4ly4Y2B6z0OFNySUcpe7G/uD4YYLHjZwFcULZqMrAu4Oy9CcDXDz93d/GUB/kTjsfQ== X-Received: by 2002:a17:907:9706:b0:b40:5752:16b7 with SMTP id a640c23a62f3a-b72e05e83c3mr1033293166b.51.1762797466461; Mon, 10 Nov 2025 09:57:46 -0800 (PST) From: Roman Bogorodskiy To: devel@lists.libvirt.org Subject: [PATCH 4/4] bhyve: domain: improve disks validation Date: Mon, 10 Nov 2025 18:55:42 +0100 Message-ID: <20251110175542.36724-5-bogorodskiy@gmail.com> X-Mailer: git-send-email 2.51.0 In-Reply-To: <20251110175542.36724-1-bogorodskiy@gmail.com> References: <20251110175542.36724-1-bogorodskiy@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Message-ID-Hash: RPVKNO6IZYQ5GP36LF4WVMQ52DX4DAMD X-Message-ID-Hash: RPVKNO6IZYQ5GP36LF4WVMQ52DX4DAMD 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: 1762797780678153000 Content-Type: text/plain; charset="utf-8" Do not allow to configure queues and queue size for non-NVMe disks. Signed-off-by: Roman Bogorodskiy Reviewed-by: Michal Privoznik --- src/bhyve/bhyve_domain.c | 7 ++++++ .../bhyvexml2argv-disk-virtio-queue-opts.xml | 23 +++++++++++++++++++ tests/bhyvexml2argvtest.c | 1 + 3 files changed, 31 insertions(+) create mode 100644 tests/bhyvexml2argvdata/bhyvexml2argv-disk-virtio-queue= -opts.xml diff --git a/src/bhyve/bhyve_domain.c b/src/bhyve/bhyve_domain.c index 16ca4b1d0f..4c9ed29333 100644 --- a/src/bhyve/bhyve_domain.c +++ b/src/bhyve/bhyve_domain.c @@ -316,6 +316,13 @@ bhyveDomainDeviceDefValidate(const virDomainDeviceDef = *dev, return -1; } =20 + if ((disk->queues || disk->queue_size) && + disk->bus !=3D VIR_DOMAIN_DISK_BUS_NVME) { + virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", + _("queue configuration is only valid for NVMe b= us")); + return -1; + } + break; } case VIR_DOMAIN_DEVICE_AUDIO: diff --git a/tests/bhyvexml2argvdata/bhyvexml2argv-disk-virtio-queue-opts.x= ml b/tests/bhyvexml2argvdata/bhyvexml2argv-disk-virtio-queue-opts.xml new file mode 100644 index 0000000000..1119c37b2b --- /dev/null +++ b/tests/bhyvexml2argvdata/bhyvexml2argv-disk-virtio-queue-opts.xml @@ -0,0 +1,23 @@ + + bhyve + df3be7e7-a104-11e3-aeb0-50e5492bd3dc + 219136 + 1 + + hvm + + + + + + +
+ + + + + +
+ + + diff --git a/tests/bhyvexml2argvtest.c b/tests/bhyvexml2argvtest.c index f7411ee094..2a785ef8aa 100644 --- a/tests/bhyvexml2argvtest.c +++ b/tests/bhyvexml2argvtest.c @@ -267,6 +267,7 @@ mymain(void) DO_TEST_FAILURE("2-nvme-same-controller"); DO_TEST("sata-rotation-rate"); DO_TEST_FAILURE("disk-virtio-rotation-rate"); + DO_TEST_FAILURE("disk-virtio-queue-opts"); =20 /* Address allocation tests */ DO_TEST("addr-single-sata-disk"); --=20 2.51.0