]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
qemu_capabilities: Add NVMe controller and disk capabilities
authorMartin Kletzander <mkletzan@redhat.com>
Tue, 27 May 2025 10:44:41 +0000 (12:44 +0200)
committerMartin Kletzander <mkletzan@redhat.com>
Mon, 9 Jun 2025 13:12:41 +0000 (15:12 +0200)
The "nvme" device is the controller and "nvme-ns" are the
namespaces (individual disks) plugged into it.

Signed-off-by: Martin Kletzander <mkletzan@redhat.com>
Signed-off-by: Honglei Wang <honglei.wang@smartx.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
31 files changed:
src/qemu/qemu_capabilities.c
src/qemu/qemu_capabilities.h
tests/qemucapabilitiesdata/caps_10.0.0_aarch64.xml
tests/qemucapabilitiesdata/caps_10.0.0_ppc64.xml
tests/qemucapabilitiesdata/caps_10.0.0_s390x.xml
tests/qemucapabilitiesdata/caps_10.0.0_x86_64+amdsev.xml
tests/qemucapabilitiesdata/caps_10.0.0_x86_64.xml
tests/qemucapabilitiesdata/caps_6.2.0_ppc64.xml
tests/qemucapabilitiesdata/caps_6.2.0_x86_64.xml
tests/qemucapabilitiesdata/caps_7.0.0_ppc64.xml
tests/qemucapabilitiesdata/caps_7.0.0_x86_64.xml
tests/qemucapabilitiesdata/caps_7.1.0_ppc64.xml
tests/qemucapabilitiesdata/caps_7.1.0_x86_64.xml
tests/qemucapabilitiesdata/caps_7.2.0_ppc.xml
tests/qemucapabilitiesdata/caps_7.2.0_x86_64+hvf.xml
tests/qemucapabilitiesdata/caps_7.2.0_x86_64.xml
tests/qemucapabilitiesdata/caps_8.0.0_x86_64.xml
tests/qemucapabilitiesdata/caps_8.1.0_x86_64.xml
tests/qemucapabilitiesdata/caps_8.2.0_aarch64.xml
tests/qemucapabilitiesdata/caps_8.2.0_armv7l.xml
tests/qemucapabilitiesdata/caps_8.2.0_loongarch64.xml
tests/qemucapabilitiesdata/caps_8.2.0_s390x.xml
tests/qemucapabilitiesdata/caps_8.2.0_x86_64.xml
tests/qemucapabilitiesdata/caps_9.0.0_x86_64.xml
tests/qemucapabilitiesdata/caps_9.1.0_riscv64.xml
tests/qemucapabilitiesdata/caps_9.1.0_s390x.xml
tests/qemucapabilitiesdata/caps_9.1.0_x86_64.xml
tests/qemucapabilitiesdata/caps_9.2.0_aarch64+hvf.xml
tests/qemucapabilitiesdata/caps_9.2.0_s390x.xml
tests/qemucapabilitiesdata/caps_9.2.0_x86_64+amdsev.xml
tests/qemucapabilitiesdata/caps_9.2.0_x86_64.xml

index 8ba528fc076577497ff12ff116a22a3ba08e6017..16927e54bc75b1bed0a672732c2181b121b292df 100644 (file)
@@ -734,6 +734,8 @@ VIR_ENUM_IMPL(virQEMUCaps,
               "virtio-scsi.iothread-mapping", /* QEMU_CAPS_VIRTIO_SCSI_IOTHREAD_MAPPING */
               "machine.virt.highmem-mmio-size", /* QEMU_CAPS_MACHINE_VIRT_HIGHMEM_MMIO_SIZE */
               "bus-floppy", /* QEMU_CAPS_BUS_FLOPPY */
+              "nvme", /* QEMU_CAPS_DEVICE_NVME */
+              "nvme-ns", /* QEMU_CAPS_DEVICE_NVME_NS */
     );
 
 
