On Mon, May 16, 2022 at 01:38:39PM -0600, Alex Williamson wrote: > 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, With the device FD there is already a zombie state after open("/dev/...") but before the internal open_device op is called. This state ends after the iommufd is assigned, then we can go to open_device. It is reasonable that the KVM would have to be setup before assigning the iommfd to the device fd. Jason