[libvirt] [PATCH 00/18] Enhance virpcimock and test VFIO instead of KVM

Michal Privoznik mprivozn at redhat.com
Wed Aug 14 11:57:29 UTC 2019


Kernel structure looks slightly different than what virpcimock creates.
This did not use to be a problem, because we are testing KVM device
assignment even though majority of systems we run on (if not all of
them) use VFIO assignment.

In order to switch our test suite (mainly virhostdevtest and virpcitest)
to test VFIO assignment, the virpcimock must be fixed. Firstly, it needs
to create symlinks under /sys/kernel/iommu_groups/... directories (patch
13/18) so that virhostdev module can iterate over them. Secondly, it
needs to create 'driver_override' file (which exists since
kernel-3.16.0) so that the virtual environment the mock creates matches
real up to date systems (patch 03/18).

Funny thing is, that enhancing the mock uncovered a bug we had (fix is
in 15/18) and also one latent bug (14/18).


As usual, these patches can be found on my github too:

  https://github.com/zippy2/libvirt/tree/virpcimock

and just for the fun of it, here's the latest travis build of that
branch:

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


Michal Prívozník (18):
  virpcimock: Move actions checking one level up
  Revert "virpcitest: Test virPCIDeviceDetach failure"
  virpcimock: Create driver_override file in device dirs
  virpcimock: Drop needless typecast
  virpcimock: Use VIR_AUTOFREE()
  virpcimock: Eliminate use of @fakesysfspcidir
  virpcimock: Rename @fakesysfspcidir
  virpcimock: Create devices/ and drivers/ under /sys/bus/pci upfront
  virpcimock: Introduce and use pci_device_get_path()
  virpcimock: Introduce and use pci_driver_get_path()
  virpcimock: Store PCI address as ints not string
  virpcimock: Create PCI devices under /sys/devices/pci*
  virpcimock: Create symlink in /sys/kernel/iommu_groups/N/devices dir
  virhostdev: Check driver name too in virHostdevIsPCINodeDeviceUsed()
  virhostdev: Unify virHostdevPreparePCIDevices behaviour for KVM and
    VFIO cases
  qemuxml2argvtest: Switch to modern vfio backend
  virhostdevtest: Use modern VFIO
  virpcitest: Use modern VFIO

 src/util/virhostdev.c                         |  26 +-
 .../hostdev-pci-address-device.args           |   2 +-
 .../qemuxml2argvdata/hostdev-pci-address.args |   2 +-
 .../net-hostdev-bootorder.args                |   3 +-
 .../net-hostdev-multidomain.args              |   2 +-
 tests/qemuxml2argvdata/net-hostdev.args       |   2 +-
 tests/qemuxml2argvdata/pci-rom.args           |   4 +-
 tests/qemuxml2argvtest.c                      |  14 +-
 tests/virhostdevtest.c                        |   4 +-
 tests/virpcimock.c                            | 394 ++++++++++++------
 tests/virpcitest.c                            |  48 +--
 11 files changed, 304 insertions(+), 197 deletions(-)

-- 
2.21.0




More information about the libvir-list mailing list