Re: [PATCH 04/10] vfio: ccw: replace IO_REQ event with SSCH_REQ event

From: Cornelia Huck
Date: Mon Apr 30 2018 - 11:30:38 EST


On Wed, 25 Apr 2018 15:52:19 +0200
Pierre Morel <pmorel@xxxxxxxxxxxxxxxxxx> wrote:

> On 25/04/2018 10:41, Cornelia Huck wrote:
> > On Thu, 19 Apr 2018 16:48:07 +0200
> > Pierre Morel<pmorel@xxxxxxxxxxxxxxxxxx> wrote:

> >> diff --git a/drivers/s390/cio/vfio_ccw_private.h b/drivers/s390/cio/vfio_ccw_private.h
> >> index 3284e64..93aab87 100644
> >> --- a/drivers/s390/cio/vfio_ccw_private.h
> >> +++ b/drivers/s390/cio/vfio_ccw_private.h
> >> @@ -76,7 +76,7 @@ enum vfio_ccw_state {
> >> */
> >> enum vfio_ccw_event {
> >> VFIO_CCW_EVENT_NOT_OPER,
> >> - VFIO_CCW_EVENT_IO_REQ,
> >> + VFIO_CCW_EVENT_SSCH_REQ,
> >> VFIO_CCW_EVENT_INTERRUPT,
> >> VFIO_CCW_EVENT_SCH_EVENT,
> >> /* last element! */
> > I don't think we should separate the ssch handling. The major
> > difference to halt/clear is that it needs channel program translation.
> > Everything else (issuing the instruction and processing the interrupt)
> > are basically the same. If we just throw everything at the hardware
> > and let the host's channel subsystem figure it out, we already should
> > be fine with regard to most of the races.
>
> We must test at a moment or another the kind of request we do,
> cancel, halt and clear only need the subchannel id in register 1 and as
> you said are much more direct to implement.
>
> If we do not separate them here, we need a switch in the "do_io_request"
> function.
> Is it what you mean?

Yes. Most of the handling should be the same for any function.