@@ -1423,6 +1425,8 @@ struct virQEMUCapsStringFlags virQEMUCapsObjectTypes[] = {
     { "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", QEMU_CAPS_DEVICE_NVME },
+    { "nvme-ns", QEMU_CAPS_DEVICE_NVME_NS },
 };
 
 
index 1e7e4faa9b7d750afc43ebfd8a6f4dff6d5c6fc3..3c3d12159f66da77864eab62ab3138afc9e27360 100644 (file)
@@ -715,6 +715,8 @@ typedef enum { /* virQEMUCapsFlags grouping marker for syntax-check */
     QEMU_CAPS_VIRTIO_SCSI_IOTHREAD_MAPPING, /* virtio-scsi supports per-virtqueue iothread mapping */
     QEMU_CAPS_MACHINE_VIRT_HIGHMEM_MMIO_SIZE, /* -machine virt,highmem-mmio-size=<size> */
     QEMU_CAPS_BUS_FLOPPY, /* floppy bus supported (isa-fdc/sysbus-fdc) */
+    QEMU_CAPS_DEVICE_NVME, /* -device nvme */
+    QEMU_CAPS_DEVICE_NVME_NS, /* -device nvme-ns */
 
     QEMU_CAPS_LAST /* this must always be the last item */
 } virQEMUCapsFlags;
index 7fd50185575a614ca5aec73f126b8401d35398b9..95752eb22341cf9bf91c23740b2660b9495cc124 100644 (file)
   <flag name='shim'/>
   <flag name='virtio-scsi.iothread-mapping'/>
   <flag name='machine.virt.highmem-mmio-size'/>
+  <flag name='nvme'/>
+  <flag name='nvme-ns'/>
   <version>10000000</version>
   <microcodeVersion>61700285</microcodeVersion>
   <package>v10.0.0</package>
index 967b5e0cbc55680320e4895aecd9fc2c4b43557a..12afb64af81d9bdd0debb3e3d7e69f0d8d319402 100644 (file)
   <flag name='shim'/>
   <flag name='virtio-scsi.iothread-mapping'/>
   <flag name='bus-floppy'/>
+  <flag name='nvme'/>
+  <flag name='nvme-ns'/>
   <version>10000000</version>
   <microcodeVersion>42900285</microcodeVersion>
   <package>v10.0.0</package>
index 17b516b03c956d2e69b834f223fbfea7f0c2e8d4..032b527188a8accd1c2ed7f4c940180fc3a58dce 100644 (file)
   <flag name='blockdev-set-active'/>
   <flag name='shim'/>
   <flag name='virtio-scsi.iothread-mapping'/>
+  <flag name='nvme'/>
+  <flag name='nvme-ns'/>
   <version>10000000</version>
   <microcodeVersion>39100285</microcodeVersion>
   <package>v10.0.0</package>
index 8da17978fbe4e2743511c773cce4c64cd3215bb2..ec79c6d4b1b45f5bda4b742e41081878144753a2 100644 (file)
   <flag name='shim'/>
   <flag name='virtio-scsi.iothread-mapping'/>
   <flag name='bus-floppy'/>
+  <flag name='nvme'/>
+  <flag name='nvme-ns'/>
   <version>10000000</version>
   <microcodeVersion>43100285</microcodeVersion>
   <package>v10.0.0</package>
index 09332805f2681a3a9d97bcfba65e75bdc98bebfb..014aca00326ba26359d5730e5890e868e290b774 100644 (file)
   <flag name='shim'/>
   <flag name='virtio-scsi.iothread-mapping'/>
   <flag name='bus-floppy'/>
+  <flag name='nvme'/>
+  <flag name='nvme-ns'/>
   <version>10000000</version>
   <microcodeVersion>43100285</microcodeVersion>
   <package>v10.0.0</package>
index bbd4e7972a842a434d791054447273162333c92f..7f4633eb36e59b472eb3e841ca8ad1dac0ef9886 100644 (file)
   <flag name='usb-mtp'/>
   <flag name='netdev.user'/>
   <flag name='bus-floppy'/>
