Re: [PATCH RFC 2/2] vfio-ccw: support for halt/clear subchannel
From: Cornelia Huck
Date: Tue May 22 2018 - 07:58:04 EST
On Wed, 16 May 2018 15:32:48 +0200
Pierre Morel <pmorel@xxxxxxxxxxxxx> wrote:
> On 15/05/2018 18:10, Cornelia Huck wrote:
> > On Fri, 11 May 2018 11:33:35 +0200
> > Pierre Morel <pmorel@xxxxxxxxxxxxx> wrote:
> >
> >> On 09/05/2018 17:48, Cornelia Huck wrote:
> >>> @@ -126,7 +192,24 @@ static void fsm_io_request(struct vfio_ccw_private *private,
> >>>
> >>> memcpy(scsw, io_region->scsw_area, sizeof(*scsw));
> >>>
> >>> - if (scsw->cmd.fctl & SCSW_FCTL_START_FUNC) {
> >>> + /*
> >>> + * Start processing with the clear function, then halt, then start.
> >>> + * We may still be start pending when the caller wants to clean
> >>> + * up things via halt/clear.
> >>> + */
> >> hum. The scsw here does not reflect the hardware state but the
> >> command passed from the user interface.
> >> Can we and should we authorize multiple commands in one call?
> >>
> >> If not, the comment is not appropriate and a switch on cmd.fctl
> >> would be a clearer.
> > There may be multiple functions specified, but we need to process them
> > in precedence order (and clear wins over the others, so to speak).
> > Would adding a sentence like "we always process just one function" help?
>
> Why should we allow multiple commands in a single call ?
> It brings no added value.
> Is there a use case?
> Currently QEMU does not do this and since we only have the SCSH there
> is no difference having the bit set alone or not alone.
I found this to be a very easy way to implement halt/clear. This still
holds true if we switch to some kind of capabilities for this (did not
have time to look at this further, though).
As we have the fctl field anyway, I'm in favour of processing this all
in one function.