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>,
	Dong Jia Shi <bjsdjshi@linux.vnet.ibm.com>,
	Pierre Morel <pmorel@linux.vnet.ibm.com>,
	qemu-devel@nongnu.org, qemu-s390x@nongnu.org
Subject: Re: [Qemu-devel] [PATCH v3 3/7] s390x: improve error handling for SSCH and RSCH
Date: Wed, 18 Oct 2017 11:58:07 +0200	[thread overview]
Message-ID: <20171018115807.46be9ff4.cohuck@redhat.com> (raw)
In-Reply-To: <1afce88d-ce14-f311-aa4f-b5fc4f69357a@redhat.com>

On Wed, 18 Oct 2017 11:52:03 +0200
Thomas Huth <thuth@redhat.com> wrote:

> On 18.10.2017 11:30, Thomas Huth wrote:
> > On 17.10.2017 16:04, Halil Pasic wrote:  
> >> Simplify the error handling of the SSCH and RSCH handler avoiding
> >> arbitrary and cryptic error codes being used to tell how the instruction
> >> is supposed to end.  Let the code detecting the condition tell how it's
> >> to be handled in a less ambiguous way.  It's best to handle SSCH and RSCH
> >> in one go as the emulation of the two shares a lot of code.
> >>
> >> For passthrough this change isn't pure refactoring, but changes the way
> >> kernel reported EFAULT is handled. After clarifying the kernel interface
> >> we decided that EFAULT shall be mapped to unit exception.  Same goes for
> >> unexpected error codes and absence of required ORB flags.
> >>
> >> Signed-off-by: Halil Pasic <pasic@linux.vnet.ibm.com>  
> [...]
> >> @@ -71,10 +71,24 @@ again:
> >>              goto again;
> >>          }
> >>          error_report("vfio-ccw: wirte I/O region failed with errno=%d", errno);
> >> -        return -errno;
> >> +        ret = -errno;
> >> +    } else {
> >> +        ret = region->ret_code;
> >> +    }
> >> +    switch (-ret) {
> >> +    case 0:
> >> +        return IOINST_CC_EXPECTED;
> >> +    case EBUSY:
> >> +        return IOINST_CC_BUSY;
> >> +    case ENODEV:
> >> +    case EACCES:
> >> +        return IOINST_CC_NOT_OPERATIONAL;
> >> +    case EFAULT:
> >> +    default:
> >> +        sch_gen_unit_exception(sch);
> >> +        css_inject_io_interrupt(sch);
> >> +        return IOINST_CC_EXPECTED;  
> > 
> > Do we feel really confident that it is OK to do the setcc() in case of
> > an exception here later? ... otherwise it might be necessery to
> > introduce something like IOINST_EXCEPTION to the enum to signal the
> > ioinst_handle_xxx() callers that they should not do the setcc() anymore...  
> 
> ... or maybe rather at least return IOINST_CC_STATUS_PRESENT instead?
> IOINST_CC_EXPECTED sounds somewhat wrong to me here.

But the ssch did conclude as expected :)

Keep in mind that QEMU performs the start function synchronously (i.e.,
before the condition code is set). On real hardware, you get a cc 0 for
the ssch if the subchannel is basically in a status that's ok for
triggering the start function. A unit exception is a possible result of
the start function (and therefore generating an I/O interrupt, which
you only get if ssch set cc 0.)

  reply	other threads:[~2017-10-18  9:58 UTC|newest]

Thread overview: 49+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-10-17 14:04 [Qemu-devel] [PATCH v3 0/7] improve error handling for IO instr Halil Pasic
2017-10-17 14:04 ` [Qemu-devel] [PATCH v3 1/7] s390x/css: be more consistent if broken beyond repair Halil Pasic
2017-10-18  8:13   ` Thomas Huth
2017-10-17 14:04 ` [Qemu-devel] [PATCH v3 2/7] s390x/css: IO instr handler ending control Halil Pasic
2017-10-17 14:58   ` Cornelia Huck
2017-10-17 16:13     ` Halil Pasic
2017-10-18  8:45   ` Thomas Huth
2017-10-18  9:34     ` Cornelia Huck
2017-10-18  9:13   ` Dong Jia Shi
2017-10-17 14:04 ` [Qemu-devel] [PATCH v3 3/7] s390x: improve error handling for SSCH and RSCH Halil Pasic
2017-10-17 15:06   ` Cornelia Huck
2017-10-18  9:30   ` Thomas Huth
2017-10-18  9:52     ` Thomas Huth
2017-10-18  9:58       ` Cornelia Huck [this message]
2017-10-18 10:02         ` Thomas Huth
2017-10-18  9:52     ` Cornelia Huck
2017-10-18 10:07       ` Thomas Huth
2017-10-18 11:07         ` Halil Pasic
2017-10-18 11:12           ` Thomas Huth
2017-10-18 11:17             ` Halil Pasic
2017-10-19  6:06   ` Dong Jia Shi
2017-10-17 14:04 ` [Qemu-devel] [PATCH v3 4/7] s390x: refactor error handling for XSCH handler Halil Pasic
2017-10-17 15:07   ` Cornelia Huck
2017-10-18  9:33   ` Thomas Huth
2017-10-19  6:11   ` Dong Jia Shi
2017-10-19  9:10     ` Halil Pasic
2017-10-17 14:04 ` [Qemu-devel] [PATCH v3 5/7] s390x: refactor error handling for CSCH handler Halil Pasic
2017-10-17 15:09   ` Cornelia Huck
2017-10-18  9:36   ` Thomas Huth
2017-10-19  6:14   ` Dong Jia Shi
2017-10-19  9:11     ` Cornelia Huck
2017-10-17 14:04 ` [Qemu-devel] [PATCH v3 6/7] s390x: refactor error handling for HSCH handler Halil Pasic
2017-10-17 15:10   ` Cornelia Huck
2017-10-18  9:55   ` Thomas Huth
2017-10-19  6:17   ` Dong Jia Shi
2017-10-17 14:04 ` [Qemu-devel] [PATCH v3 7/7] s390x: refactor error handling for MSCH handler Halil Pasic
2017-10-17 15:11   ` Cornelia Huck
2017-10-18 10:00   ` Thomas Huth
2017-10-18 10:02     ` Cornelia Huck
2017-10-18 11:01       ` Halil Pasic
2017-10-19  6:23         ` Dong Jia Shi
2017-10-17 15:13 ` [Qemu-devel] [PATCH v3 0/7] improve error handling for IO instr Cornelia Huck
2017-10-17 16:19   ` Halil Pasic
2017-10-18  7:38     ` Cornelia Huck
2017-10-18  8:23     ` Dong Jia Shi
2017-10-18  9:53       ` Cornelia Huck
2017-10-19  6:01         ` Dong Jia Shi
2017-10-18 12:50 ` Cornelia Huck
2017-10-19 10:46 ` Cornelia Huck

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=20171018115807.46be9ff4.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=qemu-s390x@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.