All of lore.kernel.org
 help / color / mirror / Atom feed
From: Cornelia Huck <cohuck@redhat.com>
To: Thomas Huth <thuth@redhat.com>
Cc: Halil Pasic <pasic@linux.vnet.ibm.com>,
	Pierre Morel <pmorel@linux.vnet.ibm.com>,
	Dong Jia Shi <bjsdjshi@linux.vnet.ibm.com>,
	qemu-devel@nongnu.org
Subject: Re: [Qemu-devel] [PATCH 1/9] s390x/css: fix cc handling for XSCH
Date: Thu, 31 Aug 2017 10:42:43 +0200	[thread overview]
Message-ID: <20170831104243.43cd8992.cohuck@redhat.com> (raw)
In-Reply-To: <c8bbd500-c5b6-dd66-1e84-feb80978ee34@redhat.com>

On Thu, 31 Aug 2017 09:32:49 +0200
Thomas Huth <thuth@redhat.com> wrote:

> On 31.08.2017 08:38, Cornelia Huck wrote:
> > On Thu, 31 Aug 2017 07:51:17 +0200
> > Thomas Huth <thuth@redhat.com> wrote:
> >   
> >> On 30.08.2017 18:36, Halil Pasic wrote:  
> >>> The function ioinst_handle_xsch is presenting cc 2 when it's supposed to
> >>> present cc 1 and the other way around, because css_do_xsch has the error
> >>> codes mixed up. Fixing the error codes also fixes the priority.
> >>>
> >>> Let us fix this.    
> >>
> >> (Nit: In case you respin, I'd suggest to remove the last sentence. You
> >> already used "fix" two times in the previous one)  
> > 
> > I can also remove it on applying, if Halil agrees (I have not yet
> > reviewed it, though).
> >   
> >>  
> >>> Signed-off-by: Halil Pasic <pasic@linux.vnet.ibm.com>
> >>> Reported-by: Pierre Morel<pmorel@linux.vnet.ibm.com>    
> >>
> >> Space missing -------------^  
> > 
> > And I can also add that space on applying :)
> >   
> >>  
> >>> ---
> >>>  hw/s390x/css.c | 4 ++--
> >>>  1 file changed, 2 insertions(+), 2 deletions(-)
> >>>
> >>> diff --git a/hw/s390x/css.c b/hw/s390x/css.c
> >>> index 1880b1a0ff..a50fb0727e 100644
> >>> --- a/hw/s390x/css.c
> >>> +++ b/hw/s390x/css.c
> >>> @@ -1281,12 +1281,12 @@ int css_do_xsch(SubchDev *sch)
> >>>          (!(s->ctrl &
> >>>             (SCSW_ACTL_RESUME_PEND | SCSW_ACTL_START_PEND | SCSW_ACTL_SUSP))) ||
> >>>          (s->ctrl & SCSW_ACTL_SUBCH_ACTIVE)) {
> >>> -        ret = -EINPROGRESS;
> >>> +        ret = -EBUSY;
> >>>          goto out;
> >>>      }
> >>>  
> >>>      if (s->ctrl & SCSW_CTRL_MASK_STCTL) {
> >>> -        ret = -EBUSY;
> >>> +        ret = -EINPROGRESS;
> >>>          goto out;
> >>>      }    
> >>
> >> Using both, EBUSY and EINPROGRESS as error codes sounds very confusing
> >> to me here ... what's the difference between busy and in-progress? So
> >> while you're at it, maybe you could replace the code for CC 2 ("CANCEL
> >> SUBCHANNEL not applicable") with a different error code?  
> > 
> > IIRC, I used these two as they matched my idea of what happens best
> > (there's a difference between "subchannel is busy" and "the I/O is
> > already in progress, too late to cancel"). "xsch not applicable" is
> > very hard to translate to an Unix error code :/  
> 
> OK, the codes make more sense with your description ==> Maybe simply add
> a proper comment for each of the return codes?

Taking a step back and looking at the other I/O instructions and their
implementation in qemu:

- For those instructions that can set it, cc 1 is set when the
  subchannel is status pending. That's usually the "default" branch in
  ioinst.c.
- cc 2 is set when the subchannel is "busy" (or, in the case of xsch,
  "not applicable for xsch"... sigh) This is supposed to be handled via
  -EBUSY.

So, there are actually two problems with the current implementation of
xsch:

- The return codes are switched around, which this patch fixes.
- But "status pending" should also take precedence over "not
  applicable", if I read the PoP correctly, so the second if needs to
  be moved up.

And yes, it makes sense do add some comments...

  reply	other threads:[~2017-08-31  8:42 UTC|newest]

Thread overview: 60+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-08-30 16:36 [Qemu-devel] [PATCH 0/9] Halil Pasic
2017-08-30 16:36 ` [Qemu-devel] [PATCH 1/9] s390x/css: fix cc handling for XSCH Halil Pasic
2017-08-31  5:51   ` Thomas Huth
2017-08-31  6:38     ` Cornelia Huck
2017-08-31  7:32       ` Thomas Huth
2017-08-31  8:42         ` Cornelia Huck [this message]
2017-08-31 10:19           ` Halil Pasic
2017-08-31  9:09     ` Halil Pasic
2017-08-31  9:16       ` Thomas Huth
2017-08-30 16:36 ` [Qemu-devel] [PATCH 2/9] s390x: fix invalid use of cc 1 for SSCH Halil Pasic
2017-08-31  7:50   ` Thomas Huth
2017-08-31 10:54     ` Halil Pasic
2017-08-31  9:19   ` Cornelia Huck
2017-08-31 10:41     ` Halil Pasic
2017-09-05  8:02       ` Cornelia Huck
2017-09-05 15:24         ` Halil Pasic
2017-09-05 15:46           ` Cornelia Huck
2017-09-05 17:20             ` Halil Pasic
2017-09-06  8:27               ` Dong Jia Shi
2017-09-06 11:25                 ` Cornelia Huck
2017-09-07  8:02                   ` Dong Jia Shi
2017-09-07 11:01                     ` Halil Pasic
2017-09-13 10:08                       ` Cornelia Huck
2017-09-13 14:05                         ` Halil Pasic
2017-09-06 11:37               ` Cornelia Huck
2017-09-06  8:37             ` Dong Jia Shi
2017-09-06 11:38               ` Cornelia Huck
2017-08-30 16:36 ` [Qemu-devel] [PATCH 3/9] s390x/css: be more consistent if broken beyond repair Halil Pasic
2017-08-31  6:10   ` Thomas Huth
2017-08-31  7:44     ` Thomas Huth
2017-08-31  9:33   ` Cornelia Huck
2017-08-30 16:36 ` [Qemu-devel] [PATCH 4/9] s390x: refactor error handling for SSCH and RSCH Halil Pasic
2017-08-31  9:55   ` Cornelia Huck
2017-09-05 15:55     ` Halil Pasic
2017-09-05 16:25       ` Cornelia Huck
2017-09-05 22:30         ` Halil Pasic
2017-09-06  4:31           ` Dong Jia Shi
2017-09-06 12:25             ` Halil Pasic
2017-09-06 14:20               ` Cornelia Huck
2017-09-06 14:43                 ` Halil Pasic
2017-09-07  8:58                   ` Dong Jia Shi
2017-09-07 10:15                     ` Halil Pasic
2017-09-07 10:24                     ` Cornelia Huck
2017-09-07 11:32                       ` Halil Pasic
2017-09-07 11:41                         ` Cornelia Huck
2017-09-08  3:41                           ` Dong Jia Shi
2017-09-08  9:21                             ` Halil Pasic
2017-09-08  9:59                               ` Cornelia Huck
2017-09-25  7:31                                 ` Dong Jia Shi
2017-09-25 10:57                                   ` Halil Pasic
2017-09-27  7:55                                     ` Dong Jia Shi
2017-09-08 10:02                             ` Cornelia Huck
2017-09-25  7:14                               ` Dong Jia Shi
2017-08-30 16:36 ` [Qemu-devel] [PATCH 5/9] s390x: refactor error handling for XSCH handler Halil Pasic
2017-08-30 16:36 ` [Qemu-devel] [PATCH 6/9] s390x: refactor error handling for CSCH handler Halil Pasic
2017-08-30 16:36 ` [Qemu-devel] [PATCH 7/9] s390x: refactor error handling for HSCH handler Halil Pasic
2017-08-30 16:36 ` [Qemu-devel] [PATCH 8/9] s390x: refactor error handling for MSCH handler Halil Pasic
2017-08-30 16:36 ` [Qemu-devel] [PATCH 9/9] s390x: factor out common ioinst handler logic Halil Pasic
2017-08-31 10:04 ` [Qemu-devel] [PATCH 0/9] Cornelia Huck
2017-08-31 10:43   ` Halil Pasic

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=20170831104243.43cd8992.cohuck@redhat.com \
    --to=cohuck@redhat.com \
    --cc=bjsdjshi@linux.vnet.ibm.com \
    --cc=pasic@linux.vnet.ibm.com \
    --cc=pmorel@linux.vnet.ibm.com \
    --cc=qemu-devel@nongnu.org \
    --cc=thuth@redhat.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.