All of lore.kernel.org
 help / color / mirror / Atom feed
From: Eric Farman <farman@linux.ibm.com>
To: Matthew Rosato <mjrosato@linux.ibm.com>
Cc: Jason Gunthorpe <jgg@nvidia.com>,
	Alex Williamson <alex.williamson@redhat.com>,
	Liu Yi L <yi.l.liu@intel.com>, Halil Pasic <pasic@linux.ibm.com>,
	kvm@vger.kernel.org, linux-s390@vger.kernel.org,
	Eric Farman <farman@linux.ibm.com>,
	Kirti Wankhede <kwankhede@nvidia.com>,
	Jonathan Corbet <corbet@lwn.net>,
	Zhenyu Wang <zhenyuw@linux.intel.com>,
	Zhi Wang <zhi.a.wang@intel.com>,
	intel-gvt-dev@lists.freedesktop.org,
	Tony Krowiak <akrowiak@linux.ibm.com>,
	Jason Herne <jjherne@linux.ibm.com>
Subject: [PATCH v1 00/18] VFIO ccw/mdev rework
Date: Thu,  2 Jun 2022 19:19:30 +0200	[thread overview]
Message-ID: <20220602171948.2790690-1-farman@linux.ibm.com> (raw)

Last autumn, Jason Gunthorpe proposed some rework of vfio-ccw [1],
to better fit with the new mdev API (thank you!). Part of that
series was pulled for kernel 5.16 [2], but the complexities of
the remaining patches got them hung up behind other work.

This series attempts to dust off and complete that, with the
goal of untangling the lifecycle of a s390 subchannel when
bound to vfio-ccw instead of the usual io_subchannel driver.

Patches 1-8 are inspired by and/or split out from that series,
in order to be consumable on their own (backports, etc.).

Patches 9-12 handle the goal of making the FSM complete,
and synchronizing the subchannel's life with that of the mdev.
(This was the goal of patch 5 of the larger series [3].)

Patches 13-14 are pulled directly from the earlier series.
As these patches hit some other of the consumers of vfio,
those on CC who are unfamiliar with vfio-ccw probably only
care about these. :)

Patches 15-18 links the lifecycle of the vfio_ccw_private struct
with the mdev via a vfio reference. (Patch 17 was also pulled
directly from the earlier series.)

In the end, the subchannel probe/remove callbacks from the css
driver simply register/unregister with vfio-mdev. The communication
with the subchannel is delayed until the mdev routines, which
handles all the vfio-related memory and subchannel enablement.
There's no longer a configuration where the mdev is closed while
the subchannel remains enabled, since that's weird.

@Jason: I carried the S-o-b/r-b tags on patches 13, 14, and 17,
as they were cherry-picked straight from your v3.
If you'd prefer your S-o-b on others, please let me know.

[1] https://lore.kernel.org/r/0-v3-57c1502c62fd+2190-ccw_mdev_jgg@nvidia.com/
[2] https://lore.kernel.org/r/0-v4-cea4f5bd2c00+b52-ccw_mdev_jgg@nvidia.com/
[3] https://lore.kernel.org/r/5-v3-57c1502c62fd+2190-ccw_mdev_jgg@nvidia.com/

Cc: Kirti Wankhede <kwankhede@nvidia.com>
Cc: Jonathan Corbet <corbet@lwn.net>
Cc: Zhenyu Wang <zhenyuw@linux.intel.com>
Cc: Zhi Wang <zhi.a.wang@intel.com>
Cc: intel-gvt-dev@lists.freedesktop.org
Cc: Tony Krowiak <akrowiak@linux.ibm.com>
Cc: Jason Herne <jjherne@linux.ibm.com>

Eric Farman (14):
  vfio/ccw: Fix FSM state if mdev probe fails
  vfio/ccw: Ensure mdev->dev is cleared on mdev remove
  vfio/ccw: Do not change FSM state in subchannel event
  vfio/ccw: Remove private->mdev
  vfio/ccw: Pass enum to FSM event jumptable
  vfio/ccw: Flatten MDEV device (un)register
  vfio/ccw: Check that private pointer is not NULL
  vfio/ccw: Create an OPEN FSM Event
  vfio/ccw: Create a CLOSE FSM event
  vfio/ccw: Refactor vfio_ccw_mdev_reset
  vfio/ccw: Move FSM open/close to MDEV open/close
  vfio/ccw: Manage private with mdev
  vfio/ccw: Create a get_private routine
  vfio/ccw: Manage ccw/mdev reference counts

Jason Gunthorpe (3):
  vfio/mdev: Consolidate all the device_api sysfs into the core code
  vfio/mdev: Add mdev available instance checking to the core
  vfio: Export vfio_device_try_get()

Michael Kawano (1):
  vfio/ccw: Remove UUID from s390 debug log

 .../driver-api/vfio-mediated-device.rst       |   8 +-
 drivers/gpu/drm/i915/gvt/kvmgt.c              |   9 +-
 drivers/s390/cio/vfio_ccw_async.c             |   1 -
 drivers/s390/cio/vfio_ccw_drv.c               | 114 ++++++--------
 drivers/s390/cio/vfio_ccw_fsm.c               |  91 +++++++++--
 drivers/s390/cio/vfio_ccw_ops.c               | 145 ++++++------------
 drivers/s390/cio/vfio_ccw_private.h           |  33 +++-
 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 +-
 18 files changed, 300 insertions(+), 290 deletions(-)

-- 
2.32.0


             reply	other threads:[~2022-06-02 17:20 UTC|newest]

