Re: [PATCH v1 12/18] vfio/ccw: Move FSM open/close to MDEV open/close

Jason Gunthorpe
2022-06-02T19:14:09Z

On Thu, Jun 02, 2022 at 07:19:42PM +0200, Eric Farman wrote:
> Part of the confusion that has existed is the FSM lifecycle of
> subchannels between the common CSS driver and the vfio-ccw driver.
> During configuration, the FSM state goes from NOT_OPER to STANDBY
> to IDLE, but then back to NOT_OPER. For example:
>
> vfio_ccw_sch_probe: VFIO_CCW_STATE_NOT_OPER
> vfio_ccw_sch_probe: VFIO_CCW_STATE_STANDBY
> vfio_ccw_mdev_probe: VFIO_CCW_STATE_IDLE
> vfio_ccw_mdev_remove: VFIO_CCW_STATE_NOT_OPER
> vfio_ccw_sch_remove: VFIO_CCW_STATE_NOT_OPER
> vfio_ccw_sch_shutdown: VFIO_CCW_STATE_NOT_OPER
>
> Rearrange the open/close events to align with the mdev open/close,
> to better manage the memory and state of the devices as time
> progresses. Specifically, make mdev_open() perform the FSM open,
> and mdev_close() perform the FSM close instead of reset (which is
> both close and open).
>
> This makes the NOT_OPER state a dead-end path, indicating the
> device is probably not recoverable without fully probing and
> re-configuring the device.
>
> This has the nice side-effect of removing a number of special-cases
> where the FSM state is managed outside of the FSM itself (such as
> the aforementioned mdev_close() routine).
>
> Suggested-by: Jason Gunthorpe <jgg@nvidia.com>
> Signed-off-by: Eric Farman <farman@linux.ibm.com>
> ---
> drivers/s390/cio/vfio_ccw_drv.c | 11 +++--------
> drivers/s390/cio/vfio_ccw_fsm.c | 30 ++++++++++++++++++++++--------
> drivers/s390/cio/vfio_ccw_ops.c | 26 +++++++++++---------------
> 3 files changed, 36 insertions(+), 31 deletions(-)

Reviewed-by: Jason Gunthorpe <jgg@nvidia.com>

Jason