Message ID | 0-v1-eaf3ccbba33c+1add0-vfio_reflck_jgg@nvidia.com (mailing list archive) |
---|---|
Headers | show |
Series | Provide core infrastructure for managing open/release | expand |
On 7/15/2021 5:50 AM, Jason Gunthorpe wrote: > Prologue: > > This is the first series of three to send the "mlx5_vfio_pci" driver that has > been discussed on the list for a while now. > - Reorganize reflck to support splitting vfio_pci > - Split vfio_pci into vfio_pci/vfio_pci_core and provide infrastructure > for non-generic VFIO PCI drivers > - The new driver mlx5_vfio_pci that is a full implementation of > suspend/resume functionality for mlx5 devices. > > A preview of all the patches can be seen here: > > https://github.com/jgunthorpe/linux/commits/mlx5_vfio_pci > > =============== > > This is in support of Max's series to split vfio-pci. For that to work the > reflck concept embedded in vfio-pci needs to be sharable across all of the > new VFIO PCI drivers which motivated re-examining how this is > implemented. > > Another significant issue is how the VFIO PCI core includes code like: > > if (pci_dev_driver(pdev) != &vfio_pci_driver) > > Which is not scalable if there are going to be multiple different driver > types. > > This series takes the approach of moving the "reflck" mechanism into the > core code as a "device set". Each vfio_device driver can specify how > vfio_devices are grouped into the set using a key and the set comes along > with a set-global mutex. The core code manages creating per-device set > memory and associating it with each vfio_device. > > In turn this allows the core code to provide an open/close_device() > operation that is called only for the first/last FD, and is called under > the global device set lock. > > Review of all the drivers show that they are either already open coding > the first/last semantic or are buggy and missing it. All drivers are > migrated/fixed to the new open/close_device ops and the unused per-FD > open()/release() ops are deleted. > Why can't open()/release() ops be reused instead of adding open_device()/close_device(). Thanks, Kirti
On Thu, Jul 15, 2021 at 06:58:31PM +0530, Kirti Wankhede wrote: > > Review of all the drivers show that they are either already open coding > > the first/last semantic or are buggy and missing it. All drivers are > > migrated/fixed to the new open/close_device ops and the unused per-FD > > open()/release() ops are deleted. > > Why can't open()/release() ops be reused instead of adding > open_device()/close_device(). It could be done but it would ruin the structure of the patch series, obfuscate the naming of the ops, and complicate backporting as this is a significant semantic difference. Overall when funtionality changes significantly it is better to change the name along with it Jason