[libvirt] [PATCH v3 00/30] Introduce NVMe support

Michal Privoznik mprivozn at redhat.com
Mon Dec 2 14:26:23 UTC 2019


v3 of:

https://www.redhat.com/archives/libvir-list/2019-September/msg01209.html

Builds just fine ;-)

https://travis-ci.org/zippy2/libvirt/builds/619622349

diff to v2:
- Fixed bug reported by Cole - unability to plug regular <hostdev/>-s
  caused by v2.

Michal Prívozník (30):
  qemu: Explicitly add/remove /dev/vfio/vfio to/from NS/CGroups
  qemuDomainGetHostdevPath: Use more g_autoptr()/g_autofree
  qemuDomainGetHostdevPath: Don't include /dev/vfio/vfio in returned
    paths
  qemu: Drop some 'cleanup' labels
  virpci: Introduce and use virPCIDeviceAddressGetIOMMUGroupDev
  virHostdevPreparePCIDevices: Separate out function body
  virHostdevReAttachPCIDevices: Separate out function body
  virpci: Introduce virPCIDeviceAddressCopy
  qemuMigrationSrcIsSafe: Rework slightly
  schemas: Introduce disk type NVMe
  conf: Format and parse NVMe type disk
  virstoragefile: Introduce virStorageSourceChainHasNVMe
  domain_conf: Introduce virDomainDefHasNVMeDisk
  util: Introduce virNVMeDevice module
  virhostdev: Include virNVMeDevice module
  virpcimock: Introduce NVMe driver and devices
  virhostdevtest: Test virNVMeDevice assignment
  qemu: prepare NVMe devices too
  qemu: Take NVMe disks into account when calculating memlock limit
  qemu: Create NVMe disk in domain namespace
  qemu: Mark NVMe disks as 'need VFIO'
  qemu: Allow NVMe disk in CGroups
  virSecuritySELinuxRestoreImageLabelInt: Don't skip non-local storage
  qemu_capabilities: Introduce QEMU_CAPS_DRIVE_NVME
  qemu: Generate command line of NVMe disks
  qemu_monitor_text: Catch IOMMU/VFIO related errors in
    qemuMonitorTextAddDrive
  qemu: Don't leak storage perms on failure in
    qemuDomainAttachDiskGeneric
  qemu: Allow forcing VFIO when computing memlock limit
  qemu_hotplug: Prepare NVMe disks on hotplug
  virsh: Introduce nvme disk to domblklist

 docs/formatdomain.html.in                     |  57 ++-
 docs/schemas/domaincommon.rng                 |  32 ++
 po/POTFILES.in                                |   1 +
 src/conf/domain_conf.c                        | 109 +++++
 src/conf/domain_conf.h                        |   3 +
 src/libvirt_private.syms                      |  28 ++
 src/libxl/xen_xl.c                            |   1 +
 src/qemu/qemu_block.c                         |  25 +
 src/qemu/qemu_capabilities.c                  |   2 +
 src/qemu/qemu_capabilities.h                  |   1 +
 src/qemu/qemu_cgroup.c                        | 203 +++++---
 src/qemu/qemu_command.c                       |   6 +-
 src/qemu/qemu_domain.c                        | 375 +++++++++------
 src/qemu/qemu_domain.h                        |  15 +-
 src/qemu/qemu_driver.c                        |   4 +
 src/qemu/qemu_hostdev.c                       |  71 ++-
 src/qemu/qemu_hostdev.h                       |  16 +
 src/qemu/qemu_hotplug.c                       |  31 +-
 src/qemu/qemu_migration.c                     |  30 +-
 src/qemu/qemu_monitor_text.c                  |   7 +
 src/qemu/qemu_process.c                       |   7 +
 src/security/security_apparmor.c              |  25 +-
 src/security/security_dac.c                   |  30 ++
 src/security/security_selinux.c               |  51 +-
 src/util/Makefile.inc.am                      |   2 +
 src/util/virhostdev.c                         | 431 +++++++++++++++--
 src/util/virhostdev.h                         |  37 ++
 src/util/virnvme.c                            | 447 ++++++++++++++++++
 src/util/virnvme.h                            |  97 ++++
 src/util/virpci.c                             |  29 ++
 src/util/virpci.h                             |   5 +
 src/util/virstoragefile.c                     |  71 +++
 src/util/virstoragefile.h                     |  19 +
 .../caps_2.12.0.aarch64.xml                   |   1 +
 .../caps_2.12.0.ppc64.xml                     |   1 +
 .../caps_2.12.0.s390x.xml                     |   1 +
 .../caps_2.12.0.x86_64.xml                    |   1 +
 .../qemucapabilitiesdata/caps_3.0.0.ppc64.xml |   1 +
 .../caps_3.0.0.riscv32.xml                    |   1 +
 .../caps_3.0.0.riscv64.xml                    |   1 +
 .../qemucapabilitiesdata/caps_3.0.0.s390x.xml |   1 +
 .../caps_3.0.0.x86_64.xml                     |   1 +
 .../qemucapabilitiesdata/caps_3.1.0.ppc64.xml |   1 +
 .../caps_3.1.0.x86_64.xml                     |   1 +
 .../caps_4.0.0.aarch64.xml                    |   1 +
 .../qemucapabilitiesdata/caps_4.0.0.ppc64.xml |   1 +
 .../caps_4.0.0.riscv32.xml                    |   1 +
 .../caps_4.0.0.riscv64.xml                    |   1 +
 .../qemucapabilitiesdata/caps_4.0.0.s390x.xml |   1 +
 .../caps_4.0.0.x86_64.xml                     |   1 +
 .../caps_4.1.0.x86_64.xml                     |   1 +
 .../caps_4.2.0.aarch64.xml                    |   1 +
 .../qemucapabilitiesdata/caps_4.2.0.ppc64.xml |   1 +
 .../qemucapabilitiesdata/caps_4.2.0.s390x.xml |   1 +
 .../caps_4.2.0.x86_64.xml                     |   1 +
 tests/qemumemlocktest.c                       |   2 +-
 .../disk-nvme.x86_64-latest.args              |  63 +++
 tests/qemuxml2argvdata/disk-nvme.xml          |  63 +++
 tests/qemuxml2argvtest.c                      |   1 +
 tests/qemuxml2xmloutdata/disk-nvme.xml        |   1 +
 tests/qemuxml2xmltest.c                       |   1 +
 tests/virhostdevtest.c                        |  97 ++++
 tests/virpcimock.c                            |   3 +
 tests/virpcitestdata/0000-01-00.0.config      | Bin 0 -> 4096 bytes
 tests/virpcitestdata/0000-02-00.0.config      | Bin 0 -> 4096 bytes
 tools/virsh-domain-monitor.c                  |  31 +-
 66 files changed, 2240 insertions(+), 312 deletions(-)
 create mode 100644 src/util/virnvme.c
 create mode 100644 src/util/virnvme.h
 create mode 100644 tests/qemuxml2argvdata/disk-nvme.x86_64-latest.args
 create mode 100644 tests/qemuxml2argvdata/disk-nvme.xml
 create mode 120000 tests/qemuxml2xmloutdata/disk-nvme.xml
 create mode 100644 tests/virpcitestdata/0000-01-00.0.config
 create mode 100644 tests/virpcitestdata/0000-02-00.0.config

-- 
2.23.0




More information about the libvir-list mailing list