From: Jason Gunthorpe <jgg@nvidia.com> To: David Airlie <airlied@linux.ie>, Tony Krowiak <akrowiak@linux.ibm.com>, Alex Williamson <alex.williamson@redhat.com>, Christian Borntraeger <borntraeger@de.ibm.com>, Cornelia Huck <cohuck@redhat.com>, Daniel Vetter <daniel@ffwll.ch>, dri-devel@lists.freedesktop.org, Eric Farman <farman@linux.ibm.com>, Harald Freudenberger <freude@linux.ibm.com>, Vasily Gorbik <gor@linux.ibm.com>, Heiko Carstens <hca@linux.ibm.com>, intel-gfx@lists.freedesktop.org, intel-gvt-dev@lists.freedesktop.org, Jani Nikula <jani.nikula@linux.intel.com>, Jason Herne <jjherne@linux.ibm.com>, Joonas Lahtinen <joonas.lahtinen@linux.intel.com>, kvm@vger.kernel.org, Kirti Wankhede <kwankhede@nvidia.com>, linux-s390@vger.kernel.org, Matthew Rosato <mjrosato@linux.ibm.com>, Peter Oberparleiter <oberpar@linux.ibm.com>, Halil Pasic <pasic@linux.ibm.com>, Rodrigo Vivi <rodrigo.vivi@intel.com>, Vineeth Vijayan <vneethv@linux.ibm.com>, Zhenyu Wang <zhenyuw@linux.intel.com>, Zhi Wang <zhi.a.wang@intel.com> Cc: Christoph Hellwig <hch@lst.de> Subject: [PATCH v2 0/9] Move vfio_ccw to the new mdev API Date: Thu, 9 Sep 2021 16:38:40 -0300 [thread overview] Message-ID: <0-v2-7d3a384024cf+2060-ccw_mdev_jgg@nvidia.com> (raw) This addresses Cornelia's remark on the earlier patch that ccw has a confusing lifecycle. While it doesn't seem like the original attempt was functionally wrong, the result can be made better with a lot of further work. Reorganize the driver so that the mdev owns the private memory and controls the lifecycle, not the css_driver. The memory associated with the css_driver lifecycle is only the mdev_parent/mdev_type registration. Along the way we change when the sch is quiescent or not to be linked to the open/close_device lifetime of the vfio_device, which is sort of what it was tring to do already, just not completely. The troublesome racey lifecycle of the css_driver callbacks is made clear with simple vfio_device refcounting so a callback is only delivered into a registered vfio_device and has obvious correctness. Move the only per-css_driver state, the "available instance" counter, into the core code and share that logic with many of the other drivers. The value is kept in the mdev_type memory. v2: - Clean up the lifecycle in ccw with 7 new patches - Rebase v1: https://lore.kernel.org/all/7-v2-7667f42c9bad+935-vfio3_jgg@nvidia.com Jason Gunthorpe (9): vfio/ccw: Use functions for alloc/free of the vfio_ccw_private vfio/ccw: Pass vfio_ccw_private not mdev_device to various functions vfio/ccw: Convert to use vfio_register_group_dev() vfio/ccw: Make the FSM complete and synchronize it to the mdev vfio/mdev: Consolidate all the device_api sysfs into the core code vfio/mdev: Add mdev available instance checking to the core vfio/ccw: Remove private->mdev vfio: Export vfio_device_try_get() vfio/ccw: Move the lifecycle of the struct vfio_ccw_private to the mdev drivers/gpu/drm/i915/gvt/kvmgt.c | 9 +- drivers/s390/cio/vfio_ccw_drv.c | 282 +++++++++++--------------- drivers/s390/cio/vfio_ccw_fsm.c | 152 ++++++++++---- drivers/s390/cio/vfio_ccw_ops.c | 240 ++++++++++------------ drivers/s390/cio/vfio_ccw_private.h | 42 +++- drivers/s390/crypto/vfio_ap_ops.c | 41 +--- drivers/s390/crypto/vfio_ap_private.h | 2 - drivers/vfio/mdev/mdev_core.c | 13 +- drivers/vfio/mdev/mdev_private.h | 2 + drivers/vfio/mdev/mdev_sysfs.c | 64 +++++- drivers/vfio/vfio.c | 3 +- include/linux/mdev.h | 13 +- include/linux/vfio.h | 1 + samples/vfio-mdev/mbochs.c | 9 +- samples/vfio-mdev/mdpy.c | 31 +-- samples/vfio-mdev/mtty.c | 10 +- 16 files changed, 470 insertions(+), 444 deletions(-) -- 2.33.0
WARNING: multiple messages have this Message-ID (diff)
From: Jason Gunthorpe <jgg@nvidia.com> To: David Airlie <airlied@linux.ie>, Tony Krowiak <akrowiak@linux.ibm.com>, Alex Williamson <alex.williamson@redhat.com>, Christian Borntraeger <borntraeger@de.ibm.com>, Cornelia Huck <cohuck@redhat.com>, Daniel Vetter <daniel@ffwll.ch>, dri-devel@lists.freedesktop.org, Eric Farman <farman@linux.ibm.com>, Harald Freudenberger <freude@linux.ibm.com>, Vasily Gorbik <gor@linux.ibm.com>, Heiko Carstens <hca@linux.ibm.com>, intel-gfx@lists.freedesktop.org, intel-gvt-dev@lists.freedesktop.org, Jani Nikula <jani.nikula@linux.intel.com>, Jason Herne <jjherne@linux.ibm.com>, Joonas Lahtinen <joonas.lahtinen@linux.intel.com>, kvm@vger.kernel.org, Kirti Wankhede <kwankhede@nvidia.com>, linux-s390@vger.kernel.org, Matthew Rosato <mjrosato@linux.ibm.com>, Peter Oberparleiter <oberpar@linux.ibm.com>, Halil Pasic <pasic@linux.ibm.com>, Rodrigo Vivi <rodrigo.vivi@intel.com>, Vineeth Vijayan <vneethv@linux.ibm.com>, Zhenyu Wang <zhenyuw@linux.intel.com>, Zhi Wang <zhi.a.wang@intel.com> Cc: Christoph Hellwig <hch@lst.de> Subject: [Intel-gfx] [PATCH v2 0/9] Move vfio_ccw to the new mdev API Date: Thu, 9 Sep 2021 16:38:40 -0300 [thread overview] Message-ID: <0-v2-7d3a384024cf+2060-ccw_mdev_jgg@nvidia.com> (raw) This addresses Cornelia's remark on the earlier patch that ccw has a confusing lifecycle. While it doesn't seem like the original attempt was functionally wrong, the result can be made better with a lot of further work. Reorganize the driver so that the mdev owns the private memory and controls the lifecycle, not the css_driver. The memory associated with the css_driver lifecycle is only the mdev_parent/mdev_type registration. Along the way we change when the sch is quiescent or not to be linked to the open/close_device lifetime of the vfio_device, which is sort of what it was tring to do already, just not completely. The troublesome racey lifecycle of the css_driver callbacks is made clear with simple vfio_device refcounting so a callback is only delivered into a registered vfio_device and has obvious correctness. Move the only per-css_driver state, the "available instance" counter, into the core code and share that logic with many of the other drivers. The value is kept in the mdev_type memory. v2: - Clean up the lifecycle in ccw with 7 new patches - Rebase v1: https://lore.kernel.org/all/7-v2-7667f42c9bad+935-vfio3_jgg@nvidia.com Jason Gunthorpe (9): vfio/ccw: Use functions for alloc/free of the vfio_ccw_private vfio/ccw: Pass vfio_ccw_private not mdev_device to various functions vfio/ccw: Convert to use vfio_register_group_dev() vfio/ccw: Make the FSM complete and synchronize it to the mdev vfio/mdev: Consolidate all the device_api sysfs into the core code vfio/mdev: Add mdev available instance checking to the core vfio/ccw: Remove private->mdev vfio: Export vfio_device_try_get() vfio/ccw: Move the lifecycle of the struct vfio_ccw_private to the mdev drivers/gpu/drm/i915/gvt/kvmgt.c | 9 +- drivers/s390/cio/vfio_ccw_drv.c | 282 +++++++++++--------------- drivers/s390/cio/vfio_ccw_fsm.c | 152 ++++++++++---- drivers/s390/cio/vfio_ccw_ops.c | 240 ++++++++++------------ drivers/s390/cio/vfio_ccw_private.h | 42 +++- drivers/s390/crypto/vfio_ap_ops.c | 41 +--- drivers/s390/crypto/vfio_ap_private.h | 2 - drivers/vfio/mdev/mdev_core.c | 13 +- drivers/vfio/mdev/mdev_private.h | 2 + drivers/vfio/mdev/mdev_sysfs.c | 64 +++++- drivers/vfio/vfio.c | 3 +- include/linux/mdev.h | 13 +- include/linux/vfio.h | 1 + samples/vfio-mdev/mbochs.c | 9 +- samples/vfio-mdev/mdpy.c | 31 +-- samples/vfio-mdev/mtty.c | 10 +- 16 files changed, 470 insertions(+), 444 deletions(-) -- 2.33.0
next reply other threads:[~2021-09-09 19:38 UTC|newest] Thread overview: 80+ messages / expand[flat|nested] mbox.gz Atom feed top 2021-09-09 19:38 Jason Gunthorpe [this message] 2021-09-09 19:38 ` [Intel-gfx] [PATCH v2 0/9] Move vfio_ccw to the new mdev API Jason Gunthorpe 2021-09-09 19:38 ` [PATCH v2 1/9] vfio/ccw: Use functions for alloc/free of the vfio_ccw_private Jason Gunthorpe 2021-09-09 19:38 ` [Intel-gfx] " Jason Gunthorpe 2021-09-10 11:27 ` Christoph Hellwig 2021-09-10 11:27 ` Christoph Hellwig 2021-09-14 15:50 ` Cornelia Huck 2021-09-14 15:50 ` [Intel-gfx] " Cornelia Huck 2021-09-14 18:03 ` Jason Gunthorpe 2021-09-14 18:03 ` [Intel-gfx] " Jason Gunthorpe 2021-09-24 2:53 ` Eric Farman 2021-09-24 2:53 ` [Intel-gfx] " Eric Farman 2021-09-09 19:38 ` [PATCH v2 2/9] vfio/ccw: Pass vfio_ccw_private not mdev_device to various functions Jason Gunthorpe 2021-09-09 19:38 ` [Intel-gfx] " Jason Gunthorpe 2021-09-10 11:32 ` Christoph Hellwig 2021-09-10 11:32 ` Christoph Hellwig 2021-09-20 11:12 ` Cornelia Huck 2021-09-20 11:12 ` [Intel-gfx] " Cornelia Huck 2021-09-24 2:53 ` Eric Farman 2021-09-24 2:53 ` [Intel-gfx] " Eric Farman 2021-09-09 19:38 ` [PATCH v2 3/9] vfio/ccw: Convert to use vfio_register_group_dev() Jason Gunthorpe 2021-09-09 19:38 ` [Intel-gfx] " Jason Gunthorpe 2021-09-24 20:37 ` Eric Farman 2021-09-24 20:37 ` [Intel-gfx] " Eric Farman 2021-09-27 12:17 ` Jason Gunthorpe 2021-09-27 12:17 ` [Intel-gfx] " Jason Gunthorpe 2021-09-09 19:38 ` [PATCH v2 4/9] vfio/ccw: Make the FSM complete and synchronize it to the mdev Jason Gunthorpe 2021-09-09 19:38 ` [Intel-gfx] " Jason Gunthorpe 2021-09-20 12:19 ` Cornelia Huck 2021-09-20 12:19 ` [Intel-gfx] " Cornelia Huck 2021-09-20 12:30 ` Jason Gunthorpe 2021-09-20 12:30 ` [Intel-gfx] " Jason Gunthorpe 2021-09-09 19:38 ` [PATCH v2 5/9] vfio/mdev: Consolidate all the device_api sysfs into the core code Jason Gunthorpe 2021-09-09 19:38 ` [Intel-gfx] " Jason Gunthorpe 2021-09-10 12:10 ` Christoph Hellwig 2021-09-10 12:10 ` [Intel-gfx] " Christoph Hellwig 2021-09-10 13:38 ` Jason Gunthorpe 2021-09-10 13:38 ` [Intel-gfx] " Jason Gunthorpe 2021-09-10 16:09 ` Alex Williamson 2021-09-10 16:09 ` [Intel-gfx] " Alex Williamson 2021-09-09 19:38 ` [PATCH v2 6/9] vfio/mdev: Add mdev available instance checking to the core Jason Gunthorpe 2021-09-09 19:38 ` [Intel-gfx] " Jason Gunthorpe 2021-09-10 12:25 ` Christoph Hellwig 2021-09-10 12:25 ` [Intel-gfx] " Christoph Hellwig 2021-09-20 18:02 ` Cornelia Huck 2021-09-20 18:02 ` [Intel-gfx] " Cornelia Huck 2021-09-21 13:19 ` Jason Gunthorpe 2021-09-21 13:19 ` [Intel-gfx] " Jason Gunthorpe 2021-09-24 2:54 ` Eric Farman 2021-09-24 2:54 ` [Intel-gfx] " Eric Farman 2021-09-09 19:38 ` [PATCH v2 7/9] vfio/ccw: Remove private->mdev Jason Gunthorpe 2021-09-09 19:38 ` [Intel-gfx] " Jason Gunthorpe 2021-09-24 20:45 ` Eric Farman 2021-09-24 20:45 ` [Intel-gfx] " Eric Farman 2021-09-27 12:32 ` Jason Gunthorpe 2021-09-27 12:32 ` [Intel-gfx] " Jason Gunthorpe 2021-09-27 20:45 ` Eric Farman 2021-09-27 20:45 ` [Intel-gfx] " Eric Farman 2021-09-09 19:38 ` [PATCH v2 8/9] vfio: Export vfio_device_try_get() Jason Gunthorpe 2021-09-09 19:38 ` [Intel-gfx] " Jason Gunthorpe 2021-09-09 19:38 ` [PATCH v2 9/9] vfio/ccw: Move the lifecycle of the struct vfio_ccw_private to the mdev Jason Gunthorpe 2021-09-09 19:38 ` [Intel-gfx] " Jason Gunthorpe 2021-09-09 19:54 ` [Intel-gfx] ✗ Fi.CI.BUILD: failure for Move vfio_ccw to the new mdev API Patchwork 2021-09-13 17:40 ` [PATCH v2 0/9] " Eric Farman 2021-09-13 17:40 ` [Intel-gfx] " Eric Farman 2021-09-13 19:24 ` Jason Gunthorpe 2021-09-13 19:24 ` [Intel-gfx] " Jason Gunthorpe 2021-09-13 20:31 ` Eric Farman 2021-09-13 20:31 ` [Intel-gfx] " Eric Farman 2021-09-14 13:36 ` Jason Gunthorpe 2021-09-14 13:36 ` [Intel-gfx] " Jason Gunthorpe 2021-09-17 11:59 ` Cornelia Huck 2021-09-17 11:59 ` [Intel-gfx] " Cornelia Huck 2021-09-17 12:51 ` Jason Gunthorpe 2021-09-17 12:51 ` [Intel-gfx] " Jason Gunthorpe 2021-09-17 14:37 ` Cornelia Huck 2021-09-17 14:37 ` [Intel-gfx] " Cornelia Huck 2021-09-14 13:46 ` [Intel-gfx] ✗ Fi.CI.BUILD: failure for Move vfio_ccw to the new mdev API (rev2) Patchwork 2021-09-14 18:19 ` [Intel-gfx] ✗ Fi.CI.BUILD: failure for Move vfio_ccw to the new mdev API (rev3) Patchwork 2021-09-21 15:11 ` [Intel-gfx] ✗ Fi.CI.BUILD: failure for Move vfio_ccw to the new mdev API (rev4) Patchwork
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=0-v2-7d3a384024cf+2060-ccw_mdev_jgg@nvidia.com \ --to=jgg@nvidia.com \ --cc=airlied@linux.ie \ --cc=akrowiak@linux.ibm.com \ --cc=alex.williamson@redhat.com \ --cc=borntraeger@de.ibm.com \ --cc=cohuck@redhat.com \ --cc=daniel@ffwll.ch \ --cc=dri-devel@lists.freedesktop.org \ --cc=farman@linux.ibm.com \ --cc=freude@linux.ibm.com \ --cc=gor@linux.ibm.com \ --cc=hca@linux.ibm.com \ --cc=hch@lst.de \ --cc=intel-gfx@lists.freedesktop.org \ --cc=intel-gvt-dev@lists.freedesktop.org \ --cc=jani.nikula@linux.intel.com \ --cc=jjherne@linux.ibm.com \ --cc=joonas.lahtinen@linux.intel.com \ --cc=kvm@vger.kernel.org \ --cc=kwankhede@nvidia.com \ --cc=linux-s390@vger.kernel.org \ --cc=mjrosato@linux.ibm.com \ --cc=oberpar@linux.ibm.com \ --cc=pasic@linux.ibm.com \ --cc=rodrigo.vivi@intel.com \ --cc=vneethv@linux.ibm.com \ --cc=zhenyuw@linux.intel.com \ --cc=zhi.a.wang@intel.com \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
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.