[libvirt] [RFC PATCH v2 14.5/18] qemu: Bump the memory locking limit for mdevs as well
Alex Williamson
alex.williamson at redhat.com
Thu Feb 16 21:12:06 UTC 2017
On Thu, 16 Feb 2017 11:04:39 -0700
Alex Williamson <alex.williamson at redhat.com> wrote:
> On Thu, 16 Feb 2017 17:49:45 +0100
> Erik Skultety <eskultet at 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 at 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 at 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
More information about the libvir-list
mailing list