From nobody Fri Dec 19 22:05:20 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=fail(p=none dis=none) header.from=smartx.com ARC-Seal: i=1; a=rsa-sha256; t=1745754619; cv=none; d=zohomail.com; s=zohoarc; b=UgiXei//3ZCwGB0MUigq4vzpXhcG7ioLHKHxgfmjy1eUrRfaeCrvFy5v1qbm0jyya+tYcwY4iEnGYwusEDF1W3Rcrf2cS/joZToV9Kh05hJQxAB4rusU6RGmcT1xsNVcSdblAgcNodgK+pDl0MFp4eN9E3J+vsyOMiam6KuIIMI= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1745754619; h=Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:Message-ID:References:Subject:Subject:To:To:Message-Id:Reply-To; bh=tyDtiVcYYY/DE0pB/zbZ16xt/YKrRNWF+UEi3r4s+Gs=; b=d/Ye3tiI6ny9k+OEwAbDIlAaUgNzPs2Ix7t3mkqQqPQs5MRUZmoCr7cj7gofeclMYuTSqeiNZjq7fjLB5tib/DQUumYh8JX2mdj7TUKYDPGJgXjfTuFO74SyVWaSkhctJAB51IjKuUYO4AZuFL+B5y14R8S86UL3mntdCr9Jq/k= 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=fail 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 174575461921877.49518424784071; Sun, 27 Apr 2025 04:50:19 -0700 (PDT) Received: by lists.libvirt.org (Postfix, from userid 996) id 2B757B3B; Sun, 27 Apr 2025 07:50:18 -0400 (EDT) Received: from lists.libvirt.org (localhost [IPv6:::1]) by lists.libvirt.org (Postfix) with ESMTP id ECB00B6B; Sun, 27 Apr 2025 07:48:43 -0400 (EDT) Received: by lists.libvirt.org (Postfix, from userid 996) id DB9F5989; Sun, 27 Apr 2025 07:48:39 -0400 (EDT) Received: from mail-pl1-f172.google.com (mail-pl1-f172.google.com [209.85.214.172]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by lists.libvirt.org (Postfix) with ESMTPS id 8231BA10 for ; Sun, 27 Apr 2025 07:48:38 -0400 (EDT) Received: by mail-pl1-f172.google.com with SMTP id d9443c01a7336-22da3b26532so34514245ad.0 for ; Sun, 27 Apr 2025 04:48:38 -0700 (PDT) Received: from honglei-dev.smartx.com ([45.8.186.102]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-22db4d77ab1sm62832315ad.23.2025.04.27.04.48.34 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Sun, 27 Apr 2025 04:48:35 -0700 (PDT) X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on lists.libvirt.org X-Spam-Level: X-Spam-Status: No, score=-1.0 required=5.0 tests=DKIM_SIGNED,DKIM_VALID, HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H2,RCVD_IN_VALIDITY_RPBL_BLOCKED, RCVD_IN_VALIDITY_SAFE_BLOCKED,SPF_HELO_NONE autolearn=unavailable autolearn_force=no version=3.4.4 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=smartx-com.20230601.gappssmtp.com; s=20230601; t=1745754516; x=1746359316; darn=lists.libvirt.org; h=references:in-reply-to:message-id:date:subject:cc:to:from:from:to :cc:subject:date:message-id:reply-to; bh=tyDtiVcYYY/DE0pB/zbZ16xt/YKrRNWF+UEi3r4s+Gs=; b=Q08VIvYf6wDc8cXRO6h6ha4Vv32seK334ysdJoB05Q2joanOYjoQYFRDEWEU+lpEfv 5tWGOFlbiDLH8L8avXQ8V2DC6lHMynSYUes3HjRSlIjTCZ4D55vrMEzkzIX8qbBeDzvj zzxxK8zCAeTVMbFT63JuJKvShj1ShQ9nnUFkw8F/DNlw0Wy/SmjOnjXLDsiuHKoSISQB WnkVYZS/u9B3PybU04zBv577SKGVyK30qfhYICliUAsiBq6WtUZCEb5jYt+dmfgrUoys tJk+8Ptpw4/VcU5vJyD2fWoWIqT5007iS0UCB9brdkAY9AOwJh3XViaft00ySIYCLcBC caYQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1745754516; x=1746359316; h=references:in-reply-to:message-id:date:subject:cc:to:from :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=tyDtiVcYYY/DE0pB/zbZ16xt/YKrRNWF+UEi3r4s+Gs=; b=R5obhuxQoPtpuSyxH439anx5DaNMH1OhRYCUVIy5gu1sKCpfNWPSaYE5vYM/gWmC74 SCJyc/XzHV+twNAhCp8WxcvmYPZFdEBo9SdrNury1S3b7xf0HFUsLoFqp5INaU0x0WYZ vYfNtkhtIIAqze9Fn9ZD368jAG50dIhoxXSmucEKz9R26JPa/ucwgIqZ7cep0TGfa63p rtSFZRAeMK8VwC7+V8G1qk9aJYniVGfqqVwMvp01HHHuC3chiK3nRza3ngKy1zHmId2H a9X85HiQWvaQXNK0Du6jkMhCTtlcQTJ150k5j9vRZNh01vlK3i01OV2V5xGHd7gDk8GB DoWw== X-Gm-Message-State: AOJu0Yxm12giu7at8I6QmUOMHeJGnL+w4/U8DpN6E3gl6fPQMSEeU/Gk qy7sOim1BalJKvMnmVpXIKeTjUJbNvswS1jXlCnU58TV5KC7/qyru+iB+opAmCiuhZor14JHlnU TSP2gMLWt X-Gm-Gg: ASbGncvR1ZS/kq3oBAYjXz9yNZPKzxIxyi77iZ2vzu4TfeiTbPRprNQOv6HFvmIl7Rs 40bN5a0tLsWn6S6tZAYPXcivjaNbgmmONpZHBMbygrEnjmz8sdCfkotRbn6gJo7aoLwHCjGxgd0 To3JGroEYVQuBrkAX/4h1Iq6yzgD4X2Tj+1IaSKdNTKcBZ3UICEvZHrfdTg8fsmlNBREpwUFmcl c3/ZPFYAU3gwPk/JwENWx++YWOKr1mbb9Qfgzas17DwwGOknqGc8T/0Px5qW1i3jyyJ1/T0sgFX xMVZoDsAbTeWYiK5VLaOAvPTp4853+9BzDJiW+tjkYauFaSoLNG2PqInnlQ= X-Google-Smtp-Source: AGHT+IF54cbU9S/fK1K90mlUBA2D0axe9CYzckBByiOBt3TzqtVPznYtulYiH+Q690RfA/QJW5acMg== X-Received: by 2002:a17:902:f605:b0:224:584:6f07 with SMTP id d9443c01a7336-22dbf62c3d3mr110675755ad.37.1745754515894; Sun, 27 Apr 2025 04:48:35 -0700 (PDT) From: honglei.wang@smartx.com To: devel@lists.libvirt.org Subject: [PATCHv2 1/5] qemu: Add support for NVMe namespace disk bus type Date: Sun, 27 Apr 2025 19:48:03 +0800 Message-Id: <20250427114807.4214-2-honglei.wang@smartx.com> X-Mailer: git-send-email 2.11.0 In-Reply-To: <20250427114807.4214-1-honglei.wang@smartx.com> References: <20250427114807.4214-1-honglei.wang@smartx.com> Message-ID-Hash: 7EEEMV7IFN7T4QXUOVFQMXU6EC7P5KJ5 X-Message-ID-Hash: 7EEEMV7IFN7T4QXUOVFQMXU6EC7P5KJ5 X-MailFrom: honglei.wang@smartx.com X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; emergency; loop; banned-address; member-moderation; header-match-config-1; header-match-config-2; header-match-config-3; header-match-devel.lists.libvirt.org-0; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; suspicious-header CC: ray X-Mailman-Version: 3.2.2 Precedence: list List-Id: Development discussions about the libvirt library & tools Archived-At: List-Archive: List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-ZohoMail-DKIM: pass (identity @smartx-com.20230601.gappssmtp.com) X-ZM-MESSAGEID: 1745754621400019100 Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" From: ray This patch extends the disk bus support by introducing a new nvme-ns bus ty= pe. The nvme-ns bus disk needs to be attached to nvme controller. A controller can contain multiple nvme-ns disk devices. Signed-off-by: ray --- src/conf/domain_conf.c | 39 +++++++++++++++++++++++++++++++++++++++ src/conf/domain_conf.h | 7 +++++++ src/conf/domain_postparse.c | 2 ++ src/conf/domain_validate.c | 4 +++- src/conf/virconftypes.h | 2 ++ src/hyperv/hyperv_driver.c | 2 ++ src/qemu/qemu_alias.c | 1 + src/qemu/qemu_command.c | 26 ++++++++++++++++++++++++++ src/qemu/qemu_domain_address.c | 5 +++++ src/qemu/qemu_hotplug.c | 14 ++++++++++++-- src/qemu/qemu_postparse.c | 1 + src/qemu/qemu_validate.c | 12 ++++++++++++ src/test/test_driver.c | 2 ++ src/util/virutil.c | 2 +- src/vbox/vbox_common.c | 2 ++ src/vmx/vmx.c | 1 + 16 files changed, 118 insertions(+), 4 deletions(-) diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c index 542d6ade91..e4b3bf8720 100644 --- a/src/conf/domain_conf.c +++ b/src/conf/domain_conf.c @@ -372,6 +372,7 @@ VIR_ENUM_IMPL(virDomainDiskBus, "uml", "sata", "sd", + "nvme-ns", ); =20 VIR_ENUM_IMPL(virDomainDiskCache, @@ -420,6 +421,7 @@ VIR_ENUM_IMPL(virDomainController, "pci", "xenbus", "isa", + "nvme", ); =20 VIR_ENUM_IMPL(virDomainControllerModelPCI, @@ -2563,6 +2565,7 @@ virDomainControllerDefNew(virDomainControllerType typ= e) case VIR_DOMAIN_CONTROLLER_TYPE_SATA: case VIR_DOMAIN_CONTROLLER_TYPE_CCID: case VIR_DOMAIN_CONTROLLER_TYPE_ISA: + case VIR_DOMAIN_CONTROLLER_TYPE_NVME: case VIR_DOMAIN_CONTROLLER_TYPE_LAST: break; } @@ -6869,6 +6872,14 @@ virDomainDiskDefAssignAddress(virDomainXMLOption *xm= lopt G_GNUC_UNUSED, def->info.addr.drive.unit =3D idx % 2; break; =20 + case VIR_DOMAIN_DISK_BUS_NVME_NS: + /* For NVME-NS, each nvme controller has a maximum of 256 nvme-ns = */ + def->info.type =3D VIR_DOMAIN_DEVICE_ADDRESS_TYPE_DRIVE; + def->info.addr.drive.controller =3D idx / 256; + def->info.addr.drive.bus =3D 0; + def->info.addr.drive.unit =3D idx % 256; + break; + case VIR_DOMAIN_DISK_BUS_NONE: case VIR_DOMAIN_DISK_BUS_VIRTIO: case VIR_DOMAIN_DISK_BUS_XEN: @@ -8784,6 +8795,7 @@ virDomainControllerModelTypeFromString(const virDomai= nControllerDef *def, case VIR_DOMAIN_CONTROLLER_TYPE_SATA: case VIR_DOMAIN_CONTROLLER_TYPE_CCID: case VIR_DOMAIN_CONTROLLER_TYPE_XENBUS: + case VIR_DOMAIN_CONTROLLER_TYPE_NVME: case VIR_DOMAIN_CONTROLLER_TYPE_LAST: return -1; } @@ -8812,6 +8824,7 @@ virDomainControllerModelTypeToString(virDomainControl= lerDef *def, case VIR_DOMAIN_CONTROLLER_TYPE_SATA: case VIR_DOMAIN_CONTROLLER_TYPE_CCID: case VIR_DOMAIN_CONTROLLER_TYPE_XENBUS: + case VIR_DOMAIN_CONTROLLER_TYPE_NVME: case VIR_DOMAIN_CONTROLLER_TYPE_LAST: return NULL; } @@ -8832,6 +8845,8 @@ virDomainControllerDefParseXML(virDomainXMLOption *xm= lopt, int ntargetNodes =3D 0; g_autofree xmlNodePtr *modelNodes =3D NULL; int nmodelNodes =3D 0; + g_autofree xmlNodePtr *serialNodes =3D NULL; + int nserialNodes =3D 0; int numaNode =3D -1; int ports; VIR_XPATH_NODE_AUTORESTORE(ctxt) @@ -8969,6 +8984,18 @@ virDomainControllerDefParseXML(virDomainXMLOption *x= mlopt, if (virXMLPropInt(node, "ports", 10, VIR_XML_PROP_NONNEGATIVE, &ports,= -1) < 0) return NULL; =20 + if ((nserialNodes =3D virXPathNodeSet("./serial", ctxt, &serialNodes))= > 1) { + virReportError(VIR_ERR_XML_ERROR, "%s", + _("Multiple elements in controller definit= ion not allowed")); + return NULL; + } + + if (nserialNodes =3D=3D 1) { + if (def->type =3D=3D VIR_DOMAIN_CONTROLLER_TYPE_NVME) { + def->opts.nvmeopts.serial =3D virXMLNodeContentString(serialNod= es[0]); + } + } + switch (def->type) { case VIR_DOMAIN_CONTROLLER_TYPE_VIRTIO_SERIAL: { if (virXMLPropInt(node, "vectors", 10, VIR_XML_PROP_NONNEGATIVE, @@ -9054,6 +9081,7 @@ virDomainControllerDefParseXML(virDomainXMLOption *xm= lopt, case VIR_DOMAIN_CONTROLLER_TYPE_SATA: case VIR_DOMAIN_CONTROLLER_TYPE_CCID: case VIR_DOMAIN_CONTROLLER_TYPE_ISA: + case VIR_DOMAIN_CONTROLLER_TYPE_NVME: case VIR_DOMAIN_CONTROLLER_TYPE_LAST: default: break; @@ -14998,6 +15026,10 @@ virDomainDiskControllerMatch(int controller_type, = int disk_bus) disk_bus =3D=3D VIR_DOMAIN_DISK_BUS_SATA) return true; =20 + if (controller_type =3D=3D VIR_DOMAIN_CONTROLLER_TYPE_NVME && + disk_bus =3D=3D VIR_DOMAIN_DISK_BUS_NVME_NS) + return true; + return false; } =20 @@ -24028,6 +24060,12 @@ virDomainControllerDefFormat(virBuffer *buf, } break; =20 + case VIR_DOMAIN_CONTROLLER_TYPE_NVME: + if (def->opts.nvmeopts.serial !=3D NULL) { + virBufferAsprintf(&childBuf, "%s\n", def->opt= s.nvmeopts.serial); + } + break; + case VIR_DOMAIN_CONTROLLER_TYPE_PCI: if (virDomainControllerDefFormatPCI(&childBuf, def, flags) < 0) return -1; @@ -29662,6 +29700,7 @@ virDiskNameToBusDeviceIndex(virDomainDiskDef *disk, case VIR_DOMAIN_DISK_BUS_NONE: case VIR_DOMAIN_DISK_BUS_SATA: case VIR_DOMAIN_DISK_BUS_UML: + case VIR_DOMAIN_DISK_BUS_NVME_NS: case VIR_DOMAIN_DISK_BUS_LAST: default: *busIdx =3D 0; diff --git a/src/conf/domain_conf.h b/src/conf/domain_conf.h index 58b97a2b54..e9db1ea896 100644 --- a/src/conf/domain_conf.h +++ b/src/conf/domain_conf.h @@ -401,6 +401,7 @@ typedef enum { VIR_DOMAIN_DISK_BUS_UML, VIR_DOMAIN_DISK_BUS_SATA, VIR_DOMAIN_DISK_BUS_SD, + VIR_DOMAIN_DISK_BUS_NVME_NS, =20 VIR_DOMAIN_DISK_BUS_LAST } virDomainDiskBus; @@ -611,6 +612,7 @@ typedef enum { VIR_DOMAIN_CONTROLLER_TYPE_PCI, VIR_DOMAIN_CONTROLLER_TYPE_XENBUS, VIR_DOMAIN_CONTROLLER_TYPE_ISA, + VIR_DOMAIN_CONTROLLER_TYPE_NVME, =20 VIR_DOMAIN_CONTROLLER_TYPE_LAST } virDomainControllerType; @@ -766,6 +768,10 @@ struct _virDomainXenbusControllerOpts { int maxEventChannels; /* -1 =3D=3D undef */ }; =20 +struct _virDomainNVMeControllerOpts { + char *serial; +}; + /* Stores the virtual disk controller configuration */ struct _virDomainControllerDef { virDomainControllerType type; @@ -782,6 +788,7 @@ struct _virDomainControllerDef { virDomainPCIControllerOpts pciopts; virDomainUSBControllerOpts usbopts; virDomainXenbusControllerOpts xenbusopts; + virDomainNVMeControllerOpts nvmeopts; } opts; virDomainDeviceInfo info; virDomainVirtioOptions *virtio; diff --git a/src/conf/domain_postparse.c b/src/conf/domain_postparse.c index bf33f29638..68d99f3c81 100644 --- a/src/conf/domain_postparse.c +++ b/src/conf/domain_postparse.c @@ -523,6 +523,8 @@ virDomainDiskDefPostParse(virDomainDiskDef *disk, disk->bus =3D VIR_DOMAIN_DISK_BUS_XEN; else if (STRPREFIX(disk->dst, "ubd")) disk->bus =3D VIR_DOMAIN_DISK_BUS_UML; + else if (STRPREFIX(disk->dst, "nvmens")) + disk->bus =3D VIR_DOMAIN_DISK_BUS_NVME_NS; } } =20 diff --git a/src/conf/domain_validate.c b/src/conf/domain_validate.c index d0d4bc0bf4..1ad8350117 100644 --- a/src/conf/domain_validate.c +++ b/src/conf/domain_validate.c @@ -267,6 +267,7 @@ virDomainDiskAddressDiskBusCompatibility(virDomainDiskB= us bus, case VIR_DOMAIN_DISK_BUS_UML: case VIR_DOMAIN_DISK_BUS_SD: case VIR_DOMAIN_DISK_BUS_NONE: + case VIR_DOMAIN_DISK_BUS_NVME_NS: case VIR_DOMAIN_DISK_BUS_LAST: return true; } @@ -948,7 +949,8 @@ virDomainDiskDefValidate(const virDomainDef *def, !STRPREFIX(disk->dst, "sd") && !STRPREFIX(disk->dst, "vd") && !STRPREFIX(disk->dst, "xvd") && - !STRPREFIX(disk->dst, "ubd")) { + !STRPREFIX(disk->dst, "ubd") && + !STRPREFIX(disk->dst, "nvmens")) { virReportError(VIR_ERR_INTERNAL_ERROR, _("Invalid harddisk device name: %1$s"), disk->dst); return -1; diff --git a/src/conf/virconftypes.h b/src/conf/virconftypes.h index c70437bc05..8c6fcdbeaa 100644 --- a/src/conf/virconftypes.h +++ b/src/conf/virconftypes.h @@ -276,6 +276,8 @@ typedef struct _virDomainXMLPrivateDataCallbacks virDom= ainXMLPrivateDataCallback =20 typedef struct _virDomainXenbusControllerOpts virDomainXenbusControllerOpt= s; =20 +typedef struct _virDomainNVMeControllerOpts virDomainNVMeControllerOpts; + typedef enum { VIR_DOMAIN_DISK_IO_DEFAULT =3D 0, VIR_DOMAIN_DISK_IO_NATIVE, diff --git a/src/hyperv/hyperv_driver.c b/src/hyperv/hyperv_driver.c index 0d1e388c08..aefb48923b 100644 --- a/src/hyperv/hyperv_driver.c +++ b/src/hyperv/hyperv_driver.c @@ -948,6 +948,7 @@ hypervDomainAttachStorage(virDomainPtr domain, virDomai= nDef *def, const char *ho case VIR_DOMAIN_DISK_BUS_UML: case VIR_DOMAIN_DISK_BUS_SATA: case VIR_DOMAIN_DISK_BUS_SD: + case VIR_DOMAIN_DISK_BUS_NVME_NS: case VIR_DOMAIN_DISK_BUS_LAST: default: virReportError(VIR_ERR_INTERNAL_ERROR, "%s", _("Unsupported co= ntroller type")); @@ -3078,6 +3079,7 @@ hypervDomainAttachDeviceFlags(virDomainPtr domain, co= nst char *xml, unsigned int case VIR_DOMAIN_DISK_BUS_UML: case VIR_DOMAIN_DISK_BUS_SATA: case VIR_DOMAIN_DISK_BUS_SD: + case VIR_DOMAIN_DISK_BUS_NVME_NS: case VIR_DOMAIN_DISK_BUS_LAST: default: virReportError(VIR_ERR_INTERNAL_ERROR, "%s", _("Invalid disk b= us in definition")); diff --git a/src/qemu/qemu_alias.c b/src/qemu/qemu_alias.c index 3e6bced4a8..5cffd9e5c8 100644 --- a/src/qemu/qemu_alias.c +++ b/src/qemu/qemu_alias.c @@ -258,6 +258,7 @@ qemuAssignDeviceDiskAlias(virDomainDef *def, case VIR_DOMAIN_DISK_BUS_IDE: case VIR_DOMAIN_DISK_BUS_SATA: case VIR_DOMAIN_DISK_BUS_SCSI: + case VIR_DOMAIN_DISK_BUS_NVME_NS: diskPriv->qomName =3D g_strdup(disk->info.alias); break; =20 diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c index e6d308534f..d5f75fb3f4 100644 --- a/src/qemu/qemu_command.c +++ b/src/qemu/qemu_command.c @@ -531,6 +531,17 @@ qemuBuildDeviceAddresDriveProps(virJSONValue *props, } =20 break; + case VIR_DOMAIN_DISK_BUS_NVME_NS: + if (!(controllerAlias =3D virDomainControllerAliasFind(domainDef, + VIR_DOMAIN= _CONTROLLER_TYPE_NVME, + info->addr= .drive.controller))) + return -1; + + if (virJSONValueObjectAdd(&props, + "s:bus", controllerAlias, + NULL) < 0) + return -1; + break; =20 case VIR_DOMAIN_DISK_BUS_VIRTIO: case VIR_DOMAIN_DISK_BUS_USB: @@ -1722,6 +1733,10 @@ qemuBuildDiskDeviceProps(const virDomainDef *def, driver =3D "floppy"; break; =20 + case VIR_DOMAIN_DISK_BUS_NVME_NS: + driver =3D "nvme-ns"; + break; + case VIR_DOMAIN_DISK_BUS_XEN: case VIR_DOMAIN_DISK_BUS_UML: case VIR_DOMAIN_DISK_BUS_SD: @@ -2851,6 +2866,16 @@ qemuBuildControllerDevProps(const virDomainDef *doma= inDef, =20 break; =20 + case VIR_DOMAIN_CONTROLLER_TYPE_NVME: + if (virJSONValueObjectAdd(&props, + "s:driver", "nvme", + "s:id", def->info.alias, + "s:serial", def->opts.nvmeopts.serial, + NULL) < 0) + return -1; + + break; + case VIR_DOMAIN_CONTROLLER_TYPE_IDE: case VIR_DOMAIN_CONTROLLER_TYPE_FDC: case VIR_DOMAIN_CONTROLLER_TYPE_XENBUS: @@ -3013,6 +3038,7 @@ qemuBuildControllersCommandLine(virCommand *cmd, VIR_DOMAIN_CONTROLLER_TYPE_IDE, VIR_DOMAIN_CONTROLLER_TYPE_SATA, VIR_DOMAIN_CONTROLLER_TYPE_VIRTIO_SERIAL, + VIR_DOMAIN_CONTROLLER_TYPE_NVME, }; =20 for (i =3D 0; i < G_N_ELEMENTS(contOrder); i++) { diff --git a/src/qemu/qemu_domain_address.c b/src/qemu/qemu_domain_address.c index e89cdee487..a4d0c0d0d5 100644 --- a/src/qemu/qemu_domain_address.c +++ b/src/qemu/qemu_domain_address.c @@ -616,6 +616,9 @@ qemuDomainDeviceCalculatePCIConnectFlags(virDomainDevic= eDef *dev, } break; =20 + case VIR_DOMAIN_CONTROLLER_TYPE_NVME: + return pciFlags; + case VIR_DOMAIN_CONTROLLER_TYPE_FDC: case VIR_DOMAIN_CONTROLLER_TYPE_CCID: case VIR_DOMAIN_CONTROLLER_TYPE_XENBUS: @@ -738,6 +741,7 @@ qemuDomainDeviceCalculatePCIConnectFlags(virDomainDevic= eDef *dev, case VIR_DOMAIN_DISK_BUS_UML: case VIR_DOMAIN_DISK_BUS_SATA: case VIR_DOMAIN_DISK_BUS_SD: + case VIR_DOMAIN_DISK_BUS_NVME_NS: case VIR_DOMAIN_DISK_BUS_NONE: case VIR_DOMAIN_DISK_BUS_LAST: return 0; @@ -1919,6 +1923,7 @@ qemuDomainValidateDevicePCISlotsQ35(virDomainDef *def, case VIR_DOMAIN_CONTROLLER_TYPE_CCID: case VIR_DOMAIN_CONTROLLER_TYPE_XENBUS: case VIR_DOMAIN_CONTROLLER_TYPE_ISA: + case VIR_DOMAIN_CONTROLLER_TYPE_NVME: case VIR_DOMAIN_CONTROLLER_TYPE_LAST: break; } diff --git a/src/qemu/qemu_hotplug.c b/src/qemu/qemu_hotplug.c index 5326aba281..844cfc2e02 100644 --- a/src/qemu/qemu_hotplug.c +++ b/src/qemu/qemu_hotplug.c @@ -848,7 +848,8 @@ qemuDomainAttachControllerDevice(virDomainObj *vm, bool releaseaddr =3D false; =20 if (controller->type !=3D VIR_DOMAIN_CONTROLLER_TYPE_SCSI && \ - controller->type !=3D VIR_DOMAIN_CONTROLLER_TYPE_VIRTIO_SERIAL) { + controller->type !=3D VIR_DOMAIN_CONTROLLER_TYPE_VIRTIO_SERIAL && \ + controller->type !=3D VIR_DOMAIN_CONTROLLER_TYPE_NVME) { virReportError(VIR_ERR_OPERATION_UNSUPPORTED, _("'%1$s' controller cannot be hot plugged."), virDomainControllerTypeToString(controller->type)); @@ -1058,6 +1059,7 @@ qemuDomainAttachDeviceDiskLiveInternal(virQEMUDriver = *driver, /* Note that SD card hotplug support should be added only once * they support '-device' (don't require -drive only). * See also: qemuDiskBusIsSD */ + case VIR_DOMAIN_DISK_BUS_NVME_NS: case VIR_DOMAIN_DISK_BUS_NONE: case VIR_DOMAIN_DISK_BUS_LAST: virReportError(VIR_ERR_OPERATION_UNSUPPORTED, @@ -5782,6 +5784,7 @@ qemuDomainDetachPrepDisk(virDomainObj *vm, case VIR_DOMAIN_DISK_BUS_UML: case VIR_DOMAIN_DISK_BUS_SATA: case VIR_DOMAIN_DISK_BUS_SD: + case VIR_DOMAIN_DISK_BUS_NVME_NS: virReportError(VIR_ERR_OPERATION_UNSUPPORTED, "%s", _("This type of disk cannot be hot unplugged")); return -1; @@ -5856,6 +5859,11 @@ qemuDomainDiskControllerIsBusy(virDomainObj *vm, continue; break; =20 + case VIR_DOMAIN_CONTROLLER_TYPE_NVME: + if (disk->bus !=3D VIR_DOMAIN_DISK_BUS_NVME_NS) + continue; + break; + case VIR_DOMAIN_CONTROLLER_TYPE_XENBUS: /* xenbus is not supported by the qemu driver */ continue; @@ -5905,6 +5913,7 @@ qemuDomainControllerIsBusy(virDomainObj *vm, case VIR_DOMAIN_CONTROLLER_TYPE_FDC: case VIR_DOMAIN_CONTROLLER_TYPE_SCSI: case VIR_DOMAIN_CONTROLLER_TYPE_SATA: + case VIR_DOMAIN_CONTROLLER_TYPE_NVME: return qemuDomainDiskControllerIsBusy(vm, detach); =20 case VIR_DOMAIN_CONTROLLER_TYPE_VIRTIO_SERIAL: @@ -5934,7 +5943,8 @@ qemuDomainDetachPrepController(virDomainObj *vm, int idx; virDomainControllerDef *controller =3D NULL; =20 - if (match->type !=3D VIR_DOMAIN_CONTROLLER_TYPE_SCSI) { + if (match->type !=3D VIR_DOMAIN_CONTROLLER_TYPE_SCSI && + match->type !=3D VIR_DOMAIN_CONTROLLER_TYPE_NVME) { virReportError(VIR_ERR_OPERATION_UNSUPPORTED, _("'%1$s' controller cannot be hot unplugged."), virDomainControllerTypeToString(match->type)); diff --git a/src/qemu/qemu_postparse.c b/src/qemu/qemu_postparse.c index ed4af9ca8e..8150dffac6 100644 --- a/src/qemu/qemu_postparse.c +++ b/src/qemu/qemu_postparse.c @@ -429,6 +429,7 @@ qemuDomainControllerDefPostParse(virDomainControllerDef= *cont, case VIR_DOMAIN_CONTROLLER_TYPE_FDC: case VIR_DOMAIN_CONTROLLER_TYPE_XENBUS: case VIR_DOMAIN_CONTROLLER_TYPE_ISA: + case VIR_DOMAIN_CONTROLLER_TYPE_NVME: case VIR_DOMAIN_CONTROLLER_TYPE_LAST: break; } diff --git a/src/qemu/qemu_validate.c b/src/qemu/qemu_validate.c index b2c3c9e2f6..9985b2e2c1 100644 --- a/src/qemu/qemu_validate.c +++ b/src/qemu/qemu_validate.c @@ -2945,6 +2945,7 @@ qemuValidateDomainDeviceDefDiskIOThreads(const virDom= ainDef *def, case VIR_DOMAIN_DISK_BUS_SATA: case VIR_DOMAIN_DISK_BUS_SD: case VIR_DOMAIN_DISK_BUS_NONE: + case VIR_DOMAIN_DISK_BUS_NVME_NS: case VIR_DOMAIN_DISK_BUS_LAST: virReportError(VIR_ERR_CONFIG_UNSUPPORTED, _("IOThreads not available for bus %1$s target %2$s= "), @@ -3079,6 +3080,7 @@ qemuValidateDomainDeviceDefDiskFrontend(const virDoma= inDiskDef *disk, case VIR_DOMAIN_DISK_BUS_UML: case VIR_DOMAIN_DISK_BUS_SATA: case VIR_DOMAIN_DISK_BUS_SD: + case VIR_DOMAIN_DISK_BUS_NVME_NS: virReportError(VIR_ERR_CONFIG_UNSUPPORTED, _("disk device=3D'lun' is not supported for bus= =3D'%1$s'"), virDomainDiskBusTypeToString(disk->bus)); @@ -3194,6 +3196,14 @@ qemuValidateDomainDeviceDefDiskFrontend(const virDom= ainDiskDef *disk, =20 break; =20 + case VIR_DOMAIN_DISK_BUS_NVME_NS: + if (disk->info.type !=3D VIR_DOMAIN_DEVICE_ADDRESS_TYPE_DRIVE) { + virReportError(VIR_ERR_INTERNAL_ERROR, "%s", + _("unexpected address type for nvme-ns disk")); + return -1; + } + break; + case VIR_DOMAIN_DISK_BUS_XEN: case VIR_DOMAIN_DISK_BUS_SD: case VIR_DOMAIN_DISK_BUS_NONE: @@ -3382,6 +3392,7 @@ qemuValidateDomainDeviceDefDiskTransient(const virDom= ainDiskDef *disk, case VIR_DOMAIN_DISK_BUS_USB: case VIR_DOMAIN_DISK_BUS_VIRTIO: case VIR_DOMAIN_DISK_BUS_SCSI: + case VIR_DOMAIN_DISK_BUS_NVME_NS: break; =20 case VIR_DOMAIN_DISK_BUS_IDE: @@ -4399,6 +4410,7 @@ qemuValidateDomainDeviceDefController(const virDomain= ControllerDef *controller, case VIR_DOMAIN_CONTROLLER_TYPE_USB: case VIR_DOMAIN_CONTROLLER_TYPE_XENBUS: case VIR_DOMAIN_CONTROLLER_TYPE_ISA: + case VIR_DOMAIN_CONTROLLER_TYPE_NVME: case VIR_DOMAIN_CONTROLLER_TYPE_LAST: break; } diff --git a/src/test/test_driver.c b/src/test/test_driver.c index 6f18b2b2c8..95ab1cac8f 100644 --- a/src/test/test_driver.c +++ b/src/test/test_driver.c @@ -10344,6 +10344,7 @@ testDomainAttachDeviceDiskLiveInternal(testDriver *= driver G_GNUC_UNUSED, case VIR_DOMAIN_DISK_BUS_UML: case VIR_DOMAIN_DISK_BUS_SATA: case VIR_DOMAIN_DISK_BUS_SD: + case VIR_DOMAIN_DISK_BUS_NVME_NS: case VIR_DOMAIN_DISK_BUS_NONE: case VIR_DOMAIN_DISK_BUS_LAST: virReportError(VIR_ERR_OPERATION_UNSUPPORTED, @@ -10792,6 +10793,7 @@ testDomainDetachPrepDisk(virDomainObj *vm, case VIR_DOMAIN_DISK_BUS_UML: case VIR_DOMAIN_DISK_BUS_SATA: case VIR_DOMAIN_DISK_BUS_SD: + case VIR_DOMAIN_DISK_BUS_NVME_NS: virReportError(VIR_ERR_OPERATION_UNSUPPORTED, "%s", _("This type of disk cannot be hot unplugged")); return -1; diff --git a/src/util/virutil.c b/src/util/virutil.c index 2abcb282fe..02494f1061 100644 --- a/src/util/virutil.c +++ b/src/util/virutil.c @@ -327,7 +327,7 @@ int virDiskNameParse(const char *name, int *disk, int *= partition) const char *ptr =3D NULL; char *rem; int idx =3D 0; - static char const* const drive_prefix[] =3D {"fd", "hd", "vd", "sd", "= xvd", "ubd"}; + static char const* const drive_prefix[] =3D {"fd", "hd", "vd", "sd", "= xvd", "ubd", "nvmens"}; size_t i; size_t n_digits; =20 diff --git a/src/vbox/vbox_common.c b/src/vbox/vbox_common.c index 349ac832dc..703150d3c6 100644 --- a/src/vbox/vbox_common.c +++ b/src/vbox/vbox_common.c @@ -494,6 +494,7 @@ vboxSetStorageController(virDomainControllerDef *contro= ller, case VIR_DOMAIN_CONTROLLER_TYPE_PCI: case VIR_DOMAIN_CONTROLLER_TYPE_XENBUS: case VIR_DOMAIN_CONTROLLER_TYPE_ISA: + case VIR_DOMAIN_CONTROLLER_TYPE_NVME: case VIR_DOMAIN_CONTROLLER_TYPE_LAST: vboxReportError(VIR_ERR_CONFIG_UNSUPPORTED, _("The vbox driver does not support %1$s controlle= r type"), @@ -1238,6 +1239,7 @@ vboxAttachDrives(virDomainDef *def, struct _vboxDrive= r *data, IMachine *machine) case VIR_DOMAIN_DISK_BUS_USB: case VIR_DOMAIN_DISK_BUS_UML: case VIR_DOMAIN_DISK_BUS_SD: + case VIR_DOMAIN_DISK_BUS_NVME_NS: case VIR_DOMAIN_DISK_BUS_NONE: case VIR_DOMAIN_DISK_BUS_LAST: vboxReportError(VIR_ERR_CONFIG_UNSUPPORTED, diff --git a/src/vmx/vmx.c b/src/vmx/vmx.c index 0dd03c1a88..31878c7399 100644 --- a/src/vmx/vmx.c +++ b/src/vmx/vmx.c @@ -2245,6 +2245,7 @@ virVMXGenerateDiskTarget(virDomainDiskDef *def, case VIR_DOMAIN_DISK_BUS_USB: case VIR_DOMAIN_DISK_BUS_UML: case VIR_DOMAIN_DISK_BUS_SD: + case VIR_DOMAIN_DISK_BUS_NVME_NS: virReportError(VIR_ERR_CONFIG_UNSUPPORTED, _("Unsupported bus type '%1$s' for device type '%2$= s'"), virDomainDiskBusTypeToString(def->bus), --=20 2.11.0 From nobody Fri Dec 19 22:05:20 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=fail(p=none dis=none) header.from=smartx.com ARC-Seal: i=1; a=rsa-sha256; t=1745754740; cv=none; d=zohomail.com; s=zohoarc; b=CckSAn3856sik4LOS2YtVbBaLXJgWOjgWP3DtbUR1X28v9X28LAhVRV9rT86SC6kM8vH6eZLMZEbe4FwH4t2YEz+b4CptMwcsP7l0rGJJCUyH1ZEL28mSK/WBVVCTeI6Z41UhVKOSrwmx3Vb7uvXlymm7wU5/1vUVMTaVSEkDGU= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1745754740; h=Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:Message-ID:References:Subject:Subject:To:To:Message-Id:Reply-To; bh=hR6N5w6K2yFlFWxncIqa9FFbw+6nfxfDSBK7OAWHw9M=; b=SCq5Y87aMs9uFNcV8SVsCPjcEj5KKkqjfJrXo/inKH7DnOZAggHh+xHuRu0UXVAmF3lYVjUexsfvpP4VtwktdE3u6bYZYh+sjMedNa1A4u2S/2IC4MtvRNZEP3onBoRn4+Vzif1hofLmFr1y9UNJxI4/BV/TWqoxCqS2WF7gHQ0= 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=fail 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 1745754739837455.3948379726461; Sun, 27 Apr 2025 04:52:19 -0700 (PDT) Received: by lists.libvirt.org (Postfix, from userid 996) id A5DCBA77; Sun, 27 Apr 2025 07:52:18 -0400 (EDT) Received: from lists.libvirt.org (localhost [IPv6:::1]) by lists.libvirt.org (Postfix) with ESMTP id EE5B7C19; Sun, 27 Apr 2025 07:48:50 -0400 (EDT) Received: by lists.libvirt.org (Postfix, from userid 996) id AD0E1BDC; Sun, 27 Apr 2025 07:48:44 -0400 (EDT) Received: from mail-pj1-f46.google.com (mail-pj1-f46.google.com [209.85.216.46]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by lists.libvirt.org (Postfix) with ESMTPS id E9349A10 for ; Sun, 27 Apr 2025 07:48:40 -0400 (EDT) Received: by mail-pj1-f46.google.com with SMTP id 98e67ed59e1d1-3035858c687so3166586a91.2 for ; Sun, 27 Apr 2025 04:48:40 -0700 (PDT) Received: from honglei-dev.smartx.com ([45.8.186.102]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-22db4d77ab1sm62832315ad.23.2025.04.27.04.48.36 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Sun, 27 Apr 2025 04:48:37 -0700 (PDT) X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on lists.libvirt.org X-Spam-Level: X-Spam-Status: No, score=-1.0 required=5.0 tests=DKIM_SIGNED,DKIM_VALID, HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H3,RCVD_IN_MSPIKE_WL,RCVD_IN_VALIDITY_RPBL_BLOCKED, RCVD_IN_VALIDITY_SAFE_BLOCKED,SPF_HELO_NONE autolearn=unavailable autolearn_force=no version=3.4.4 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=smartx-com.20230601.gappssmtp.com; s=20230601; t=1745754519; x=1746359319; darn=lists.libvirt.org; h=references:in-reply-to:message-id:date:subject:cc:to:from:from:to :cc:subject:date:message-id:reply-to; bh=hR6N5w6K2yFlFWxncIqa9FFbw+6nfxfDSBK7OAWHw9M=; b=VQAH99LmrJWIKM9jM6ntDYdSbI88p6y0bXkA42mVXibcRsl9J8AMXX0C9n7vBKmCbZ gDQZe+mUpsKlSHAOydd88wgMJNV1TFbLfixJQzVMnYU9ec3B5qW7vjRXjWcI5iNs2Ds1 l4XHIPWaeilxmFeFI3lKsb0Ec6w5fmJa6Aegfhl+6i28SvCSdoaMJXdwFdylM2lw3hFd f4l2ZOm4fzSxGyj6jZVORR/GpEA+7jBu5SEtb28WWiqFSRvKKNhLmb222MZDayqoTad6 DChn9vTgtWlPLYFew/L+Fki9KxKAov1m6GQRP9KD4bswzI6TI2NV/ZTQESOmtCP+mP6O sciA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1745754519; x=1746359319; h=references:in-reply-to:message-id:date:subject:cc:to:from :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=hR6N5w6K2yFlFWxncIqa9FFbw+6nfxfDSBK7OAWHw9M=; b=J+TfsRdFg9TQkVWvxJaPTRgh9mB+FYup9SxuXFywB75NPJOGn9qhpKfZrCqWGV6Pbt 8n5JFwvXos3x5oLskpV1p/i7ExWluxrwUKHtohy2uUkY3+f1D7XlBg0553e7KxOtfB6B myxdCg4cPEpJdbjic5w/5kEIRwKgwwnLkUwdUvtjVCHqj92xXv/l/vRQm8aLlR8iioQX J5oFNJ0c4iyamjgL3pb7f9Xx6/yt1oUw5/3iCy5wkh42/yokPxDqE1UZ+OiBro2Km0Wi u02JxdmdtEBV4D29ff/MEDWEn7JtlfwELqsfKyWpNQV7Y6DsepFA3h5D6B7bV2TP8RKP MY3g== X-Gm-Message-State: AOJu0YybEb2vCHlVieuamLt+komAvZTgJUpTZCc1kxMxNwv4RS2b7de/ sbEAWV1P4tbzTUW4B2bZ7cPz//BTqMTht7S9Ex4h/fVtpfTyHQp41Dr4X3MlKjZJKP66V5IWwxS 3mh6bvgcH X-Gm-Gg: ASbGnctl0IrWoACA6eIQfdyF+kwFYKaHYlCeenX6J9XszBdtRiCShFv12ONcmUxzrg+ Ub0h519UmqKjF4fBXInAuiUfJxX5ulTm8O94V4zO/vFApP4f8c1y21/3RUgzx0sZ3LY73WmHRrB 3/vS10Ju2uw9BX/283j8RP232zJgYhb/1T0YsihbYOjTo/EOe+YefGPIIbKSKGP6KCqxZv6cVtT uapc1jARXFDTOuDui6ipRAsumMC1cSOz3v4iG2+BRrJ5qZeeukHoQorz9LLRj5QC98G69JMRTrZ FBkp2IonhX2/oHWnWykeycuFXxxJYFcVkOk+pPyEOFAwRd70S1FvDLnJCyU= X-Google-Smtp-Source: AGHT+IG38KmneJ8bMhliNjJSM4UKD1SKrmgSLzxpysedmDDSx7ZOHVW+qMXN7mGkEky54Ek4qy7mdw== X-Received: by 2002:a17:90b:1d4d:b0:2ee:f076:20f1 with SMTP id 98e67ed59e1d1-309f7c62025mr15107006a91.0.1745754518220; Sun, 27 Apr 2025 04:48:38 -0700 (PDT) From: honglei.wang@smartx.com To: devel@lists.libvirt.org Subject: [PATCHv2 2/5] qemu_capabilities: Add support for nvme-ns bus capabilities Date: Sun, 27 Apr 2025 19:48:04 +0800 Message-Id: <20250427114807.4214-3-honglei.wang@smartx.com> X-Mailer: git-send-email 2.11.0 In-Reply-To: <20250427114807.4214-1-honglei.wang@smartx.com> References: <20250427114807.4214-1-honglei.wang@smartx.com> Message-ID-Hash: PIUWFP6HXOIBYGEDLHDW3HPWLRBC7GXS X-Message-ID-Hash: PIUWFP6HXOIBYGEDLHDW3HPWLRBC7GXS X-MailFrom: honglei.wang@smartx.com X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; emergency; loop; banned-address; member-moderation; header-match-config-1; header-match-config-2; header-match-config-3; header-match-devel.lists.libvirt.org-0; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; suspicious-header CC: ray X-Mailman-Version: 3.2.2 Precedence: list List-Id: Development discussions about the libvirt library & tools Archived-At: List-Archive: List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-ZohoMail-DKIM: pass (identity @smartx-com.20230601.gappssmtp.com) X-ZM-MESSAGEID: 1745754741531019100 Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" From: ray Signed-off-by: ray --- src/qemu/qemu_capabilities.c | 5 +++++ src/qemu/qemu_capabilities.h | 1 + src/qemu/qemu_validate.c | 6 ++++++ tests/domaincapsdata/qemu_10.0.0-q35.x86_64+amdsev.xml | 1 + tests/domaincapsdata/qemu_10.0.0-q35.x86_64.xml | 1 + tests/domaincapsdata/qemu_10.0.0-tcg.x86_64+amdsev.xml | 1 + tests/domaincapsdata/qemu_10.0.0-tcg.x86_64.xml | 1 + tests/domaincapsdata/qemu_10.0.0.s390x.xml | 1 + tests/domaincapsdata/qemu_10.0.0.x86_64+amdsev.xml | 1 + tests/domaincapsdata/qemu_10.0.0.x86_64.xml | 1 + tests/domaincapsdata/qemu_4.2.0-virt.aarch64.xml | 1 + tests/domaincapsdata/qemu_4.2.0.aarch64.xml | 1 + tests/domaincapsdata/qemu_4.2.0.ppc64.xml | 1 + tests/domaincapsdata/qemu_5.0.0-tcg-virt.riscv64.xml | 1 + tests/domaincapsdata/qemu_5.0.0-virt.aarch64.xml | 1 + tests/domaincapsdata/qemu_5.0.0-virt.riscv64.xml | 1 + tests/domaincapsdata/qemu_5.0.0.aarch64.xml | 1 + tests/domaincapsdata/qemu_5.0.0.ppc64.xml | 1 + tests/domaincapsdata/qemu_5.1.0.sparc.xml | 1 + tests/domaincapsdata/qemu_6.2.0-q35.x86_64.xml | 1 + tests/domaincapsdata/qemu_6.2.0-tcg.x86_64.xml | 1 + tests/domaincapsdata/qemu_6.2.0.ppc64.xml | 1 + tests/domaincapsdata/qemu_6.2.0.x86_64.xml | 1 + tests/domaincapsdata/qemu_7.0.0-q35.x86_64.xml | 1 + tests/domaincapsdata/qemu_7.0.0-tcg.x86_64.xml | 1 + tests/domaincapsdata/qemu_7.0.0.ppc64.xml | 1 + tests/domaincapsdata/qemu_7.0.0.x86_64.xml | 1 + tests/domaincapsdata/qemu_7.1.0-q35.x86_64.xml | 1 + tests/domaincapsdata/qemu_7.1.0-tcg.x86_64.xml | 1 + tests/domaincapsdata/qemu_7.1.0.ppc64.xml | 1 + tests/domaincapsdata/qemu_7.1.0.x86_64.xml | 1 + tests/domaincapsdata/qemu_7.2.0-hvf.x86_64+hvf.xml | 1 + tests/domaincapsdata/qemu_7.2.0-q35.x86_64.xml | 1 + tests/domaincapsdata/qemu_7.2.0-tcg.x86_64+hvf.xml | 1 + tests/domaincapsdata/qemu_7.2.0-tcg.x86_64.xml | 1 + tests/domaincapsdata/qemu_7.2.0.ppc.xml | 1 + tests/domaincapsdata/qemu_7.2.0.x86_64.xml | 1 + tests/domaincapsdata/qemu_8.0.0-q35.x86_64.xml | 1 + tests/domaincapsdata/qemu_8.0.0-tcg.x86_64.xml | 1 + tests/domaincapsdata/qemu_8.0.0.x86_64.xml | 1 + tests/domaincapsdata/qemu_8.1.0-q35.x86_64.xml | 1 + tests/domaincapsdata/qemu_8.1.0-tcg.x86_64.xml | 1 + tests/domaincapsdata/qemu_8.1.0.x86_64.xml | 1 + tests/domaincapsdata/qemu_8.2.0-q35.x86_64.xml | 1 + tests/domaincapsdata/qemu_8.2.0-tcg-virt.loongarch64.xml | 1 + tests/domaincapsdata/qemu_8.2.0-tcg.x86_64.xml | 1 + tests/domaincapsdata/qemu_8.2.0-virt.aarch64.xml | 1 + tests/domaincapsdata/qemu_8.2.0-virt.loongarch64.xml | 1 + tests/domaincapsdata/qemu_8.2.0.aarch64.xml | 1 + tests/domaincapsdata/qemu_8.2.0.armv7l.xml | 1 + tests/domaincapsdata/qemu_8.2.0.s390x.xml | 1 + tests/domaincapsdata/qemu_8.2.0.x86_64.xml | 1 + tests/domaincapsdata/qemu_9.0.0-q35.x86_64.xml | 1 + tests/domaincapsdata/qemu_9.0.0-tcg.x86_64.xml | 1 + tests/domaincapsdata/qemu_9.0.0.x86_64.xml | 1 + tests/domaincapsdata/qemu_9.1.0-q35.x86_64.xml | 1 + tests/domaincapsdata/qemu_9.1.0-tcg-virt.riscv64.xml | 1 + tests/domaincapsdata/qemu_9.1.0-tcg.x86_64.xml | 1 + tests/domaincapsdata/qemu_9.1.0-virt.riscv64.xml | 1 + tests/domaincapsdata/qemu_9.1.0.s390x.xml | 1 + tests/domaincapsdata/qemu_9.1.0.x86_64.xml | 1 + tests/domaincapsdata/qemu_9.2.0-hvf.aarch64+hvf.xml | 1 + tests/domaincapsdata/qemu_9.2.0-q35.x86_64+amdsev.xml | 1 + tests/domaincapsdata/qemu_9.2.0-q35.x86_64.xml | 1 + tests/domaincapsdata/qemu_9.2.0-tcg.x86_64+amdsev.xml | 1 + tests/domaincapsdata/qemu_9.2.0-tcg.x86_64.xml | 1 + tests/domaincapsdata/qemu_9.2.0.s390x.xml | 1 + tests/domaincapsdata/qemu_9.2.0.x86_64+amdsev.xml | 1 + tests/domaincapsdata/qemu_9.2.0.x86_64.xml | 1 + tests/qemucapabilitiesdata/caps_10.0.0_s390x.xml | 1 + tests/qemucapabilitiesdata/caps_10.0.0_x86_64+amdsev.xml | 1 + tests/qemucapabilitiesdata/caps_10.0.0_x86_64.xml | 1 + tests/qemucapabilitiesdata/caps_6.2.0_ppc64.xml | 1 + tests/qemucapabilitiesdata/caps_6.2.0_x86_64.xml | 1 + tests/qemucapabilitiesdata/caps_7.0.0_ppc64.xml | 1 + tests/qemucapabilitiesdata/caps_7.0.0_x86_64.xml | 1 + tests/qemucapabilitiesdata/caps_7.1.0_ppc64.xml | 1 + tests/qemucapabilitiesdata/caps_7.1.0_x86_64.xml | 1 + tests/qemucapabilitiesdata/caps_7.2.0_ppc.xml | 1 + tests/qemucapabilitiesdata/caps_7.2.0_x86_64+hvf.xml | 1 + tests/qemucapabilitiesdata/caps_7.2.0_x86_64.xml | 1 + tests/qemucapabilitiesdata/caps_8.0.0_x86_64.xml | 1 + tests/qemucapabilitiesdata/caps_8.1.0_x86_64.xml | 1 + tests/qemucapabilitiesdata/caps_8.2.0_aarch64.xml | 1 + tests/qemucapabilitiesdata/caps_8.2.0_armv7l.xml | 1 + tests/qemucapabilitiesdata/caps_8.2.0_loongarch64.xml | 1 + tests/qemucapabilitiesdata/caps_8.2.0_s390x.xml | 1 + tests/qemucapabilitiesdata/caps_8.2.0_x86_64.xml | 1 + tests/qemucapabilitiesdata/caps_9.0.0_x86_64.xml | 1 + tests/qemucapabilitiesdata/caps_9.1.0_riscv64.xml | 1 + tests/qemucapabilitiesdata/caps_9.1.0_s390x.xml | 1 + tests/qemucapabilitiesdata/caps_9.1.0_x86_64.xml | 1 + tests/qemucapabilitiesdata/caps_9.2.0_aarch64+hvf.xml | 1 + tests/qemucapabilitiesdata/caps_9.2.0_s390x.xml | 1 + tests/qemucapabilitiesdata/caps_9.2.0_x86_64+amdsev.xml | 1 + tests/qemucapabilitiesdata/caps_9.2.0_x86_64.xml | 1 + 96 files changed, 105 insertions(+) diff --git a/src/qemu/qemu_capabilities.c b/src/qemu/qemu_capabilities.c index a804335c85..42e211ce2e 100644 --- a/src/qemu/qemu_capabilities.c +++ b/src/qemu/qemu_capabilities.c @@ -732,6 +732,7 @@ VIR_ENUM_IMPL(virQEMUCaps, =20 /* 475 */ "virtio-scsi.iothread-mapping", /* QEMU_CAPS_VIRTIO_SCSI_IOT= HREAD_MAPPING */ + "nvme-ns", /* QEMU_CAPS_DEVICE_NVME_NS */ ); =20 =20 @@ -1419,6 +1420,7 @@ struct virQEMUCapsStringFlags virQEMUCapsObjectTypes[= ] =3D { { "sev-snp-guest", QEMU_CAPS_SEV_SNP_GUEST }, { "acpi-erst", QEMU_CAPS_DEVICE_ACPI_ERST }, { "virtio-mem-ccw", QEMU_CAPS_DEVICE_VIRTIO_MEM_CCW }, + { "nvme-ns", QEMU_CAPS_DEVICE_NVME_NS }, }; =20 =20 @@ -6464,6 +6466,9 @@ virQEMUCapsFillDomainDeviceDiskCaps(virQEMUCaps *qemu= Caps, if (virQEMUCapsGet(qemuCaps, QEMU_CAPS_ICH9_AHCI)) VIR_DOMAIN_CAPS_ENUM_SET(disk->bus, VIR_DOMAIN_DISK_BUS_SATA); =20 + if (virQEMUCapsGet(qemuCaps, QEMU_CAPS_DEVICE_NVME_NS)) + VIR_DOMAIN_CAPS_ENUM_SET(disk->bus, VIR_DOMAIN_DISK_BUS_NVME_NS); + /* disk->model values */ VIR_DOMAIN_CAPS_ENUM_SET(disk->model, VIR_DOMAIN_DISK_MODEL_VIRTIO); if (virQEMUCapsGet(qemuCaps, QEMU_CAPS_VIRTIO_PCI_TRANSITIONAL)) { diff --git a/src/qemu/qemu_capabilities.h b/src/qemu/qemu_capabilities.h index ea7c14daa9..f6637abff0 100644 --- a/src/qemu/qemu_capabilities.h +++ b/src/qemu/qemu_capabilities.h @@ -713,6 +713,7 @@ typedef enum { /* virQEMUCapsFlags grouping marker for = syntax-check */ =20 /* 475 */ QEMU_CAPS_VIRTIO_SCSI_IOTHREAD_MAPPING, /* virtio-scsi supports per-vi= rtqueue iothread mapping */ + QEMU_CAPS_DEVICE_NVME_NS, /* -device nvme-ns */ =20 QEMU_CAPS_LAST /* this must always be the last item */ } virQEMUCapsFlags; diff --git a/src/qemu/qemu_validate.c b/src/qemu/qemu_validate.c index 9985b2e2c1..389d0c9fb6 100644 --- a/src/qemu/qemu_validate.c +++ b/src/qemu/qemu_validate.c @@ -3197,6 +3197,12 @@ qemuValidateDomainDeviceDefDiskFrontend(const virDom= ainDiskDef *disk, break; =20 case VIR_DOMAIN_DISK_BUS_NVME_NS: + if (!virQEMUCapsGet(qemuCaps, QEMU_CAPS_DEVICE_NVME_NS)) { + virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", + _("This QEMU doesn't support '-device nvme-ns'"= )); + return -1; + } + if (disk->info.type !=3D VIR_DOMAIN_DEVICE_ADDRESS_TYPE_DRIVE) { virReportError(VIR_ERR_INTERNAL_ERROR, "%s", _("unexpected address type for nvme-ns disk")); diff --git a/tests/domaincapsdata/qemu_10.0.0-q35.x86_64+amdsev.xml b/tests= /domaincapsdata/qemu_10.0.0-q35.x86_64+amdsev.xml index b7fa8daa15..1d13979be0 100644 --- a/tests/domaincapsdata/qemu_10.0.0-q35.x86_64+amdsev.xml +++ b/tests/domaincapsdata/qemu_10.0.0-q35.x86_64+amdsev.xml @@ -686,6 +686,7 @@ virtio usb sata + nvme-ns virtio diff --git a/tests/domaincapsdata/qemu_10.0.0-q35.x86_64.xml b/tests/domain= capsdata/qemu_10.0.0-q35.x86_64.xml index e1ff01a7a8..df074c987a 100644 --- a/tests/domaincapsdata/qemu_10.0.0-q35.x86_64.xml +++ b/tests/domaincapsdata/qemu_10.0.0-q35.x86_64.xml @@ -1547,6 +1547,7 @@ virtio usb sata + nvme-ns virtio diff --git a/tests/domaincapsdata/qemu_10.0.0-tcg.x86_64+amdsev.xml b/tests= /domaincapsdata/qemu_10.0.0-tcg.x86_64+amdsev.xml index d8a6fe8354..7505b4f064 100644 --- a/tests/domaincapsdata/qemu_10.0.0-tcg.x86_64+amdsev.xml +++ b/tests/domaincapsdata/qemu_10.0.0-tcg.x86_64+amdsev.xml @@ -1655,6 +1655,7 @@ virtio usb sata + nvme-ns virtio diff --git a/tests/domaincapsdata/qemu_10.0.0-tcg.x86_64.xml b/tests/domain= capsdata/qemu_10.0.0-tcg.x86_64.xml index 3ce5c0c412..4c6daf0595 100644 --- a/tests/domaincapsdata/qemu_10.0.0-tcg.x86_64.xml +++ b/tests/domaincapsdata/qemu_10.0.0-tcg.x86_64.xml @@ -1655,6 +1655,7 @@ virtio usb sata + nvme-ns virtio diff --git a/tests/domaincapsdata/qemu_10.0.0.s390x.xml b/tests/domaincapsd= ata/qemu_10.0.0.s390x.xml index d66240307e..b228b90adc 100644 --- a/tests/domaincapsdata/qemu_10.0.0.s390x.xml +++ b/tests/domaincapsdata/qemu_10.0.0.s390x.xml @@ -242,6 +242,7 @@ scsi virtio usb + nvme-ns virtio diff --git a/tests/domaincapsdata/qemu_10.0.0.x86_64+amdsev.xml b/tests/dom= aincapsdata/qemu_10.0.0.x86_64+amdsev.xml index 1f852adfae..dd189d570f 100644 --- a/tests/domaincapsdata/qemu_10.0.0.x86_64+amdsev.xml +++ b/tests/domaincapsdata/qemu_10.0.0.x86_64+amdsev.xml @@ -686,6 +686,7 @@ virtio usb sata + nvme-ns virtio diff --git a/tests/domaincapsdata/qemu_10.0.0.x86_64.xml b/tests/domaincaps= data/qemu_10.0.0.x86_64.xml index 66c4dfed9f..c2fffc58c1 100644 --- a/tests/domaincapsdata/qemu_10.0.0.x86_64.xml +++ b/tests/domaincapsdata/qemu_10.0.0.x86_64.xml @@ -1547,6 +1547,7 @@ virtio usb sata + nvme-ns virtio diff --git a/tests/domaincapsdata/qemu_4.2.0-virt.aarch64.xml b/tests/domai= ncapsdata/qemu_4.2.0-virt.aarch64.xml index a7c2e0baee..a19efb71c6 100644 --- a/tests/domaincapsdata/qemu_4.2.0-virt.aarch64.xml +++ b/tests/domaincapsdata/qemu_4.2.0-virt.aarch64.xml @@ -98,6 +98,7 @@ virtio usb sata + nvme-ns virtio diff --git a/tests/domaincapsdata/qemu_4.2.0.aarch64.xml b/tests/domaincaps= data/qemu_4.2.0.aarch64.xml index a7c2e0baee..a19efb71c6 100644 --- a/tests/domaincapsdata/qemu_4.2.0.aarch64.xml +++ b/tests/domaincapsdata/qemu_4.2.0.aarch64.xml @@ -98,6 +98,7 @@ virtio usb sata + nvme-ns virtio diff --git a/tests/domaincapsdata/qemu_4.2.0.ppc64.xml b/tests/domaincapsda= ta/qemu_4.2.0.ppc64.xml index 2c41777e73..1671ee778f 100644 --- a/tests/domaincapsdata/qemu_4.2.0.ppc64.xml +++ b/tests/domaincapsdata/qemu_4.2.0.ppc64.xml @@ -64,6 +64,7 @@ virtio usb sata + nvme-ns virtio diff --git a/tests/domaincapsdata/qemu_5.0.0-tcg-virt.riscv64.xml b/tests/d= omaincapsdata/qemu_5.0.0-tcg-virt.riscv64.xml index c487d467ef..4fef30307d 100644 --- a/tests/domaincapsdata/qemu_5.0.0-tcg-virt.riscv64.xml +++ b/tests/domaincapsdata/qemu_5.0.0-tcg-virt.riscv64.xml @@ -50,6 +50,7 @@ virtio usb sata + nvme-ns virtio diff --git a/tests/domaincapsdata/qemu_5.0.0-virt.aarch64.xml b/tests/domai= ncapsdata/qemu_5.0.0-virt.aarch64.xml index 2466dda755..7d66fc54ad 100644 --- a/tests/domaincapsdata/qemu_5.0.0-virt.aarch64.xml +++ b/tests/domaincapsdata/qemu_5.0.0-virt.aarch64.xml @@ -99,6 +99,7 @@ virtio usb sata + nvme-ns virtio diff --git a/tests/domaincapsdata/qemu_5.0.0-virt.riscv64.xml b/tests/domai= ncapsdata/qemu_5.0.0-virt.riscv64.xml index b0e4aafcd5..317c6e45a0 100644 --- a/tests/domaincapsdata/qemu_5.0.0-virt.riscv64.xml +++ b/tests/domaincapsdata/qemu_5.0.0-virt.riscv64.xml @@ -53,6 +53,7 @@ virtio usb sata + nvme-ns virtio diff --git a/tests/domaincapsdata/qemu_5.0.0.aarch64.xml b/tests/domaincaps= data/qemu_5.0.0.aarch64.xml index 2466dda755..7d66fc54ad 100644 --- a/tests/domaincapsdata/qemu_5.0.0.aarch64.xml +++ b/tests/domaincapsdata/qemu_5.0.0.aarch64.xml @@ -99,6 +99,7 @@ virtio usb sata + nvme-ns virtio diff --git a/tests/domaincapsdata/qemu_5.0.0.ppc64.xml b/tests/domaincapsda= ta/qemu_5.0.0.ppc64.xml index c66d0645fc..a7f238a698 100644 --- a/tests/domaincapsdata/qemu_5.0.0.ppc64.xml +++ b/tests/domaincapsdata/qemu_5.0.0.ppc64.xml @@ -65,6 +65,7 @@ virtio usb sata + nvme-ns virtio diff --git a/tests/domaincapsdata/qemu_5.1.0.sparc.xml b/tests/domaincapsda= ta/qemu_5.1.0.sparc.xml index a471a937d7..4456794588 100644 --- a/tests/domaincapsdata/qemu_5.1.0.sparc.xml +++ b/tests/domaincapsdata/qemu_5.1.0.sparc.xml @@ -51,6 +51,7 @@ fdc scsi virtio + nvme-ns virtio diff --git a/tests/domaincapsdata/qemu_6.2.0-q35.x86_64.xml b/tests/domainc= apsdata/qemu_6.2.0-q35.x86_64.xml index d1a8399812..d9a0873c45 100644 --- a/tests/domaincapsdata/qemu_6.2.0-q35.x86_64.xml +++ b/tests/domaincapsdata/qemu_6.2.0-q35.x86_64.xml @@ -1012,6 +1012,7 @@ virtio usb sata + nvme-ns virtio diff --git a/tests/domaincapsdata/qemu_6.2.0-tcg.x86_64.xml b/tests/domainc= apsdata/qemu_6.2.0-tcg.x86_64.xml index 8c8f016233..969d3e9114 100644 --- a/tests/domaincapsdata/qemu_6.2.0-tcg.x86_64.xml +++ b/tests/domaincapsdata/qemu_6.2.0-tcg.x86_64.xml @@ -1814,6 +1814,7 @@ virtio usb sata + nvme-ns virtio diff --git a/tests/domaincapsdata/qemu_6.2.0.ppc64.xml b/tests/domaincapsda= ta/qemu_6.2.0.ppc64.xml index 39b07955dd..789cef7989 100644 --- a/tests/domaincapsdata/qemu_6.2.0.ppc64.xml +++ b/tests/domaincapsdata/qemu_6.2.0.ppc64.xml @@ -65,6 +65,7 @@ virtio usb sata + nvme-ns virtio diff --git a/tests/domaincapsdata/qemu_6.2.0.x86_64.xml b/tests/domaincapsd= ata/qemu_6.2.0.x86_64.xml index 1f21b8be4e..3cf4e9bd9b 100644 --- a/tests/domaincapsdata/qemu_6.2.0.x86_64.xml +++ b/tests/domaincapsdata/qemu_6.2.0.x86_64.xml @@ -1012,6 +1012,7 @@ virtio usb sata + nvme-ns virtio diff --git a/tests/domaincapsdata/qemu_7.0.0-q35.x86_64.xml b/tests/domainc= apsdata/qemu_7.0.0-q35.x86_64.xml index 8fa50785b7..b7ae9697db 100644 --- a/tests/domaincapsdata/qemu_7.0.0-q35.x86_64.xml +++ b/tests/domaincapsdata/qemu_7.0.0-q35.x86_64.xml @@ -1039,6 +1039,7 @@ virtio usb sata + nvme-ns virtio diff --git a/tests/domaincapsdata/qemu_7.0.0-tcg.x86_64.xml b/tests/domainc= apsdata/qemu_7.0.0-tcg.x86_64.xml index 2686989d64..71dc655d8a 100644 --- a/tests/domaincapsdata/qemu_7.0.0-tcg.x86_64.xml +++ b/tests/domaincapsdata/qemu_7.0.0-tcg.x86_64.xml @@ -1838,6 +1838,7 @@ virtio usb sata + nvme-ns virtio diff --git a/tests/domaincapsdata/qemu_7.0.0.ppc64.xml b/tests/domaincapsda= ta/qemu_7.0.0.ppc64.xml index 52c73d10a4..a758dc1cc2 100644 --- a/tests/domaincapsdata/qemu_7.0.0.ppc64.xml +++ b/tests/domaincapsdata/qemu_7.0.0.ppc64.xml @@ -65,6 +65,7 @@ virtio usb sata + nvme-ns virtio diff --git a/tests/domaincapsdata/qemu_7.0.0.x86_64.xml b/tests/domaincapsd= ata/qemu_7.0.0.x86_64.xml index 6ab3774452..ddfe9e434e 100644 --- a/tests/domaincapsdata/qemu_7.0.0.x86_64.xml +++ b/tests/domaincapsdata/qemu_7.0.0.x86_64.xml @@ -1039,6 +1039,7 @@ virtio usb sata + nvme-ns virtio diff --git a/tests/domaincapsdata/qemu_7.1.0-q35.x86_64.xml b/tests/domainc= apsdata/qemu_7.1.0-q35.x86_64.xml index 75565c4495..611528d3ef 100644 --- a/tests/domaincapsdata/qemu_7.1.0-q35.x86_64.xml +++ b/tests/domaincapsdata/qemu_7.1.0-q35.x86_64.xml @@ -1006,6 +1006,7 @@ virtio usb sata + nvme-ns virtio diff --git a/tests/domaincapsdata/qemu_7.1.0-tcg.x86_64.xml b/tests/domainc= apsdata/qemu_7.1.0-tcg.x86_64.xml index 4e44dbaf65..0aeebfbe7b 100644 --- a/tests/domaincapsdata/qemu_7.1.0-tcg.x86_64.xml +++ b/tests/domaincapsdata/qemu_7.1.0-tcg.x86_64.xml @@ -1786,6 +1786,7 @@ virtio usb sata + nvme-ns virtio diff --git a/tests/domaincapsdata/qemu_7.1.0.ppc64.xml b/tests/domaincapsda= ta/qemu_7.1.0.ppc64.xml index ca0bc6f0b5..7f0e0b251d 100644 --- a/tests/domaincapsdata/qemu_7.1.0.ppc64.xml +++ b/tests/domaincapsdata/qemu_7.1.0.ppc64.xml @@ -60,6 +60,7 @@ virtio usb sata + nvme-ns virtio diff --git a/tests/domaincapsdata/qemu_7.1.0.x86_64.xml b/tests/domaincapsd= ata/qemu_7.1.0.x86_64.xml index 898b081df0..a708397e1d 100644 --- a/tests/domaincapsdata/qemu_7.1.0.x86_64.xml +++ b/tests/domaincapsdata/qemu_7.1.0.x86_64.xml @@ -1006,6 +1006,7 @@ virtio usb sata + nvme-ns virtio diff --git a/tests/domaincapsdata/qemu_7.2.0-hvf.x86_64+hvf.xml b/tests/dom= aincapsdata/qemu_7.2.0-hvf.x86_64+hvf.xml index 0fbbc8118c..664f6a13b0 100644 --- a/tests/domaincapsdata/qemu_7.2.0-hvf.x86_64+hvf.xml +++ b/tests/domaincapsdata/qemu_7.2.0-hvf.x86_64+hvf.xml @@ -1011,6 +1011,7 @@ virtio usb sata + nvme-ns virtio diff --git a/tests/domaincapsdata/qemu_7.2.0-q35.x86_64.xml b/tests/domainc= apsdata/qemu_7.2.0-q35.x86_64.xml index cfbe7e5dd1..c1bb50ed3d 100644 --- a/tests/domaincapsdata/qemu_7.2.0-q35.x86_64.xml +++ b/tests/domaincapsdata/qemu_7.2.0-q35.x86_64.xml @@ -1011,6 +1011,7 @@ virtio usb sata + nvme-ns virtio diff --git a/tests/domaincapsdata/qemu_7.2.0-tcg.x86_64+hvf.xml b/tests/dom= aincapsdata/qemu_7.2.0-tcg.x86_64+hvf.xml index 805a636ec6..cfd23a7a70 100644 --- a/tests/domaincapsdata/qemu_7.2.0-tcg.x86_64+hvf.xml +++ b/tests/domaincapsdata/qemu_7.2.0-tcg.x86_64+hvf.xml @@ -1491,6 +1491,7 @@ virtio usb sata + nvme-ns virtio diff --git a/tests/domaincapsdata/qemu_7.2.0-tcg.x86_64.xml b/tests/domainc= apsdata/qemu_7.2.0-tcg.x86_64.xml index 805a636ec6..cfd23a7a70 100644 --- a/tests/domaincapsdata/qemu_7.2.0-tcg.x86_64.xml +++ b/tests/domaincapsdata/qemu_7.2.0-tcg.x86_64.xml @@ -1491,6 +1491,7 @@ virtio usb sata + nvme-ns virtio diff --git a/tests/domaincapsdata/qemu_7.2.0.ppc.xml b/tests/domaincapsdata= /qemu_7.2.0.ppc.xml index 21dbe730c5..7469cdf4ec 100644 --- a/tests/domaincapsdata/qemu_7.2.0.ppc.xml +++ b/tests/domaincapsdata/qemu_7.2.0.ppc.xml @@ -54,6 +54,7 @@ virtio usb sata + nvme-ns virtio diff --git a/tests/domaincapsdata/qemu_7.2.0.x86_64.xml b/tests/domaincapsd= ata/qemu_7.2.0.x86_64.xml index 2b402f59c8..d673f0e971 100644 --- a/tests/domaincapsdata/qemu_7.2.0.x86_64.xml +++ b/tests/domaincapsdata/qemu_7.2.0.x86_64.xml @@ -1011,6 +1011,7 @@ virtio usb sata + nvme-ns virtio diff --git a/tests/domaincapsdata/qemu_8.0.0-q35.x86_64.xml b/tests/domainc= apsdata/qemu_8.0.0-q35.x86_64.xml index c1f7b96465..ebcab29d7e 100644 --- a/tests/domaincapsdata/qemu_8.0.0-q35.x86_64.xml +++ b/tests/domaincapsdata/qemu_8.0.0-q35.x86_64.xml @@ -1093,6 +1093,7 @@ virtio usb sata + nvme-ns virtio diff --git a/tests/domaincapsdata/qemu_8.0.0-tcg.x86_64.xml b/tests/domainc= apsdata/qemu_8.0.0-tcg.x86_64.xml index 4d8d4c7702..ef63e1dda8 100644 --- a/tests/domaincapsdata/qemu_8.0.0-tcg.x86_64.xml +++ b/tests/domaincapsdata/qemu_8.0.0-tcg.x86_64.xml @@ -1586,6 +1586,7 @@ virtio usb sata + nvme-ns virtio diff --git a/tests/domaincapsdata/qemu_8.0.0.x86_64.xml b/tests/domaincapsd= ata/qemu_8.0.0.x86_64.xml index 7db506386c..128dfdb364 100644 --- a/tests/domaincapsdata/qemu_8.0.0.x86_64.xml +++ b/tests/domaincapsdata/qemu_8.0.0.x86_64.xml @@ -1093,6 +1093,7 @@ virtio usb sata + nvme-ns virtio diff --git a/tests/domaincapsdata/qemu_8.1.0-q35.x86_64.xml b/tests/domainc= apsdata/qemu_8.1.0-q35.x86_64.xml index 4c9b674c1e..3b10885cf3 100644 --- a/tests/domaincapsdata/qemu_8.1.0-q35.x86_64.xml +++ b/tests/domaincapsdata/qemu_8.1.0-q35.x86_64.xml @@ -1352,6 +1352,7 @@ virtio usb sata + nvme-ns virtio diff --git a/tests/domaincapsdata/qemu_8.1.0-tcg.x86_64.xml b/tests/domainc= apsdata/qemu_8.1.0-tcg.x86_64.xml index 52f0d339bb..ee67c1a1ae 100644 --- a/tests/domaincapsdata/qemu_8.1.0-tcg.x86_64.xml +++ b/tests/domaincapsdata/qemu_8.1.0-tcg.x86_64.xml @@ -1608,6 +1608,7 @@ virtio usb sata + nvme-ns virtio diff --git a/tests/domaincapsdata/qemu_8.1.0.x86_64.xml b/tests/domaincapsd= ata/qemu_8.1.0.x86_64.xml index 8389909b74..94d3cb6315 100644 --- a/tests/domaincapsdata/qemu_8.1.0.x86_64.xml +++ b/tests/domaincapsdata/qemu_8.1.0.x86_64.xml @@ -1352,6 +1352,7 @@ virtio usb sata + nvme-ns virtio diff --git a/tests/domaincapsdata/qemu_8.2.0-q35.x86_64.xml b/tests/domainc= apsdata/qemu_8.2.0-q35.x86_64.xml index dcb46e06ea..02c22418fd 100644 --- a/tests/domaincapsdata/qemu_8.2.0-q35.x86_64.xml +++ b/tests/domaincapsdata/qemu_8.2.0-q35.x86_64.xml @@ -1353,6 +1353,7 @@ virtio usb sata + nvme-ns virtio diff --git a/tests/domaincapsdata/qemu_8.2.0-tcg-virt.loongarch64.xml b/tes= ts/domaincapsdata/qemu_8.2.0-tcg-virt.loongarch64.xml index 18979cf280..9fbffcc355 100644 --- a/tests/domaincapsdata/qemu_8.2.0-tcg-virt.loongarch64.xml +++ b/tests/domaincapsdata/qemu_8.2.0-tcg-virt.loongarch64.xml @@ -61,6 +61,7 @@ virtio usb sata + nvme-ns virtio diff --git a/tests/domaincapsdata/qemu_8.2.0-tcg.x86_64.xml b/tests/domainc= apsdata/qemu_8.2.0-tcg.x86_64.xml index fae61e8955..507ac9a29c 100644 --- a/tests/domaincapsdata/qemu_8.2.0-tcg.x86_64.xml +++ b/tests/domaincapsdata/qemu_8.2.0-tcg.x86_64.xml @@ -1574,6 +1574,7 @@ virtio usb sata + nvme-ns virtio diff --git a/tests/domaincapsdata/qemu_8.2.0-virt.aarch64.xml b/tests/domai= ncapsdata/qemu_8.2.0-virt.aarch64.xml index ce17865e24..312bdab3c9 100644 --- a/tests/domaincapsdata/qemu_8.2.0-virt.aarch64.xml +++ b/tests/domaincapsdata/qemu_8.2.0-virt.aarch64.xml @@ -109,6 +109,7 @@ virtio usb sata + nvme-ns virtio diff --git a/tests/domaincapsdata/qemu_8.2.0-virt.loongarch64.xml b/tests/d= omaincapsdata/qemu_8.2.0-virt.loongarch64.xml index 8f4ebbc107..fa9c8fe73b 100644 --- a/tests/domaincapsdata/qemu_8.2.0-virt.loongarch64.xml +++ b/tests/domaincapsdata/qemu_8.2.0-virt.loongarch64.xml @@ -65,6 +65,7 @@ virtio usb sata + nvme-ns virtio diff --git a/tests/domaincapsdata/qemu_8.2.0.aarch64.xml b/tests/domaincaps= data/qemu_8.2.0.aarch64.xml index ce17865e24..312bdab3c9 100644 --- a/tests/domaincapsdata/qemu_8.2.0.aarch64.xml +++ b/tests/domaincapsdata/qemu_8.2.0.aarch64.xml @@ -109,6 +109,7 @@ virtio usb sata + nvme-ns virtio diff --git a/tests/domaincapsdata/qemu_8.2.0.armv7l.xml b/tests/domaincapsd= ata/qemu_8.2.0.armv7l.xml index ee653c0c49..9170a8de02 100644 --- a/tests/domaincapsdata/qemu_8.2.0.armv7l.xml +++ b/tests/domaincapsdata/qemu_8.2.0.armv7l.xml @@ -58,6 +58,7 @@ virtio usb sata + nvme-ns virtio diff --git a/tests/domaincapsdata/qemu_8.2.0.s390x.xml b/tests/domaincapsda= ta/qemu_8.2.0.s390x.xml index 78f91736d6..7f0dbcf554 100644 --- a/tests/domaincapsdata/qemu_8.2.0.s390x.xml +++ b/tests/domaincapsdata/qemu_8.2.0.s390x.xml @@ -331,6 +331,7 @@ scsi virtio usb + nvme-ns virtio diff --git a/tests/domaincapsdata/qemu_8.2.0.x86_64.xml b/tests/domaincapsd= ata/qemu_8.2.0.x86_64.xml index 97b3795b5a..1af27c2f34 100644 --- a/tests/domaincapsdata/qemu_8.2.0.x86_64.xml +++ b/tests/domaincapsdata/qemu_8.2.0.x86_64.xml @@ -1353,6 +1353,7 @@ virtio usb sata + nvme-ns virtio diff --git a/tests/domaincapsdata/qemu_9.0.0-q35.x86_64.xml b/tests/domainc= apsdata/qemu_9.0.0-q35.x86_64.xml index d55bc239a9..d23896b45c 100644 --- a/tests/domaincapsdata/qemu_9.0.0-q35.x86_64.xml +++ b/tests/domaincapsdata/qemu_9.0.0-q35.x86_64.xml @@ -1353,6 +1353,7 @@ virtio usb sata + nvme-ns virtio diff --git a/tests/domaincapsdata/qemu_9.0.0-tcg.x86_64.xml b/tests/domainc= apsdata/qemu_9.0.0-tcg.x86_64.xml index 48300b14f5..cfead94eb8 100644 --- a/tests/domaincapsdata/qemu_9.0.0-tcg.x86_64.xml +++ b/tests/domaincapsdata/qemu_9.0.0-tcg.x86_64.xml @@ -1503,6 +1503,7 @@ virtio usb sata + nvme-ns virtio diff --git a/tests/domaincapsdata/qemu_9.0.0.x86_64.xml b/tests/domaincapsd= ata/qemu_9.0.0.x86_64.xml index 52f01a7cfc..e99c98dc33 100644 --- a/tests/domaincapsdata/qemu_9.0.0.x86_64.xml +++ b/tests/domaincapsdata/qemu_9.0.0.x86_64.xml @@ -1353,6 +1353,7 @@ virtio usb sata + nvme-ns virtio diff --git a/tests/domaincapsdata/qemu_9.1.0-q35.x86_64.xml b/tests/domainc= apsdata/qemu_9.1.0-q35.x86_64.xml index 5449244329..299fcb5b26 100644 --- a/tests/domaincapsdata/qemu_9.1.0-q35.x86_64.xml +++ b/tests/domaincapsdata/qemu_9.1.0-q35.x86_64.xml @@ -1489,6 +1489,7 @@ virtio usb sata + nvme-ns virtio diff --git a/tests/domaincapsdata/qemu_9.1.0-tcg-virt.riscv64.xml b/tests/d= omaincapsdata/qemu_9.1.0-tcg-virt.riscv64.xml index b236ecbac4..954d2cfaaf 100644 --- a/tests/domaincapsdata/qemu_9.1.0-tcg-virt.riscv64.xml +++ b/tests/domaincapsdata/qemu_9.1.0-tcg-virt.riscv64.xml @@ -71,6 +71,7 @@ virtio usb sata + nvme-ns virtio diff --git a/tests/domaincapsdata/qemu_9.1.0-tcg.x86_64.xml b/tests/domainc= apsdata/qemu_9.1.0-tcg.x86_64.xml index 927a5a6d36..f8fbf0562b 100644 --- a/tests/domaincapsdata/qemu_9.1.0-tcg.x86_64.xml +++ b/tests/domaincapsdata/qemu_9.1.0-tcg.x86_64.xml @@ -1608,6 +1608,7 @@ virtio usb sata + nvme-ns virtio diff --git a/tests/domaincapsdata/qemu_9.1.0-virt.riscv64.xml b/tests/domai= ncapsdata/qemu_9.1.0-virt.riscv64.xml index 1399b980fd..4bcc70fecc 100644 --- a/tests/domaincapsdata/qemu_9.1.0-virt.riscv64.xml +++ b/tests/domaincapsdata/qemu_9.1.0-virt.riscv64.xml @@ -60,6 +60,7 @@ virtio usb sata + nvme-ns virtio diff --git a/tests/domaincapsdata/qemu_9.1.0.s390x.xml b/tests/domaincapsda= ta/qemu_9.1.0.s390x.xml index b73e0d0688..706be59c21 100644 --- a/tests/domaincapsdata/qemu_9.1.0.s390x.xml +++ b/tests/domaincapsdata/qemu_9.1.0.s390x.xml @@ -194,6 +194,7 @@ scsi virtio usb + nvme-ns virtio diff --git a/tests/domaincapsdata/qemu_9.1.0.x86_64.xml b/tests/domaincapsd= ata/qemu_9.1.0.x86_64.xml index dc2521135c..aecd378356 100644 --- a/tests/domaincapsdata/qemu_9.1.0.x86_64.xml +++ b/tests/domaincapsdata/qemu_9.1.0.x86_64.xml @@ -1489,6 +1489,7 @@ virtio usb sata + nvme-ns virtio diff --git a/tests/domaincapsdata/qemu_9.2.0-hvf.aarch64+hvf.xml b/tests/do= maincapsdata/qemu_9.2.0-hvf.aarch64+hvf.xml index b8615a0986..0ba77ec33d 100644 --- a/tests/domaincapsdata/qemu_9.2.0-hvf.aarch64+hvf.xml +++ b/tests/domaincapsdata/qemu_9.2.0-hvf.aarch64+hvf.xml @@ -108,6 +108,7 @@ virtio usb sata + nvme-ns virtio diff --git a/tests/domaincapsdata/qemu_9.2.0-q35.x86_64+amdsev.xml b/tests/= domaincapsdata/qemu_9.2.0-q35.x86_64+amdsev.xml index 62c61b9de5..47ddb957e0 100644 --- a/tests/domaincapsdata/qemu_9.2.0-q35.x86_64+amdsev.xml +++ b/tests/domaincapsdata/qemu_9.2.0-q35.x86_64+amdsev.xml @@ -686,6 +686,7 @@ virtio usb sata + nvme-ns virtio diff --git a/tests/domaincapsdata/qemu_9.2.0-q35.x86_64.xml b/tests/domainc= apsdata/qemu_9.2.0-q35.x86_64.xml index 49f5e64bfa..39ff3fad5c 100644 --- a/tests/domaincapsdata/qemu_9.2.0-q35.x86_64.xml +++ b/tests/domaincapsdata/qemu_9.2.0-q35.x86_64.xml @@ -1547,6 +1547,7 @@ virtio usb sata + nvme-ns virtio diff --git a/tests/domaincapsdata/qemu_9.2.0-tcg.x86_64+amdsev.xml b/tests/= domaincapsdata/qemu_9.2.0-tcg.x86_64+amdsev.xml index 265680b197..e9a89aea19 100644 --- a/tests/domaincapsdata/qemu_9.2.0-tcg.x86_64+amdsev.xml +++ b/tests/domaincapsdata/qemu_9.2.0-tcg.x86_64+amdsev.xml @@ -1655,6 +1655,7 @@ virtio usb sata + nvme-ns virtio diff --git a/tests/domaincapsdata/qemu_9.2.0-tcg.x86_64.xml b/tests/domainc= apsdata/qemu_9.2.0-tcg.x86_64.xml index 884228db72..e5faf28e19 100644 --- a/tests/domaincapsdata/qemu_9.2.0-tcg.x86_64.xml +++ b/tests/domaincapsdata/qemu_9.2.0-tcg.x86_64.xml @@ -1655,6 +1655,7 @@ virtio usb sata + nvme-ns virtio diff --git a/tests/domaincapsdata/qemu_9.2.0.s390x.xml b/tests/domaincapsda= ta/qemu_9.2.0.s390x.xml index 605a3af5c7..41b4460210 100644 --- a/tests/domaincapsdata/qemu_9.2.0.s390x.xml +++ b/tests/domaincapsdata/qemu_9.2.0.s390x.xml @@ -194,6 +194,7 @@ scsi virtio usb + nvme-ns virtio diff --git a/tests/domaincapsdata/qemu_9.2.0.x86_64+amdsev.xml b/tests/doma= incapsdata/qemu_9.2.0.x86_64+amdsev.xml index ee82f2905b..427b7c6cd6 100644 --- a/tests/domaincapsdata/qemu_9.2.0.x86_64+amdsev.xml +++ b/tests/domaincapsdata/qemu_9.2.0.x86_64+amdsev.xml @@ -686,6 +686,7 @@ virtio usb sata + nvme-ns virtio diff --git a/tests/domaincapsdata/qemu_9.2.0.x86_64.xml b/tests/domaincapsd= ata/qemu_9.2.0.x86_64.xml index d587c1316a..31f30cc339 100644 --- a/tests/domaincapsdata/qemu_9.2.0.x86_64.xml +++ b/tests/domaincapsdata/qemu_9.2.0.x86_64.xml @@ -1547,6 +1547,7 @@ virtio usb sata + nvme-ns virtio diff --git a/tests/qemucapabilitiesdata/caps_10.0.0_s390x.xml b/tests/qemuc= apabilitiesdata/caps_10.0.0_s390x.xml index be2e91ed92..42ce599b7f 100644 --- a/tests/qemucapabilitiesdata/caps_10.0.0_s390x.xml +++ b/tests/qemucapabilitiesdata/caps_10.0.0_s390x.xml @@ -133,6 +133,7 @@ + 9002050 39100285 v9.2.0-1203-gd6430c17d7 diff --git a/tests/qemucapabilitiesdata/caps_10.0.0_x86_64+amdsev.xml b/tes= ts/qemucapabilitiesdata/caps_10.0.0_x86_64+amdsev.xml index 00afc61a5b..fc98cd9ff6 100644 --- a/tests/qemucapabilitiesdata/caps_10.0.0_x86_64+amdsev.xml +++ b/tests/qemucapabilitiesdata/caps_10.0.0_x86_64+amdsev.xml @@ -205,6 +205,7 @@ + 10000000 43100285 v10.0.0 diff --git a/tests/qemucapabilitiesdata/caps_10.0.0_x86_64.xml b/tests/qemu= capabilitiesdata/caps_10.0.0_x86_64.xml index cee4cc3252..3fcd827358 100644 --- a/tests/qemucapabilitiesdata/caps_10.0.0_x86_64.xml +++ b/tests/qemucapabilitiesdata/caps_10.0.0_x86_64.xml @@ -204,6 +204,7 @@ + 10000000 43100285 v10.0.0 diff --git a/tests/qemucapabilitiesdata/caps_6.2.0_ppc64.xml b/tests/qemuca= pabilitiesdata/caps_6.2.0_ppc64.xml index f61d2263c7..401a30f6ca 100644 --- a/tests/qemucapabilitiesdata/caps_6.2.0_ppc64.xml +++ b/tests/qemucapabilitiesdata/caps_6.2.0_ppc64.xml @@ -130,6 +130,7 @@ + 6002000 42900244 v6.2.0 diff --git a/tests/qemucapabilitiesdata/caps_6.2.0_x86_64.xml b/tests/qemuc= apabilitiesdata/caps_6.2.0_x86_64.xml index e780850c8d..3b6cc0e1a4 100644 --- a/tests/qemucapabilitiesdata/caps_6.2.0_x86_64.xml +++ b/tests/qemucapabilitiesdata/caps_6.2.0_x86_64.xml @@ -172,6 +172,7 @@ + 6002000 43100244 v6.2.0 diff --git a/tests/qemucapabilitiesdata/caps_7.0.0_ppc64.xml b/tests/qemuca= pabilitiesdata/caps_7.0.0_ppc64.xml index d78c239372..08dbb6c09a 100644 --- a/tests/qemucapabilitiesdata/caps_7.0.0_ppc64.xml +++ b/tests/qemucapabilitiesdata/caps_7.0.0_ppc64.xml @@ -149,6 +149,7 @@ + 7000000 42900243 v7.0.0 diff --git a/tests/qemucapabilitiesdata/caps_7.0.0_x86_64.xml b/tests/qemuc= apabilitiesdata/caps_7.0.0_x86_64.xml index f8fab98961..3667892751 100644 --- a/tests/qemucapabilitiesdata/caps_7.0.0_x86_64.xml +++ b/tests/qemucapabilitiesdata/caps_7.0.0_x86_64.xml @@ -180,6 +180,7 @@ + 7000000 43100243 v7.0.0 diff --git a/tests/qemucapabilitiesdata/caps_7.1.0_ppc64.xml b/tests/qemuca= pabilitiesdata/caps_7.1.0_ppc64.xml index d6edb65e96..9e9ce9f0bc 100644 --- a/tests/qemucapabilitiesdata/caps_7.1.0_ppc64.xml +++ b/tests/qemucapabilitiesdata/caps_7.1.0_ppc64.xml @@ -150,6 +150,7 @@ + 7001000 42900244 v7.1.0 diff --git a/tests/qemucapabilitiesdata/caps_7.1.0_x86_64.xml b/tests/qemuc= apabilitiesdata/caps_7.1.0_x86_64.xml index 17c662421d..23494272bb 100644 --- a/tests/qemucapabilitiesdata/caps_7.1.0_x86_64.xml +++ b/tests/qemucapabilitiesdata/caps_7.1.0_x86_64.xml @@ -185,6 +185,7 @@ + 7001000 43100244 v7.1.0 diff --git a/tests/qemucapabilitiesdata/caps_7.2.0_ppc.xml b/tests/qemucapa= bilitiesdata/caps_7.2.0_ppc.xml index fe318e0a52..2dcb0e0dba 100644 --- a/tests/qemucapabilitiesdata/caps_7.2.0_ppc.xml +++ b/tests/qemucapabilitiesdata/caps_7.2.0_ppc.xml @@ -145,6 +145,7 @@ + 7002000 0 qemu-7.2.0-6.fc37 diff --git a/tests/qemucapabilitiesdata/caps_7.2.0_x86_64+hvf.xml b/tests/q= emucapabilitiesdata/caps_7.2.0_x86_64+hvf.xml index 0dd9d60be3..4f94e7f0f0 100644 --- a/tests/qemucapabilitiesdata/caps_7.2.0_x86_64+hvf.xml +++ b/tests/qemucapabilitiesdata/caps_7.2.0_x86_64+hvf.xml @@ -189,6 +189,7 @@ + 7002000 43100245 v7.2.0 diff --git a/tests/qemucapabilitiesdata/caps_7.2.0_x86_64.xml b/tests/qemuc= apabilitiesdata/caps_7.2.0_x86_64.xml index 1f526ebc54..0bac037bc7 100644 --- a/tests/qemucapabilitiesdata/caps_7.2.0_x86_64.xml +++ b/tests/qemucapabilitiesdata/caps_7.2.0_x86_64.xml @@ -189,6 +189,7 @@ + 7002000 43100245 v7.2.0 diff --git a/tests/qemucapabilitiesdata/caps_8.0.0_x86_64.xml b/tests/qemuc= apabilitiesdata/caps_8.0.0_x86_64.xml index 44ff63d236..c20a49aab4 100644 --- a/tests/qemucapabilitiesdata/caps_8.0.0_x86_64.xml +++ b/tests/qemucapabilitiesdata/caps_8.0.0_x86_64.xml @@ -193,6 +193,7 @@ + 8000000 43100244 v8.0.0 diff --git a/tests/qemucapabilitiesdata/caps_8.1.0_x86_64.xml b/tests/qemuc= apabilitiesdata/caps_8.1.0_x86_64.xml index eee166b1ea..00eaa2e321 100644 --- a/tests/qemucapabilitiesdata/caps_8.1.0_x86_64.xml +++ b/tests/qemucapabilitiesdata/caps_8.1.0_x86_64.xml @@ -195,6 +195,7 @@ + 8001000 43100245 v8.1.0 diff --git a/tests/qemucapabilitiesdata/caps_8.2.0_aarch64.xml b/tests/qemu= capabilitiesdata/caps_8.2.0_aarch64.xml index 837502c336..5c73dce2bf 100644 --- a/tests/qemucapabilitiesdata/caps_8.2.0_aarch64.xml +++ b/tests/qemucapabilitiesdata/caps_8.2.0_aarch64.xml @@ -160,6 +160,7 @@ + 8002000 61700246 v8.2.0 diff --git a/tests/qemucapabilitiesdata/caps_8.2.0_armv7l.xml b/tests/qemuc= apabilitiesdata/caps_8.2.0_armv7l.xml index f062f31abc..a4bada05bc 100644 --- a/tests/qemucapabilitiesdata/caps_8.2.0_armv7l.xml +++ b/tests/qemucapabilitiesdata/caps_8.2.0_armv7l.xml @@ -167,6 +167,7 @@ + 8002000 0 qemu-8.2.0-7.fc39 diff --git a/tests/qemucapabilitiesdata/caps_8.2.0_loongarch64.xml b/tests/= qemucapabilitiesdata/caps_8.2.0_loongarch64.xml index 2a37631381..9972f987f0 100644 --- a/tests/qemucapabilitiesdata/caps_8.2.0_loongarch64.xml +++ b/tests/qemucapabilitiesdata/caps_8.2.0_loongarch64.xml @@ -150,6 +150,7 @@ + 8002000 106300246 v8.2.0 diff --git a/tests/qemucapabilitiesdata/caps_8.2.0_s390x.xml b/tests/qemuca= pabilitiesdata/caps_8.2.0_s390x.xml index 086fa2c715..ced9b96b09 100644 --- a/tests/qemucapabilitiesdata/caps_8.2.0_s390x.xml +++ b/tests/qemucapabilitiesdata/caps_8.2.0_s390x.xml @@ -114,6 +114,7 @@ + 8002000 39100246 v8.2.0 diff --git a/tests/qemucapabilitiesdata/caps_8.2.0_x86_64.xml b/tests/qemuc= apabilitiesdata/caps_8.2.0_x86_64.xml index 3f8fa926c8..fba540a323 100644 --- a/tests/qemucapabilitiesdata/caps_8.2.0_x86_64.xml +++ b/tests/qemucapabilitiesdata/caps_8.2.0_x86_64.xml @@ -198,6 +198,7 @@ + 8002000 43100246 v8.2.0 diff --git a/tests/qemucapabilitiesdata/caps_9.0.0_x86_64.xml b/tests/qemuc= apabilitiesdata/caps_9.0.0_x86_64.xml index 7824fd3f5e..ed3e682415 100644 --- a/tests/qemucapabilitiesdata/caps_9.0.0_x86_64.xml +++ b/tests/qemucapabilitiesdata/caps_9.0.0_x86_64.xml @@ -200,6 +200,7 @@ + 9000000 43100245 v9.0.0 diff --git a/tests/qemucapabilitiesdata/caps_9.1.0_riscv64.xml b/tests/qemu= capabilitiesdata/caps_9.1.0_riscv64.xml index 3b1445718a..edb2afc2bd 100644 --- a/tests/qemucapabilitiesdata/caps_9.1.0_riscv64.xml +++ b/tests/qemucapabilitiesdata/caps_9.1.0_riscv64.xml @@ -160,6 +160,7 @@ + 9001000 0 v9.1.0 diff --git a/tests/qemucapabilitiesdata/caps_9.1.0_s390x.xml b/tests/qemuca= pabilitiesdata/caps_9.1.0_s390x.xml index 0d566d13d5..b0ba610ceb 100644 --- a/tests/qemucapabilitiesdata/caps_9.1.0_s390x.xml +++ b/tests/qemucapabilitiesdata/caps_9.1.0_s390x.xml @@ -125,6 +125,7 @@ + 9001000 39100246 v9.1.0 diff --git a/tests/qemucapabilitiesdata/caps_9.1.0_x86_64.xml b/tests/qemuc= apabilitiesdata/caps_9.1.0_x86_64.xml index f2207ee5e3..48cc6fca8c 100644 --- a/tests/qemucapabilitiesdata/caps_9.1.0_x86_64.xml +++ b/tests/qemucapabilitiesdata/caps_9.1.0_x86_64.xml @@ -199,6 +199,7 @@ + 9001000 43100246 v9.1.0 diff --git a/tests/qemucapabilitiesdata/caps_9.2.0_aarch64+hvf.xml b/tests/= qemucapabilitiesdata/caps_9.2.0_aarch64+hvf.xml index ac25159eff..55a57d7659 100644 --- a/tests/qemucapabilitiesdata/caps_9.2.0_aarch64+hvf.xml +++ b/tests/qemucapabilitiesdata/caps_9.2.0_aarch64+hvf.xml @@ -133,6 +133,7 @@ + 9002002 61700247 diff --git a/tests/qemucapabilitiesdata/caps_9.2.0_s390x.xml b/tests/qemuca= pabilitiesdata/caps_9.2.0_s390x.xml index e1323f9b72..0ee0a16ae8 100644 --- a/tests/qemucapabilitiesdata/caps_9.2.0_s390x.xml +++ b/tests/qemucapabilitiesdata/caps_9.2.0_s390x.xml @@ -128,6 +128,7 @@ + 9002000 39100247 v9.2.0 diff --git a/tests/qemucapabilitiesdata/caps_9.2.0_x86_64+amdsev.xml b/test= s/qemucapabilitiesdata/caps_9.2.0_x86_64+amdsev.xml index 7f6316941b..e95a6d042a 100644 --- a/tests/qemucapabilitiesdata/caps_9.2.0_x86_64+amdsev.xml +++ b/tests/qemucapabilitiesdata/caps_9.2.0_x86_64+amdsev.xml @@ -203,6 +203,7 @@ + 9002000 43100247 v9.2.0 diff --git a/tests/qemucapabilitiesdata/caps_9.2.0_x86_64.xml b/tests/qemuc= apabilitiesdata/caps_9.2.0_x86_64.xml index 12d1928bb7..aa7b880e8b 100644 --- a/tests/qemucapabilitiesdata/caps_9.2.0_x86_64.xml +++ b/tests/qemucapabilitiesdata/caps_9.2.0_x86_64.xml @@ -201,6 +201,7 @@ + 9002000 43100247 v9.2.0 --=20 2.11.0 From nobody Fri Dec 19 22:05:20 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=fail(p=none dis=none) header.from=smartx.com ARC-Seal: i=1; a=rsa-sha256; t=1745754779; cv=none; d=zohomail.com; s=zohoarc; b=EZVcaHnv1Hip13j1k6V/ZXPFFTCbHubVRh98qHd4ZwKOdZSIreT0k9Ev6hqiJaXNdY9fJXGTziWyvNBwYIdzOMR0bqarYIGy8TXVgyFpiA9Ybt+Pbw/ie9oXFn8i/7JkDn2e0blBepofZvGUVPkziPWpH4UIsoayBdMtMDQg6nM= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1745754779; h=Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:Message-ID:References:Subject:Subject:To:To:Message-Id:Reply-To; bh=sLsSNAbocxA7FfWtWJi1H7nkRMzwhj3Hl48hRXnFxLw=; b=j6zi45W9b880KvNAfvRTXRkNFDQDaz7zPngWVlc/zutKq1/TQMENk75C5REIvBAZ/pbZnlpvIoYssLWD4WmWR0UMA0ktWd7wZTuZoZ2C3jSTAGM7chnkcEfeKcug0nB2aw6E6rxyc8UDSHXs//3TfajYsC0dwPb6Bi7JhBaVLXU= 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=fail 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 1745754779471666.3050813075974; Sun, 27 Apr 2025 04:52:59 -0700 (PDT) Received: by lists.libvirt.org (Postfix, from userid 996) id 8492AD48; Sun, 27 Apr 2025 07:52:58 -0400 (EDT) Received: from lists.libvirt.org (localhost [IPv6:::1]) by lists.libvirt.org (Postfix) with ESMTP id 03F21AE2; Sun, 27 Apr 2025 07:48:59 -0400 (EDT) Received: by lists.libvirt.org (Postfix, from userid 996) id B1C21A61; Sun, 27 Apr 2025 07:48:52 -0400 (EDT) Received: from mail-pg1-f181.google.com (mail-pg1-f181.google.com [209.85.215.181]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by lists.libvirt.org (Postfix) with ESMTPS id 7E570A61 for ; Sun, 27 Apr 2025 07:48:42 -0400 (EDT) Received: by mail-pg1-f181.google.com with SMTP id 41be03b00d2f7-af28bc68846so3891318a12.1 for ; Sun, 27 Apr 2025 04:48:42 -0700 (PDT) Received: from honglei-dev.smartx.com ([45.8.186.102]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-22db4d77ab1sm62832315ad.23.2025.04.27.04.48.38 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Sun, 27 Apr 2025 04:48:39 -0700 (PDT) X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on lists.libvirt.org X-Spam-Level: X-Spam-Status: No, score=-1.0 required=5.0 tests=DKIM_SIGNED,DKIM_VALID, HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H3,RCVD_IN_MSPIKE_WL,RCVD_IN_VALIDITY_RPBL_BLOCKED, RCVD_IN_VALIDITY_SAFE_BLOCKED,SPF_HELO_NONE autolearn=unavailable autolearn_force=no version=3.4.4 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=smartx-com.20230601.gappssmtp.com; s=20230601; t=1745754521; x=1746359321; darn=lists.libvirt.org; h=references:in-reply-to:message-id:date:subject:cc:to:from:from:to :cc:subject:date:message-id:reply-to; bh=sLsSNAbocxA7FfWtWJi1H7nkRMzwhj3Hl48hRXnFxLw=; b=kfKyz3b5jV0gRcWR4Mkno6bPIAEtCAl+muzmd/tKn5uje7l/Jl04hsF4/q7XALg9p8 79LC1l+W85jH0VzfT8y/vD58Dl1+ay8KOm6xcX1SGlg+7TTQbVY2Lv6Xs95ss3tfe+oD hYoj6TQYCzMxs4y51xjXxplq04SxsMLFLRoeTpN3rsIa3l1akmIR0KByzOiGUSyYnqUr iuJPMOvQrjQXMPXIOAz/dXOT5d56AALjdlJYL+qPW3ge1qbq9JdeFquND4UN9JylIdFJ f60SpUe4W+JFWfcbi5UGJ0aPt+4v46WBLuRSqVbgcoZPol5eNh3X0Ry7jf2dKZ0XcOAL qG/g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1745754521; x=1746359321; h=references:in-reply-to:message-id:date:subject:cc:to:from :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=sLsSNAbocxA7FfWtWJi1H7nkRMzwhj3Hl48hRXnFxLw=; b=FCJg/SHWkLuR2e5YuVWhQe3ngFXT+8Owmr7GmPpyGjplPXapI7YfEEm3WzfY10vP67 kIqRgoe07p4k7nkfNpPGNXtc5Kd6yaKgVh5l8C/ED8F0W+EwBRpOnjFCdf5IxLnakCVk HDPmILzu0qw4RFy3TFAalSWcNaheZ12uozzSE5OAD9xQhLB5hLpYuopvvOSoK2pMT+CD JidOAxoIB0S7ssnvw8gByCg9Q+sasI1ggROfryvaAKivAkA+cI4R5DDphGn44HLPGKIF btmjE6wUBaHig+I36WSJvmyazIj80txgXO/DwaK4sq8hDG1t3PZghIHJJKO3NXs2Rhtx dHAg== X-Gm-Message-State: AOJu0Yz/ALwn3jtWc7HphuH7rq8fI8d45RIX9f52pkfPU+cUBquRGByA xQ/dQFb3d7nvFyhN3ipvpmBY37K9tw5SdZubJOSHnuHQJDxbGdIDl1p0ii/JibmZK4RQSM/rfT9 bTNZ0MMkT X-Gm-Gg: ASbGncuFiefpGmGD78tuyKA1seNFyohXrDZqTW+ZlZ8gjVgcJfbRwserbxsqHMjplWe JW3bWOwz2wlNOH3RScYSc76vWcw1RWAgIOFydhiadHfaAF+8erZEGIA7PyFFqlvqxmFofx+9EU+ Gsx0/QPWhU/3VH5Xy7h+TEfHRoZzgSYSCD9RQHFV0CsaDq1D3QTJPKQox14d9eRvr191UXQjdU0 +8eZ0VQVsHEC5Ij0DSxgNfXcwj3yIrMR3pCQtVT1KuWFtibmf/cLoeIUEB/VzWeBqor3u3dmy7m DJQNbhITobEPxawJKMu6EN8DaWubS/NltGqZOuEx/FZJ3NcGzD5kjWNFUk0= X-Google-Smtp-Source: AGHT+IFW8MPwqph0jm8srLBLF223DtsfL7feo9csnHM0m6MigFjzCLptPvp7UHvKOVhbrNb6u7HdlA== X-Received: by 2002:a17:90b:3941:b0:2ff:69d4:6fe2 with SMTP id 98e67ed59e1d1-309f7df2d4bmr13258610a91.16.1745754520563; Sun, 27 Apr 2025 04:48:40 -0700 (PDT) From: honglei.wang@smartx.com To: devel@lists.libvirt.org Subject: [PATCHv2 3/5] schema: Add nvme controller and nvme-ns bus defination Date: Sun, 27 Apr 2025 19:48:05 +0800 Message-Id: <20250427114807.4214-4-honglei.wang@smartx.com> X-Mailer: git-send-email 2.11.0 In-Reply-To: <20250427114807.4214-1-honglei.wang@smartx.com> References: <20250427114807.4214-1-honglei.wang@smartx.com> Message-ID-Hash: EK6MNF3LRDXKVQ7FDXZHYEV5J3B72AGQ X-Message-ID-Hash: EK6MNF3LRDXKVQ7FDXZHYEV5J3B72AGQ X-MailFrom: honglei.wang@smartx.com X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; emergency; loop; banned-address; member-moderation; header-match-config-1; header-match-config-2; header-match-config-3; header-match-devel.lists.libvirt.org-0; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; suspicious-header CC: ray X-Mailman-Version: 3.2.2 Precedence: list List-Id: Development discussions about the libvirt library & tools Archived-At: List-Archive: List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-ZohoMail-DKIM: pass (identity @smartx-com.20230601.gappssmtp.com) X-ZM-MESSAGEID: 1745754781562019100 Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" From: ray Signed-off-by: ray --- src/conf/schemas/domaincommon.rng | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/src/conf/schemas/domaincommon.rng b/src/conf/schemas/domaincom= mon.rng index 5597d5a66b..7bdad3c793 100644 --- a/src/conf/schemas/domaincommon.rng +++ b/src/conf/schemas/domaincommon.rng @@ -2518,7 +2518,7 @@ =20 - (ioemu:)?(fd|hd|sd|vd|xvd|ubd)[a-zA-Z0-9_]+<= /param> + (ioemu:)?(fd|hd|sd|vd|xvd|ubd|nvmens)[a-zA-Z= 0-9_]+ =20 @@ -2539,6 +2539,7 @@ uml sata sd + nvme-ns @@ -3044,6 +3045,14 @@ + + + nvme + + + + + --=20 2.11.0 From nobody Fri Dec 19 22:05:20 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=fail(p=none dis=none) header.from=smartx.com ARC-Seal: i=1; a=rsa-sha256; t=1745754806; cv=none; d=zohomail.com; s=zohoarc; b=GDT8yXJmGHWVGPFYEvjDgC6T2R/witH00PsARudesU6v15zcv1PWV1i4m3RPg8Bg/Ja8JlcYU75F4AZQhXqDiGlzfGjzMDY4B2kME9x7vM4SJqABN5LDM4NYS4Yh3RkvP1bxTXHD1c8nHIGxXnGMPrEQb/EJv2VJizCdOzZVlKE= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1745754806; h=Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:Message-ID:References:Subject:Subject:To:To:Message-Id:Reply-To; bh=j53vCjuI7QqpqoU3nrYFT9dUsIhRk2ME60ZWiXwB37o=; b=g6SuzeBK47HEo/+BP5he7elQvovjVTapWuDQaHXPNwgMIdYskZSyTcqiVvJo9E16Cv73qjbOY23aPajDhBe+ERcPX4E4TEuh3zJaag4hRWFim+HwFmfcCVtiOH6hJvZGaUz7rOH1CKKc76XgWLg0yzA/YfT6fuEbTovriHDtx+Y= 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=fail 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 1745754806552645.3495165963261; Sun, 27 Apr 2025 04:53:26 -0700 (PDT) Received: by lists.libvirt.org (Postfix, from userid 996) id 9451BA5A; Sun, 27 Apr 2025 07:53:25 -0400 (EDT) Received: from lists.libvirt.org (localhost [IPv6:::1]) by lists.libvirt.org (Postfix) with ESMTP id DB2ECCA5; Sun, 27 Apr 2025 07:49:05 -0400 (EDT) Received: by lists.libvirt.org (Postfix, from userid 996) id 8D79CB6D; Sun, 27 Apr 2025 07:49:01 -0400 (EDT) Received: from mail-pl1-f171.google.com (mail-pl1-f171.google.com [209.85.214.171]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by lists.libvirt.org (Postfix) with ESMTPS id 43BCEBA5 for ; Sun, 27 Apr 2025 07:48:44 -0400 (EDT) Received: by mail-pl1-f171.google.com with SMTP id d9443c01a7336-22401f4d35aso46294595ad.2 for ; Sun, 27 Apr 2025 04:48:44 -0700 (PDT) Received: from honglei-dev.smartx.com ([45.8.186.102]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-22db4d77ab1sm62832315ad.23.2025.04.27.04.48.40 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Sun, 27 Apr 2025 04:48:41 -0700 (PDT) X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on lists.libvirt.org X-Spam-Level: X-Spam-Status: No, score=-1.0 required=5.0 tests=DKIM_SIGNED,DKIM_VALID, HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H2,RCVD_IN_VALIDITY_RPBL_BLOCKED, RCVD_IN_VALIDITY_SAFE_BLOCKED,SPF_HELO_NONE autolearn=unavailable autolearn_force=no version=3.4.4 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=smartx-com.20230601.gappssmtp.com; s=20230601; t=1745754523; x=1746359323; darn=lists.libvirt.org; h=references:in-reply-to:message-id:date:subject:cc:to:from:from:to :cc:subject:date:message-id:reply-to; bh=j53vCjuI7QqpqoU3nrYFT9dUsIhRk2ME60ZWiXwB37o=; b=mL44R79Uqi4ud8xNc2h15chcHiKAXhfbbEm2HMJ1s5105htwLqCqrYeAQGg9S6zfJz 2Ew0XhcVgKwFbcRu3IoH3n1U6aUWCV0WFOWHLa9nXXEOB0RSFt5XK7G1pC2cqs1T854Y NeFUEL6jRFR1XS6P64zQsuYi/y+lH4FkL/HONJ+Z72SVWEoO+oyLktTOw1k0HSKnThZ0 3yDGf3M72YLtH2Dc9+0p4IhqmrSsxip+vwDzDRTwDf+QGzGmrGeCAzAsTYMH4uMCq8l3 7pnMzVYnnzz9PrlXjDDjMB2lqps7/9CxSbz5ZoPK4ncItMv5qf7RE7W1gK2YNDJhy9On wWfQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1745754523; x=1746359323; h=references:in-reply-to:message-id:date:subject:cc:to:from :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=j53vCjuI7QqpqoU3nrYFT9dUsIhRk2ME60ZWiXwB37o=; b=WeeDKrcfiXdraUTMqzlWuioBfg4q6ZQ88uHRj/96sAVcz8nS3stmBDWmOnWqZNCNzV 1P5LUfO1++aZzOwi5x9AfPT4g8XG5zXldSf4ZB1Ov9M44ns9V1E1KWY35v/H70UQBGX8 K9L2zP0YF96XEqo8Q+BCg1fz74/fM1+AFN1QI7YTE9sV7e2FmbON6M7pSjUQmEMQVm8m S7lQW4r/bALav1Jzbch0k5ZDB0PMd+d73AyAOiRsaX++M/Fi6EjDTgX4TxnBd3+kuF2Y 9n2i1UyR9NyXsXTZPN7k4OHHDDdQKTDVYsnnKuM4qK5LkObgrZKlTlzGrCdReJy9ANAo W57w== X-Gm-Message-State: AOJu0YwTY0Swq0gcfY0VGY7f4FRlmoIN7DRfN8EFiPrvVBl93sSUzGK8 OA880iomShCGGCly4bE/Lm/F+gdSajW1gH+wqTsb0U0ScWCFPp9syLzul7Zs1oAS1r/7BZBWhUg gzwwTEDPZ X-Gm-Gg: ASbGnctJZcfScDaiJ8kxgGR3hqiVbQNRN9/nH0Cf6EFiW5crK5xA4rcjQjAxuJ9YPWW bznRXlI1DH6SpplvlU4o77N+gx6ViSTaxUMyvnIW9UkiUlpUcgU3Bz7lXDjnVtLbf571qKbmFHM 608nmLaO0DwpJKukIrIKq51WiM7M2G0Nip+X7GEOY1NBXYoygJde3FcQdOnl24+EI18CgSo41n1 /HywGzOvHWbRQfynJAlF0ABQ9BykyTOzY1gEaj/GKmiAnMPlhTwlpH9lnQOODXfGHJ4gdMSWLYr dVeLPkEj5xWjJ2gB+BwclTQG7loH07gkhHqnvmyoJIOgn2D8xEUwxh4ad7xaumbJK1xrjg== X-Google-Smtp-Source: AGHT+IEvke2cS0mJGVg7iW05XHxGfQMvjQycmRES3/CHPT95CG8gbIz8XT72IcALZrn/qwMERJXJ+g== X-Received: by 2002:a17:903:1b68:b0:224:c76:5e56 with SMTP id d9443c01a7336-22dbf5f6c35mr110561125ad.27.1745754522235; Sun, 27 Apr 2025 04:48:42 -0700 (PDT) From: honglei.wang@smartx.com To: devel@lists.libvirt.org Subject: [PATCHv2 4/5] tests: Add test case for nvme-ns device configuration Date: Sun, 27 Apr 2025 19:48:06 +0800 Message-Id: <20250427114807.4214-5-honglei.wang@smartx.com> X-Mailer: git-send-email 2.11.0 In-Reply-To: <20250427114807.4214-1-honglei.wang@smartx.com> References: <20250427114807.4214-1-honglei.wang@smartx.com> Message-ID-Hash: OVELDBEK3PKMJLO4WS5W55NAS36B53R7 X-Message-ID-Hash: OVELDBEK3PKMJLO4WS5W55NAS36B53R7 X-MailFrom: honglei.wang@smartx.com X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; emergency; loop; banned-address; member-moderation; header-match-config-1; header-match-config-2; header-match-config-3; header-match-devel.lists.libvirt.org-0; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; suspicious-header CC: ray X-Mailman-Version: 3.2.2 Precedence: list List-Id: Development discussions about the libvirt library & tools Archived-At: List-Archive: List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-ZohoMail-DKIM: pass (identity @smartx-com.20230601.gappssmtp.com) X-ZM-MESSAGEID: 1745754809776019100 Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" From: ray Signed-off-by: ray --- .../disk-nvme-ns-device.x86_64-latest.args | 36 +++++++++++++++++++ .../disk-nvme-ns-device.x86_64-latest.xml | 42 ++++++++++++++++++= ++++ tests/qemuxmlconfdata/disk-nvme-ns-device.xml | 41 ++++++++++++++++++= +++ tests/qemuxmlconftest.c | 1 + 4 files changed, 120 insertions(+) create mode 100644 tests/qemuxmlconfdata/disk-nvme-ns-device.x86_64-latest= .args create mode 100644 tests/qemuxmlconfdata/disk-nvme-ns-device.x86_64-latest= .xml create mode 100644 tests/qemuxmlconfdata/disk-nvme-ns-device.xml diff --git a/tests/qemuxmlconfdata/disk-nvme-ns-device.x86_64-latest.args b= /tests/qemuxmlconfdata/disk-nvme-ns-device.x86_64-latest.args new file mode 100644 index 0000000000..d5971a4407 --- /dev/null +++ b/tests/qemuxmlconfdata/disk-nvme-ns-device.x86_64-latest.args @@ -0,0 +1,36 @@ +LC_ALL=3DC \ +PATH=3D/bin \ +HOME=3D/var/lib/libvirt/qemu/domain--1-QEMUGuest1 \ +USER=3Dtest \ +LOGNAME=3Dtest \ +XDG_DATA_HOME=3D/var/lib/libvirt/qemu/domain--1-QEMUGuest1/.local/share \ +XDG_CACHE_HOME=3D/var/lib/libvirt/qemu/domain--1-QEMUGuest1/.cache \ +XDG_CONFIG_HOME=3D/var/lib/libvirt/qemu/domain--1-QEMUGuest1/.config \ +/usr/bin/qemu-system-x86_64 \ +-name guest=3DQEMUGuest1,debug-threads=3Don \ +-S \ +-object '{"qom-type":"secret","id":"masterKey0","format":"raw","file":"/va= r/lib/libvirt/qemu/domain--1-QEMUGuest1/master-key.aes"}' \ +-machine pc,usb=3Doff,dump-guest-core=3Doff,memory-backend=3Dpc.ram,acpi= =3Doff \ +-accel tcg \ +-cpu qemu64 \ +-m size=3D219136k \ +-object '{"qom-type":"memory-backend-ram","id":"pc.ram","size":224395264}'= \ +-overcommit mem-lock=3Doff \ +-smp 1,sockets=3D1,cores=3D1,threads=3D1 \ +-uuid c7a5fdbd-edaf-9455-926a-d65c16db1809 \ +-display none \ +-no-user-config \ +-nodefaults \ +-chardev socket,id=3Dcharmonitor,fd=3D1729,server=3Don,wait=3Doff \ +-mon chardev=3Dcharmonitor,id=3Dmonitor,mode=3Dcontrol \ +-rtc base=3Dutc \ +-no-shutdown \ +-boot strict=3Don \ +-device '{"driver":"piix3-usb-uhci","id":"usb","bus":"pci.0","addr":"0x1.0= x2"}' \ +-device '{"driver":"virtio-scsi-pci","id":"scsi0","bus":"pci.0","addr":"0x= 3"}' \ +-device '{"driver":"nvme","id":"nvme0","serial":"nvme-controller-abcdef","= bus":"pci.0","addr":"0x5"}' \ +-blockdev '{"driver":"file","filename":"/tmp/data-1.img","node-name":"libv= irt-1-storage","read-only":false}' \ +-device '{"driver":"nvme-ns","bus":"nvme0","drive":"libvirt-1-storage","id= ":"nvme-ns0-0-0","bootindex":1}' \ +-audiodev '{"id":"audio1","driver":"none"}' \ +-sandbox on,obsolete=3Ddeny,elevateprivileges=3Ddeny,spawn=3Ddeny,resource= control=3Ddeny \ +-msg timestamp=3Don diff --git a/tests/qemuxmlconfdata/disk-nvme-ns-device.x86_64-latest.xml b/= tests/qemuxmlconfdata/disk-nvme-ns-device.x86_64-latest.xml new file mode 100644 index 0000000000..6074ede8fd --- /dev/null +++ b/tests/qemuxmlconfdata/disk-nvme-ns-device.x86_64-latest.xml @@ -0,0 +1,42 @@ + + QEMUGuest1 + c7a5fdbd-edaf-9455-926a-d65c16db1809 + 219136 + 219136 + 1 + + hvm + + + + qemu64 + + + destroy + restart + destroy + + /usr/bin/qemu-system-x86_64 + + + + +
+ + +
+ + + +
+ + + nvme-controller-abcdef +
+ + + +