Thread overview: 59+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-06-02 17:19 Eric Farman [this message]
2022-06-02 17:19 ` [PATCH v1 01/18] vfio/ccw: Remove UUID from s390 debug log Eric Farman
2022-06-02 18:55   ` Jason Gunthorpe
2022-06-02 19:51   ` Matthew Rosato
2022-06-03 19:03     ` Eric Farman
2022-06-06 20:45       ` Matthew Rosato
2022-06-02 17:19 ` [PATCH v1 02/18] vfio/ccw: Fix FSM state if mdev probe fails Eric Farman
2022-06-02 18:58   ` Jason Gunthorpe
2022-06-03 13:21   ` Matthew Rosato
2022-06-03 19:12     ` Eric Farman
2022-06-06 20:44       ` Matthew Rosato
2022-06-02 17:19 ` [PATCH v1 03/18] vfio/ccw: Ensure mdev->dev is cleared on mdev remove Eric Farman
2022-06-03 13:25   ` Matthew Rosato
2022-06-03 13:37     ` Jason Gunthorpe
2022-06-03 15:20       ` Tony Krowiak
2022-06-02 17:19 ` [PATCH v1 04/18] vfio/ccw: Do not change FSM state in subchannel event Eric Farman
2022-06-02 17:19 ` [PATCH v1 05/18] vfio/ccw: Remove private->mdev Eric Farman
2022-06-02 19:02   ` Jason Gunthorpe
2022-06-02 19:13     ` Eric Farman
2022-06-02 17:19 ` [PATCH v1 06/18] vfio/ccw: Pass enum to FSM event jumptable Eric Farman
2022-06-02 19:02   ` Jason Gunthorpe
2022-06-02 19:22   ` Matthew Rosato
2022-06-02 17:19 ` [PATCH v1 07/18] vfio/ccw: Flatten MDEV device (un)register Eric Farman
2022-06-02 19:03   ` Jason Gunthorpe
2022-06-02 19:14   ` Matthew Rosato
2022-06-03 20:38     ` Eric Farman
2022-06-02 17:19 ` [PATCH v1 08/18] vfio/ccw: Check that private pointer is not NULL Eric Farman
2022-06-02 19:04   ` Matthew Rosato
2022-06-02 19:05   ` Jason Gunthorpe
2022-06-02 17:19 ` [PATCH v1 09/18] vfio/ccw: Create an OPEN FSM Event Eric Farman
2022-06-02 19:08   ` Jason Gunthorpe
2022-06-02 17:19 ` [PATCH v1 10/18] vfio/ccw: Create a CLOSE FSM event Eric Farman
2022-06-02 19:10   ` Jason Gunthorpe
2022-06-02 17:19 ` [PATCH v1 11/18] vfio/ccw: Refactor vfio_ccw_mdev_reset Eric Farman
2022-06-02 19:11   ` Jason Gunthorpe
2022-06-02 17:19 ` [PATCH v1 12/18] vfio/ccw: Move FSM open/close to MDEV open/close Eric Farman
2022-06-02 19:14   ` Jason Gunthorpe
2022-06-02 17:19 ` [PATCH v1 13/18] vfio/mdev: Consolidate all the device_api sysfs into the core code Eric Farman
2022-06-03  6:36   ` Christoph Hellwig
2022-06-03 14:55   ` Tony Krowiak
2022-06-06 19:43   ` Kirti Wankhede
2022-06-10  7:22   ` Tian, Kevin
2022-06-02 17:19 ` [PATCH v1 14/18] vfio/mdev: Add mdev available instance checking to the core Eric Farman
2022-06-03 15:02   ` Tony Krowiak
2022-06-06 20:02   ` Kirti Wankhede
2022-06-06 20:23     ` Eric Farman
2022-06-06 20:37       ` Matthew Rosato
2022-06-10  7:43       ` Tian, Kevin
2022-06-13  6:46         ` Christoph Hellwig
2022-06-13 14:08           ` Eric Farman
2022-06-02 17:19 ` [PATCH v1 15/18] vfio/ccw: Manage private with mdev Eric Farman
2022-06-02 17:19 ` [PATCH v1 16/18] vfio/ccw: Create a get_private routine Eric Farman
2022-06-02 19:17   ` Jason Gunthorpe
2022-06-02 17:19 ` [PATCH v1 17/18] vfio: Export vfio_device_try_get() Eric Farman
2022-06-03  7:46   ` Cornelia Huck
2022-06-02 17:19 ` [PATCH v1 18/18] vfio/ccw: Manage ccw/mdev reference counts Eric Farman
2022-06-02 19:20   ` Jason Gunthorpe
2022-06-02 19:29 ` [PATCH v1 00/18] VFIO ccw/mdev rework Jason Gunthorpe
2022-06-10  4:11 ` Yi Liu

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=20220602171948.2790690-1-farman@linux.ibm.com \
    --to=farman@linux.ibm.com \
    --cc=akrowiak@linux.ibm.com \
    --cc=alex.williamson@redhat.com \
    --cc=corbet@lwn.net \
    --cc=intel-gvt-dev@lists.freedesktop.org \
    --cc=jgg@nvidia.com \
    --cc=jjherne@linux.ibm.com \
    --cc=kvm@vger.kernel.org \
    --cc=kwankhede@nvidia.com \
    --cc=linux-s390@vger.kernel.org \
    --cc=mjrosato@linux.ibm.com \
    --cc=pasic@linux.ibm.com \
    --cc=yi.l.liu@intel.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: link
Be 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.