I took the liberty of adjusting Hongwei's QEMU series and made further
adjustments so that the common code can be used for reporting NVMe disks from
VMX as well. I added SoBs where I thought applicable, but feel free to correct
me and/or agree with me.
This series fixes
https://issues.redhat.com/browse/RHEL-7390 in the middle, but
adds more than just that.
Martin Kletzander (11):
docs, conf, schemas: Add support for NVMe controller
util: Add support for parsing nvmeXnY(pZ) strings
conf: Add virDomainDeviceFindNvmeController
docs, conf, schemas: Add support for NVMe disks
vmx: Add support for NVMe disks
qemu_capabilities: Add NVMe controller and disk capabilities
qemu_capabilities: Add emulated NVMe disk support to domain
capabilities
qemu: Add support for NVMe controllers
qemu: Add support for emulated NVMe disks
NEWS: vmx support for NVMe disks
NEWS: qemu support for emulated NVMe disks
NEWS.rst | 15 +++
docs/formatdomain.rst | 19 +++-
src/bhyve/bhyve_command.c | 1 +
src/conf/domain_conf.c | 96 ++++++++++++++++-
src/conf/domain_conf.h | 10 ++
src/conf/domain_postparse.c | 2 +
src/conf/domain_validate.c | 4 +-
src/conf/schemas/domaincommon.rng | 22 +++-
src/conf/virconftypes.h | 2 +
src/hyperv/hyperv_driver.c | 2 +
src/libxl/libxl_driver.c | 2 +-
src/qemu/qemu_alias.c | 1 +
src/qemu/qemu_capabilities.c | 7 ++
src/qemu/qemu_capabilities.h | 2 +
src/qemu/qemu_command.c | 33 +++++-
src/qemu/qemu_domain_address.c | 5 +
src/qemu/qemu_hotplug.c | 10 +-
src/qemu/qemu_postparse.c | 1 +
src/qemu/qemu_validate.c | 65 ++++++++++--
src/test/test_driver.c | 2 +
src/util/virutil.c | 94 ++++++++++++++--
src/util/virutil.h | 7 +-
src/vbox/vbox_common.c | 4 +-
src/vmx/vmx.c | 85 ++++++++++++++-
src/vz/vz_sdk.c | 6 +-
.../qemu_10.0.0-q35.x86_64+amdsev.xml | 1 +
.../domaincapsdata/qemu_10.0.0-q35.x86_64.xml | 1 +
.../qemu_10.0.0-tcg.x86_64+amdsev.xml | 1 +
.../domaincapsdata/qemu_10.0.0-tcg.x86_64.xml | 1 +
.../qemu_10.0.0-virt.aarch64.xml | 1 +
tests/domaincapsdata/qemu_10.0.0.aarch64.xml | 1 +
tests/domaincapsdata/qemu_10.0.0.ppc64.xml | 1 +
tests/domaincapsdata/qemu_10.0.0.s390x.xml | 1 +
.../qemu_10.0.0.x86_64+amdsev.xml | 1 +
tests/domaincapsdata/qemu_10.0.0.x86_64.xml | 1 +
.../domaincapsdata/qemu_6.2.0-q35.x86_64.xml | 1 +
.../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 +
.../domaincapsdata/qemu_7.0.0-q35.x86_64.xml | 1 +
.../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 +
.../domaincapsdata/qemu_7.1.0-q35.x86_64.xml | 1 +
.../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 +
.../qemu_7.2.0-hvf.x86_64+hvf.xml | 1 +
.../domaincapsdata/qemu_7.2.0-q35.x86_64.xml | 1 +
.../qemu_7.2.0-tcg.x86_64+hvf.xml | 1 +
.../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 +
.../domaincapsdata/qemu_8.0.0-q35.x86_64.xml | 1 +
.../domaincapsdata/qemu_8.0.0-tcg.x86_64.xml | 1 +
tests/domaincapsdata/qemu_8.0.0.x86_64.xml | 1 +
.../domaincapsdata/qemu_8.1.0-q35.x86_64.xml | 1 +
.../domaincapsdata/qemu_8.1.0-tcg.x86_64.xml | 1 +
tests/domaincapsdata/qemu_8.1.0.x86_64.xml | 1 +
.../domaincapsdata/qemu_8.2.0-q35.x86_64.xml | 1 +
.../qemu_8.2.0-tcg-virt.loongarch64.xml | 1 +
.../domaincapsdata/qemu_8.2.0-tcg.x86_64.xml | 1 +
.../qemu_8.2.0-virt.aarch64.xml | 1 +
.../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 +
.../domaincapsdata/qemu_9.0.0-q35.x86_64.xml | 1 +
.../domaincapsdata/qemu_9.0.0-tcg.x86_64.xml | 1 +
tests/domaincapsdata/qemu_9.0.0.x86_64.xml | 1 +
.../domaincapsdata/qemu_9.1.0-q35.x86_64.xml | 1 +
.../qemu_9.1.0-tcg-virt.riscv64.xml | 1 +
.../domaincapsdata/qemu_9.1.0-tcg.x86_64.xml | 1 +
.../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 +
.../qemu_9.2.0-hvf.aarch64+hvf.xml | 1 +
.../qemu_9.2.0-q35.x86_64+amdsev.xml | 1 +
.../domaincapsdata/qemu_9.2.0-q35.x86_64.xml | 1 +
.../qemu_9.2.0-tcg.x86_64+amdsev.xml | 1 +
.../domaincapsdata/qemu_9.2.0-tcg.x86_64.xml | 1 +
tests/domaincapsdata/qemu_9.2.0.s390x.xml | 1 +
.../qemu_9.2.0.x86_64+amdsev.xml | 1 +
tests/domaincapsdata/qemu_9.2.0.x86_64.xml | 1 +
.../genericxml2xmlindata/controller-nvme.xml | 21 ++++
.../disk-nvme-invalid-serials.xml | 29 +++++
tests/genericxml2xmlindata/disk-nvme.xml | 32 ++++++
tests/genericxml2xmloutdata/disk-nvme.xml | 38 +++++++
tests/genericxml2xmltest.c | 4 +
.../caps_10.0.0_aarch64.xml | 2 +
.../caps_10.0.0_ppc64.xml | 2 +
.../caps_10.0.0_s390x.xml | 2 +
.../caps_10.0.0_x86_64+amdsev.xml | 2 +
.../caps_10.0.0_x86_64.xml | 2 +
.../qemucapabilitiesdata/caps_6.2.0_ppc64.xml | 2 +
.../caps_6.2.0_x86_64.xml | 2 +
.../qemucapabilitiesdata/caps_7.0.0_ppc64.xml | 2 +
.../caps_7.0.0_x86_64.xml | 2 +
.../qemucapabilitiesdata/caps_7.1.0_ppc64.xml | 2 +
.../caps_7.1.0_x86_64.xml | 2 +
tests/qemucapabilitiesdata/caps_7.2.0_ppc.xml | 2 +
.../caps_7.2.0_x86_64+hvf.xml | 2 +
.../caps_7.2.0_x86_64.xml | 2 +
.../caps_8.0.0_x86_64.xml | 2 +
.../caps_8.1.0_x86_64.xml | 2 +
.../caps_8.2.0_aarch64.xml | 2 +
.../caps_8.2.0_armv7l.xml | 2 +
.../caps_8.2.0_loongarch64.xml | 2 +
.../qemucapabilitiesdata/caps_8.2.0_s390x.xml | 2 +
.../caps_8.2.0_x86_64.xml | 2 +
.../caps_9.0.0_x86_64.xml | 2 +
.../caps_9.1.0_riscv64.xml | 2 +
.../qemucapabilitiesdata/caps_9.1.0_s390x.xml | 2 +
.../caps_9.1.0_x86_64.xml | 2 +
.../caps_9.2.0_aarch64+hvf.xml | 2 +
.../qemucapabilitiesdata/caps_9.2.0_s390x.xml | 2 +
.../caps_9.2.0_x86_64+amdsev.xml | 2 +
.../caps_9.2.0_x86_64.xml | 2 +
.../disk-target-nvme.x86_64-latest.args | 39 +++++++
.../disk-target-nvme.x86_64-latest.xml | 53 ++++++++++
tests/qemuxmlconfdata/disk-target-nvme.xml | 32 ++++++
tests/qemuxmlconftest.c | 1 +
tests/utiltest.c | 38 ++++---
tests/vmx2xmldata/esx-in-the-wild-15.vmx | 100 ++++++++++++++++++
tests/vmx2xmldata/esx-in-the-wild-15.xml | 45 ++++++++
tests/vmx2xmldata/esx-in-the-wild-16.vmx | 91 ++++++++++++++++
tests/vmx2xmldata/esx-in-the-wild-16.xml | 37 +++++++
tests/vmx2xmltest.c | 2 +
129 files changed, 1128 insertions(+), 49 deletions(-)
create mode 100644 tests/genericxml2xmlindata/controller-nvme.xml
create mode 100644 tests/genericxml2xmlindata/disk-nvme-invalid-serials.xml
create mode 100644 tests/genericxml2xmlindata/disk-nvme.xml
create mode 100644 tests/genericxml2xmloutdata/disk-nvme.xml
create mode 100644 tests/qemuxmlconfdata/disk-target-nvme.x86_64-latest.args
create mode 100644 tests/qemuxmlconfdata/disk-target-nvme.x86_64-latest.xml
create mode 100644 tests/qemuxmlconfdata/disk-target-nvme.xml
create mode 100644 tests/vmx2xmldata/esx-in-the-wild-15.vmx
create mode 100644 tests/vmx2xmldata/esx-in-the-wild-15.xml
create mode 100644 tests/vmx2xmldata/esx-in-the-wild-16.vmx
create mode 100644 tests/vmx2xmldata/esx-in-the-wild-16.xml
--
2.49.0