+  <flag name='nvme'/>
+  <flag name='nvme-ns'/>
   <version>6002000</version>
   <microcodeVersion>42900244</microcodeVersion>
   <package>v6.2.0</package>
index e638778ae4f1bf894203a7cab3854ea729dfa118..e894479a61fac694495b10667bb4453c62d9af55 100644 (file)
   <flag name='usb-mtp'/>
   <flag name='netdev.user'/>
   <flag name='bus-floppy'/>
+  <flag name='nvme'/>
+  <flag name='nvme-ns'/>
   <version>6002000</version>
   <microcodeVersion>43100244</microcodeVersion>
   <package>v6.2.0</package>
index 5a277432ad9b6354dd4a0a7d55693a52bbf90708..f57e72c3a1ee0119b03792a266edfdaf6c0ef8f4 100644 (file)
   <flag name='netdev.user'/>
   <flag name='acpi-erst'/>
   <flag name='bus-floppy'/>
+  <flag name='nvme'/>
+  <flag name='nvme-ns'/>
   <version>7000000</version>
   <microcodeVersion>42900243</microcodeVersion>
   <package>v7.0.0</package>
index 74f2d2772e69738c330d36fc6c410d3b7922ae79..0556d930d1cab37332242bf25037248399b24569 100644 (file)
   <flag name='acpi-erst'/>
   <flag name='machine-i8042-opt'/>
   <flag name='bus-floppy'/>
+  <flag name='nvme'/>
+  <flag name='nvme-ns'/>
   <version>7000000</version>
   <microcodeVersion>43100243</microcodeVersion>
   <package>v7.0.0</package>
index 5ad6f203951f37f2b256870ab3a0e82cbba40d0d..2f1996189dcb509e9fc62a0a7b41fe06fb34a22f 100644 (file)
   <flag name='netdev.user'/>
   <flag name='acpi-erst'/>
   <flag name='bus-floppy'/>
+  <flag name='nvme'/>
+  <flag name='nvme-ns'/>
   <version>7001000</version>
   <microcodeVersion>42900244</microcodeVersion>
   <package>v7.1.0</package>
index 750f9920921eab675f9a45a42fbacf8a4f8b7fe6..481634cb68c2d2a0a5d4b89f8d68ff2d6cdf3fdf 100644 (file)
   <flag name='intel-iommu.dma-translation'/>
   <flag name='machine-i8042-opt'/>
   <flag name='bus-floppy'/>
+  <flag name='nvme'/>
+  <flag name='nvme-ns'/>
   <version>7001000</version>
   <microcodeVersion>43100244</microcodeVersion>
   <package>v7.1.0</package>
index 8166b37514c13aa65b73c614a4b4f218ac1b8c7f..615dce08af97593d50b538b2fc19954808cf4b2c 100644 (file)
   <flag name='netdev.user'/>
   <flag name='acpi-erst'/>
   <flag name='bus-floppy'/>
+  <flag name='nvme'/>
+  <flag name='nvme-ns'/>
   <version>7002000</version>
   <microcodeVersion>0</microcodeVersion>
   <package>qemu-7.2.0-6.fc37</package>
index 942484e85cd6f83ac26f298ea603ff18e1a753fc..570b3a5758e043aa3576e550354ff27c5d6c1380 100644 (file)
   <flag name='intel-iommu.dma-translation'/>
   <flag name='machine-i8042-opt'/>
   <flag name='bus-floppy'/>
+  <flag name='nvme'/>
+  <flag name='nvme-ns'/>
   <version>7002000</version>
   <microcodeVersion>43100245</microcodeVersion>
   <package>v7.2.0</package>
index a40383c637f3dd79056451e5f18ad4d94bad1c82..2ee28761acf0514518b5ea4134d5f380515c0a14 100644 (file)
   <flag name='intel-iommu.dma-translation'/>
   <flag name='machine-i8042-opt'/>
   <flag name='bus-floppy'/>
