Re: [PATCH v7 17/22] vfio-pci/zdev: add open/close device hooks

From: Alex Williamson
Date: Mon May 16 2022 - 15:40:27 EST


On Mon, 16 May 2022 15:35:58 -0300
Jason Gunthorpe <jgg@xxxxxxxxxx> wrote:

> On Mon, May 16, 2022 at 02:30:46PM -0400, Matthew Rosato wrote:
>
> > Conceptually I think this would work for QEMU anyway (it always sets the kvm
> > before we open the device). I tried to test the idea quickly but couldn't
> > get the following to apply on vfio-next or your vfio_group_locking -- but I
> > understand what you're trying to do so I'll re-work and try it out.
>
> I created it on 8c9350e9bf43de1ebab3cc8a80703671e6495ab4 which is the
> vfio_group_locking.. I can send you a github if it helps
> https://github.com/jgunthorpe/linux/commits/vfio_group_lockin
>
> > @Alex can you think of any usecase/reason why we would need to be able to
> > set the KVM sometime after the device was opened? Doing something like
> > below would break that, as this introduces the assumption that the group is
> > associated with the KVM before the device is opened (and if it's not, the
> > device open fails).
>
> Keep in mind that GVT already hard requires this ordering to even
> allow open_device to work - so it already sets a floor for what
> userspace can do..

How is this going to work when vfio devices are exposed directly? We
currently have a strict ordering through the group to get to the
device, and it's therefore a reasonable requirement for userspace to
register the group with kvm before opening the device. Is the notifier
and async KVM registration necessary to support this dependency with
direct device access? I don't have as clear a picture of the ordering
with with direct access. Thanks,

Alex