On Thu, 16 Feb 2017 11:04:39 -0700
Alex Williamson <alex.williamson(a)redhat.com> wrote:
On Thu, 16 Feb 2017 17:49:45 +0100
Erik Skultety <eskultet(a)redhat.com> wrote:
> Since mdevs are just another type of VFIO devices, we should increase
> the memory locking limit the same way we do for VFIO PCI devices.
>
> Signed-off-by: Erik Skultety <eskultet(a)redhat.com>
> ---
> src/qemu/qemu_domain.c | 9 +++++----
> 1 file changed, 5 insertions(+), 4 deletions(-)
>
> diff --git a/src/qemu/qemu_domain.c b/src/qemu/qemu_domain.c
> index eb86385..bdd687f 100644
> --- a/src/qemu/qemu_domain.c
> +++ b/src/qemu/qemu_domain.c
> @@ -6222,11 +6222,12 @@ qemuDomainRequiresMemLock(virDomainDefPtr def)
> return true;
>
> for (i = 0; i < def->nhostdevs; i++) {
> - virDomainHostdevDefPtr dev = def->hostdevs[i];
> + virDomainHostdevSubsysPtr subsys =
&def->hostdevs[i]->source.subsys;
>
> - if (dev->mode == VIR_DOMAIN_HOSTDEV_MODE_SUBSYS &&
> - dev->source.subsys.type == VIR_DOMAIN_HOSTDEV_SUBSYS_TYPE_PCI
&&
> - dev->source.subsys.u.pci.backend ==
VIR_DOMAIN_HOSTDEV_PCI_BACKEND_VFIO)
> + if (def->hostdevs[i]->mode == VIR_DOMAIN_HOSTDEV_MODE_SUBSYS
&&
> + (subsys->type == VIR_DOMAIN_HOSTDEV_SUBSYS_TYPE_MDEV ||
> + (subsys->type == VIR_DOMAIN_HOSTDEV_SUBSYS_TYPE_PCI &&
> + subsys->u.pci.backend == VIR_DOMAIN_HOSTDEV_PCI_BACKEND_VFIO)))
> return true;
> }
>
Nice! For series:
Tested-by: Alex Williamson <alex.williamson(a)redhat.com>
(with KVMGT vGPU mdev)
Nit, if I configure a VM for an invalid mdev uuid, I get the following
error message:
Error starting domain: Requested operation is not valid: mediated devices are not
supported by this kernel
Traceback (most recent call last):
File "/usr/share/virt-manager/virtManager/asyncjob.py", line 88, in
cb_wrapper
callback(asyncjob, *args, **kwargs)
File "/usr/share/virt-manager/virtManager/asyncjob.py", line 124, in tmpcb
callback(*args, **kwargs)
File "/usr/share/virt-manager/virtManager/libvirtobject.py", line 83, in
newfn
ret = fn(self, *args, **kwargs)
File "/usr/share/virt-manager/virtManager/domain.py", line 1404, in startup
self._backend.create()
File "/usr/lib64/python2.7/site-packages/libvirt.py", line 1035, in create
if ret == -1: raise libvirtError ('virDomainCreate() failed', dom=self)
libvirtError: Requested operation is not valid: mediated devices are not supported by this
kernel
In this case it should really just be a device not found error, the
speculation that the kernel doesn't support mediated devices is
incorrect. Thanks,
Alex