+  <flag name='nvme'/>
+  <flag name='nvme-ns'/>
   <version>7002000</version>
   <microcodeVersion>43100245</microcodeVersion>
   <package>v7.2.0</package>
index 7a7e567f35e55b9637438966a9bad6d854a606b9..b09ec334e3d5b2f42f9e252d968428f57d1c2214 100644 (file)
   <flag name='intel-iommu.dma-translation'/>
   <flag name='machine-i8042-opt'/>
   <flag name='bus-floppy'/>
+  <flag name='nvme'/>
+  <flag name='nvme-ns'/>
   <version>8000000</version>
   <microcodeVersion>43100244</microcodeVersion>
   <package>v8.0.0</package>
index b9c3952c480ee415c77d8c715006b0ebccc10737..7c4602aa7793e66dd1a9fb21382644edc81fae22 100644 (file)
   <flag name='intel-iommu.dma-translation'/>
   <flag name='machine-i8042-opt'/>
   <flag name='bus-floppy'/>
+  <flag name='nvme'/>
+  <flag name='nvme-ns'/>
   <version>8001000</version>
   <microcodeVersion>43100245</microcodeVersion>
   <package>v8.1.0</package>
index 837502c336aae09716556d10ae2b5fd0b6b609bf..e8c6201ec2327719345c5c77d8144c7a8579d8f2 100644 (file)
   <flag name='virtio-sound'/>
   <flag name='netdev.user'/>
   <flag name='acpi-erst'/>
+  <flag name='nvme'/>
+  <flag name='nvme-ns'/>
   <version>8002000</version>
   <microcodeVersion>61700246</microcodeVersion>
   <package>v8.2.0</package>
index f062f31abcad6c8112106842943d8232e2d040ba..96d602753dc0140165dabf26e60a33c26463f153 100644 (file)
   <flag name='virtio-sound'/>
   <flag name='netdev.user'/>
   <flag name='acpi-erst'/>
+  <flag name='nvme'/>
+  <flag name='nvme-ns'/>
   <version>8002000</version>
   <microcodeVersion>0</microcodeVersion>
   <package>qemu-8.2.0-7.fc39</package>
index 2a376313818c98139928bbf6b154c6b24b8634da..ba8eaa2fe176015f8afb414f07a371d888fe8ebc 100644 (file)
   <flag name='virtio-sound'/>
   <flag name='netdev.user'/>
   <flag name='acpi-erst'/>
+  <flag name='nvme'/>
+  <flag name='nvme-ns'/>
   <version>8002000</version>
   <microcodeVersion>106300246</microcodeVersion>
   <package>v8.2.0</package>
index 086fa2c7150a669c27b65bbf58c0341b247d616a..37e98624ed107a6b09f74f3114cc30fcec0ca761 100644 (file)
   <flag name='usb-mtp'/>
   <flag name='virtio-sound'/>
   <flag name='netdev.user'/>
+  <flag name='nvme'/>
+  <flag name='nvme-ns'/>
   <version>8002000</version>
   <microcodeVersion>39100246</microcodeVersion>
   <package>v8.2.0</package>
index 669c9a23048f899eb6d4049c160a1b79b0f6953e..93ab4bd2b9ce44c666adac98bad76ae0a1b2e9f5 100644 (file)
   <flag name='intel-iommu.dma-translation'/>
   <flag name='machine-i8042-opt'/>
   <flag name='bus-floppy'/>
+  <flag name='nvme'/>
+  <flag name='nvme-ns'/>
   <version>8002000</version>
   <microcodeVersion>43100246</microcodeVersion>
   <package>v8.2.0</package>
index b7bd10271a4b099b711c62e22d7c26926ecb41ee..009d14a4a8f897310e8748825dc39b89d90cf60e 100644 (file)
   <flag name='intel-iommu.dma-translation'/>
   <flag name='machine-i8042-opt'/>
   <flag name='bus-floppy'/>
