From: Cornelia Huck <cohuck@redhat.com>
To: Halil Pasic <pasic@linux.vnet.ibm.com>
Cc: Dong Jia Shi <bjsdjshi@linux.vnet.ibm.com>,
Pierre Morel <pmorel@linux.vnet.ibm.com>,
qemu-devel@nongnu.org
Subject: Re: [Qemu-devel] [PATCH 2/9] s390x: fix invalid use of cc 1 for SSCH
Date: Tue, 5 Sep 2017 17:46:06 +0200 [thread overview]
Message-ID: <20170905174606.1e0c6404.cohuck@redhat.com> (raw)
In-Reply-To: <bff0fcd2-4c1d-b5da-2d11-dc479d9d7275@linux.vnet.ibm.com>
On Tue, 5 Sep 2017 17:24:19 +0200
Halil Pasic <pasic@linux.vnet.ibm.com> wrote:
> My problem with a program check (indicated by SCSW word 2 bit 10) is
> that, in my reading of the architecture, the semantic behind it is: The
> channel subsystem (not the cu or device) has detected, that the
> the channel program (previously submitted as an ORB) is erroneous. Which
> programs are erroneous is specified by the architecture. What we have
> here does not qualify.
>
> My idea was to rather blame the virtual hardware (device) and put no blame
> on the program nor he channel subsystem. This could be done using device
> status (unit check with command reject, maybe unit exception) or interface
> check. My train of thought was, the problem is not consistent across a
> device type, so it has to be device specific.
Unit exception might be a better way to express what is happening here.
At least, it moves us away from cc 1 and not towards cc 3 :)
>
> Of course blaming the device could mislead the person encountering the
> problem, and make him believe it's an non-virtual hardware problem.
>
> About the misleading, I think the best we can do is log out a message
> indicating what really happened.
Just document it in the code? If it doesn't happen with Linux as a
guest, it is highly unlikely to be seen in the wild.
>
> In the end I don't care that deeply about vfio-ccw, and this problem
> already took me more time than I intended to spend on this. We have
> people driving this whole vfio-ccw stuff and I'm not one of them (I'm
> rather in the supporting role).
>
> I'm also fine with me being credited with a reported-by once the
> more involved people figure out what to do, and keeping the vfio-ccw
> stuff as is. Should we go with that option?
If converting the reporting to a device status is straightforward
enough, let's do that. I'm fine with postponing this and waiting for a
real fix as well (I don't really have spare cycles to actually write
vfio-ccw code currently...)
> >>>> @@ -1115,7 +1112,7 @@ static int do_subchannel_work(SubchDev *sch)
> >>>> if (sch->do_subchannel_work) {
> >>>> return sch->do_subchannel_work(sch);
> >>>> } else {
> >>>> - return -EINVAL;
> >>>> + return -ENODEV;
> >>>
> >>> This rather seems like a job for an assert? If we don't have a function
> >>> for the 'asynchronous' handling of the various functions assigned for a
> >>> subchannel, that looks like an internal error.
> >>>
> >>
> >> IMHO it depends. Aborting qemu is heavy handed, and as an user I would not
> >> be happy about it. But certainly it is an assert situation. We can look for
> >> an even better solution, but I think this is an improvement. The logic behind
> >> is that the device is broken and can't be talked to properly.
> >
> > We currently don't have a vast array of subchannel types (and are
> > unlikely to get more types that need a different handler function). We
> > know the current ones are fine, and an assert would catch programming
> > errors early.
> >
>
> Despite of that we already had a problem of this type: see 1728cff2ab
> ("s390x/3270: fix instruction interception handler", 2017-06-09) by
> Dong Jia. If we had some automated testing covering all the asserts
> I would not think twice about using an assert here. But I don't think
> we do and I'm reluctant (not positive that assert is superior to what
> we have now). Maybe we could agree on reported by again.
Yes, we (as in generally 'we') are really lacking automated testing...
(it is somewhere on my todo list).
Either leave it as-is, or do an assert. -ENODEV just feels wrong.
next prev parent reply other threads:[~2017-09-05 15:46 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
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 [this message]
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=20170905174606.1e0c6404.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 \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).