Message ID | 0-v1-324b2038f212+1041f1-vfio3a_jgg@nvidia.com (mailing list archive) |
---|---|
Headers | show |
Series | Allow mdev drivers to directly create the vfio_device | expand |
Btw, you list of CCs is a mess as alsmost no one is CCed on the whole list can can thus properly review it.
Jason, I couldn't find patch 1,2,4 and 5 of these series. Can you please keep kvm@vger.kernel.org cc for all patches? Also it will be helpful if you can add version prefix, eg. 'v3' for this series, in subject line. Thanks, Kirti On 6/8/2021 6:25 AM, Jason Gunthorpe wrote: > This is a "v3" of the previous posted full conversion: > https://lore.kernel.org/r/0-v2-7667f42c9bad+935-vfio3_jgg@nvidia.com > > Without the trailing patches that are running into complications: > - The CCW conversion has some complicated remarks > - AP is waiting for some locking stuff to get worked out > - No feedback on GT > - The license change topic for removing vfio_mdev.c > > Getting the baseline functionality merged will allow Intel's IDXD mdev > driver to advance. It has already been RFC posted in the new format: > > https://lore.kernel.org/kvm/162164243591.261970.3439987543338120797.stgit@djiang5-desk3.ch.intel.com/ > > This series includes base infrastructure and the sample conversions. The > remaining four issues can be sorted out one by one. > > The major change in v3 is to enhance the driver core support for binding > based on the request from Christoph Hellwig and Dan Williams. Based on > some light analysis this looks broadly useful: > > https://lore.kernel.org/kvm/20210428233856.GY1370958@nvidia.com/ > > ==== > > The mdev bus's core part for managing the lifecycle of devices is mostly > as one would expect for a driver core bus subsystem. > > However instead of having a normal 'struct device_driver' and binding the > actual mdev drivers through the standard driver core mechanisms it open > codes this with the struct mdev_parent_ops and provides a single driver > that shims between the VFIO core's struct vfio_device and the actual > device driver. > > Instead, allow mdev drivers implement an actual struct mdev_driver and > directly call vfio_register_group_dev() in the probe() function for the > mdev. Arrange to bind the created mdev_device to the mdev_driver that is > provided by the end driver. > > The actual execution flow doesn't change much, eg what was > parent_ops->create is now device_driver->probe and it is called at almost > the exact same time - except under the normal control of the driver core. > > Ultimately converting all the drivers unlocks a fair number of additional > VFIO simplifications and cleanups. > > v3: > - Use device_driver_attach() from the driver core > - 5 new patches to make device_driver_attach() exported and usable for this > - Remove trailing patches for now > v2: https://lore.kernel.org/r/0-v2-7667f42c9bad+935-vfio3_jgg@nvidia.com > - Keep && m in samples kconfig > - Restore accidently squashed removeal of vfio_mdev.c > - Remove indirections to call bus_register()/bus_unregister() > - Reflow long doc lines > v1: https://lore.kernel.org/r/0-v1-d88406ed308e+418-vfio3_jgg@nvidia.com > > Jason Gunthorpe (10): > driver core: Do not continue searching for drivers if deferred probe > is used > driver core: Pull required checks into driver_probe_device() > driver core: Flow the return code from ->probe() through to sysfs bind > driver core: Don't return EPROBE_DEFER to userspace during sysfs bind > driver core: Export device_driver_attach() > vfio/mdev: Remove CONFIG_VFIO_MDEV_DEVICE > vfio/mdev: Allow the mdev_parent_ops to specify the device driver to > bind > vfio/mtty: Convert to use vfio_register_group_dev() > vfio/mdpy: Convert to use vfio_register_group_dev() > vfio/mbochs: Convert to use vfio_register_group_dev() > > Documentation/s390/vfio-ap.rst | 1 - > arch/s390/Kconfig | 2 +- > drivers/base/base.h | 1 - > drivers/base/bus.c | 6 +- > drivers/base/dd.c | 116 ++++++++++++------- > drivers/gpu/drm/i915/Kconfig | 2 +- > drivers/vfio/mdev/Kconfig | 7 -- > drivers/vfio/mdev/Makefile | 3 +- > drivers/vfio/mdev/mdev_core.c | 46 ++++++-- > drivers/vfio/mdev/mdev_driver.c | 10 ++ > drivers/vfio/mdev/mdev_private.h | 2 + > drivers/vfio/mdev/vfio_mdev.c | 24 +--- > include/linux/device.h | 2 + > include/linux/mdev.h | 2 + > samples/Kconfig | 6 +- > samples/vfio-mdev/mbochs.c | 163 +++++++++++++++------------ > samples/vfio-mdev/mdpy.c | 159 ++++++++++++++------------ > samples/vfio-mdev/mtty.c | 185 ++++++++++++++----------------- > 18 files changed, 397 insertions(+), 340 deletions(-) >
On Mon, Jun 14, 2021 at 08:04:03PM +0530, Kirti Wankhede wrote: > Jason, > > I couldn't find patch 1,2,4 and 5 of these series. Can you please keep > kvm@vger.kernel.org cc for all patches? It is an error, sorry > Also it will be helpful if you can add version prefix, eg. 'v3' for this > series, in subject line. This is not v3, it is a different but related series Jason