+  <flag name='nvme'/>
+  <flag name='nvme-ns'/>
   <version>9000000</version>
   <microcodeVersion>43100245</microcodeVersion>
   <package>v9.0.0</package>
index 3b1445718a8b17389ed1390a75d3e9af4ad35672..5833e4b2697832168b18641722f20e0294f23206 100644 (file)
   <flag name='acpi-erst'/>
   <flag name='migrate-incoming.exit-on-error'/>
   <flag name='machine.virt.aia'/>
+  <flag name='nvme'/>
+  <flag name='nvme-ns'/>
   <version>9001000</version>
   <microcodeVersion>0</microcodeVersion>
   <package>v9.1.0</package>
index 0d566d13d52797a800e46edf7f82df8ec5c5566f..c2f2377b8c36fdf4c76d3e0117756813eba78367 100644 (file)
   <flag name='netdev.user'/>
   <flag name='query-cpu-model-expansion.deprecated-props'/>
   <flag name='migrate-incoming.exit-on-error'/>
+  <flag name='nvme'/>
+  <flag name='nvme-ns'/>
   <version>9001000</version>
   <microcodeVersion>39100246</microcodeVersion>
   <package>v9.1.0</package>
index aed9ba65646df2f2383f2cb2af51127bcfa496de..e6ef686d3db0eb9c4b37b3a899a6ad7ccec4e32a 100644 (file)
   <flag name='machine-i8042-opt'/>
   <flag name='migrate-incoming.exit-on-error'/>
   <flag name='bus-floppy'/>
+  <flag name='nvme'/>
+  <flag name='nvme-ns'/>
   <version>9001000</version>
   <microcodeVersion>43100246</microcodeVersion>
   <package>v9.1.0</package>
index ac25159eff75609bb108f7a69eab1f7566733ace..179958d331f89ea00246c2a338f3d58c728b8841 100644 (file)
   <flag name='chardev-reconnect-miliseconds'/>
   <flag name='netdev-stream-reconnect-miliseconds'/>
   <flag name='migrate-incoming.exit-on-error'/>
+  <flag name='nvme'/>
+  <flag name='nvme-ns'/>
   <version>9002002</version>
   <microcodeVersion>61700247</microcodeVersion>
   <package></package>
index e1323f9b729110388610438da5b6e0f57754f67a..5bc535a4d17202f5b1099706275ae107bbf5e98d 100644 (file)
   <flag name='netdev-stream-reconnect-miliseconds'/>
   <flag name='query-cpu-model-expansion.deprecated-props'/>
   <flag name='migrate-incoming.exit-on-error'/>
+  <flag name='nvme'/>
+  <flag name='nvme-ns'/>
   <version>9002000</version>
   <microcodeVersion>39100247</microcodeVersion>
   <package>v9.2.0</package>
index 96426a28a753fc5d5150e28c0edf6256d9eaf2e4..bd11b702e4456ad338b9e625af1dfab89162ae4e 100644 (file)
   <flag name='netdev-stream-reconnect-miliseconds'/>
   <flag name='migrate-incoming.exit-on-error'/>
   <flag name='bus-floppy'/>
+  <flag name='nvme'/>
+  <flag name='nvme-ns'/>
   <version>9002000</version>
   <microcodeVersion>43100247</microcodeVersion>
   <package>v9.2.0</package>
index adb9202ff2e327394f08a0e4b089a1ee13fc6627..2db0672110e9ee6b18ca1243c8a6b060c1ca7054 100644 (file)
   <flag name='netdev-stream-reconnect-miliseconds'/>
   <flag name='migrate-incoming.exit-on-error'/>
   <flag name='bus-floppy'/>
+  <flag name='nvme'/>
+  <flag name='nvme-ns'/>
   <version>9002000</version>
   <microcodeVersion>43100247</microcodeVersion>
   <package>v9.2.0</package>