All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v3 0/1] vfio: remove VFIO_GROUP_NOTIFY_SET_KVM
@ 2022-05-19 18:33 Matthew Rosato
  2022-05-19 18:33 ` [PATCH v3 1/1] " Matthew Rosato
  2022-05-24 16:07   ` Alex Williamson
  0 siblings, 2 replies; 27+ messages in thread
From: Matthew Rosato @ 2022-05-19 18:33 UTC (permalink / raw)
  To: jgg, alex.williamson
  Cc: cohuck, borntraeger, jjherne, akrowiak, pasic, zhenyuw,
	zhi.a.wang, hch, intel-gfx, intel-gvt-dev, linux-s390, kvm,
	linux-kernel

As discussed in this thread:

https://lore.kernel.org/kvm/20220516172734.GE1343366@nvidia.com/

Let's remove VFIO_GROUP_NOTIFY_SET_KVM and instead assume the association
has already been established prior to device_open.  For the types today
that need a KVM (GVT, vfio-ap) these will fail if a KVM is not found.
Looking ahead, vfio-pci-zdev will optionally want the KVM association
(enable hardware assists) but it will not be a hard requirement (still
want to allow other, non-KVM userspace usage). 

This is built on top of vfio-next and tested with s390x-pci
(zdev-kvm series) and vfio-ap (GVT changes are compile-tested only)

Changes for v3:
- merge branches under if (device->open_count == 1) (Kevin)
- move device->open_count-- out from group_rwsem (Kevin)
- drop null KVM check (Christoph)
- remove extra kvm_{get,put}_kvm from vfio_ap_ops, it was already getting
  a reference (Jason)
- Add comment about kvm reference in vfio.h (Jason)
- Return -EINVAL if !kvm for vfio-ap (Tony)

Changes for v2:
- gvt no longer needs release_work, get rid of it (Christoph)
- a few compile fixes for gvt
- update commit to mention fixes gvt oops (Jason)
- s/down_write/down_read/ in a few spots (Jason)
- avoid kvm build dependency by holding group read lock over device
  open/close and put the onus on the driver to obtain a reference if
  it will actually use the kvm pointer.  Document the requirement,
  use lockdep_assert to ensure lock is held during register_notifer;
  today all callers are from driver open_device. 

Matthew Rosato (1):
  vfio: remove VFIO_GROUP_NOTIFY_SET_KVM

 drivers/gpu/drm/i915/gvt/gtt.c        |  4 +-
 drivers/gpu/drm/i915/gvt/gvt.h        |  3 -
 drivers/gpu/drm/i915/gvt/kvmgt.c      | 82 ++++++--------------------
 drivers/s390/crypto/vfio_ap_ops.c     | 35 ++---------
 drivers/s390/crypto/vfio_ap_private.h |  3 -
 drivers/vfio/vfio.c                   | 83 ++++++++++-----------------
 include/linux/vfio.h                  |  6 +-
 7 files changed, 57 insertions(+), 159 deletions(-)

-- 
2.27.0


^ permalink raw reply	[flat|nested] 27+ messages in thread

end of thread, other threads:[~2023-01-06 14:30 UTC | newest]

Thread overview: 27+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-05-19 18:33 [PATCH v3 0/1] vfio: remove VFIO_GROUP_NOTIFY_SET_KVM Matthew Rosato
2022-05-19 18:33 ` [PATCH v3 1/1] " Matthew Rosato
2022-05-20  5:33   ` Christoph Hellwig
2022-05-20  5:33     ` [Intel-gfx] " Christoph Hellwig
2022-05-20 13:36   ` Jason Gunthorpe
2022-05-20 13:36     ` [Intel-gfx] " Jason Gunthorpe
2022-05-20 13:56   ` Tony Krowiak
2022-05-20 14:09     ` Matthew Rosato
2022-05-20 20:59       ` Tony Krowiak
2022-05-23 16:41   ` Alex Williamson
2022-05-23 16:41     ` [Intel-gfx] " Alex Williamson
2022-05-24 11:39     ` Wang, Zhi A
2022-05-24 11:39       ` Wang, Zhi A
2023-01-05 22:09   ` [Intel-gfx] " Alex Williamson
2023-01-05 22:09     ` Alex Williamson
2023-01-05 23:34     ` Jason Gunthorpe
2023-01-05 23:34       ` [Intel-gfx] " Jason Gunthorpe
2023-01-06  0:16       ` Matthew Rosato
2023-01-06  0:16         ` [Intel-gfx] " Matthew Rosato
2023-01-06  0:32         ` Jason Gunthorpe
2023-01-06  0:32           ` [Intel-gfx] " Jason Gunthorpe
2023-01-06  1:03           ` Matthew Rosato
2023-01-06  1:03             ` [Intel-gfx] " Matthew Rosato
2023-01-06 14:29             ` Jason Gunthorpe
2023-01-06 14:29               ` [Intel-gfx] " Jason Gunthorpe
2022-05-24 16:07 ` [Intel-gfx] [PATCH v3 0/1] " Alex Williamson
2022-05-24 16:07   ` Alex Williamson

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.