From: Cornelia Huck <cohuck@redhat.com>
To: Pierre Morel <pmorel@linux.ibm.com>
Cc: linux-s390@vger.kernel.org, Eric Farman <farman@linux.ibm.com>,
Alex Williamson <alex.williamson@redhat.com>,
kvm@vger.kernel.org, Farhan Ali <alifm@linux.ibm.com>,
qemu-devel@nongnu.org, Halil Pasic <pasic@linux.ibm.com>,
qemu-s390x@nongnu.org
Subject: Re: [PATCH 2/2] vfio-ccw: support async command subregion
Date: Mon, 26 Nov 2018 19:07:10 +0100 [thread overview]
Message-ID: <20181126190710.13ad827b.cohuck@redhat.com> (raw)
In-Reply-To: <0a15ec08-5902-b6fa-f00d-883c0905c56b@linux.ibm.com>
On Mon, 26 Nov 2018 19:01:55 +0100
Pierre Morel <pmorel@linux.ibm.com> wrote:
> On 26/11/2018 10:58, Cornelia Huck wrote:
> > On Fri, 23 Nov 2018 15:13:12 +0100
> > Pierre Morel <pmorel@linux.ibm.com> wrote:
> >
> >> On 22/11/2018 17:54, Cornelia Huck wrote:
> >>> A vfio-ccw device may provide an async command subregion for
> >>> issuing halt/clear subchannel requests. If it is present, use
> >>> it for sending halt/clear request to the device; if not, fall
> >>> back to emulation (as done today).
> >>>
> >>> Signed-off-by: Cornelia Huck <cohuck@redhat.com>
> >>> ---
> >>> hw/s390x/css.c | 27 +++++++--
> >>> hw/vfio/ccw.c | 109 +++++++++++++++++++++++++++++++++++-
> >>> include/hw/s390x/s390-ccw.h | 3 +
> >>> 3 files changed, 133 insertions(+), 6 deletions(-)
> >>>
> >
> >>> @@ -114,6 +120,87 @@ again:
> >>> }
> >>> }
> >>>
> >>> +int vfio_ccw_handle_clear(SubchDev *sch)
> >>> +{
> >>> + S390CCWDevice *cdev = sch->driver_data;
> >>> + VFIOCCWDevice *vcdev = DO_UPCAST(VFIOCCWDevice, cdev, cdev);
> >>> + struct ccw_cmd_region *region = vcdev->async_cmd_region;
> >>> + int ret;
> >>> +
> >>> + if (!vcdev->async_cmd_region) {
> >>> + /* Async command region not available, fall back to emulation */
> >>> + return -ENOSYS;
> >>> + }
> >>> +
> >>> + memset(region, 0, sizeof(*region));
> >>> + region->command = VFIO_CCW_ASYNC_CMD_CSCH;
> >>> +
> >>> +again:
> >>> + ret = pwrite(vcdev->vdev.fd, region,
> >>> + vcdev->async_cmd_region_size, vcdev->async_cmd_region_offset);
> >>> + if (ret != vcdev->async_cmd_region_size) {
> >>> + if (errno == EAGAIN) {
> >>
> >>
> >> Where do the EAGAIN come from?
> >
> > It might be set by pwrite.
>
> I saw that the man indicate this, and so we are legitimate to handle the
> fail case, but I did not find EAGAIN in the path of the write for
> accessing devices and I did not find it in the access to the CSS.
>
> If we do not set it explicitly from the driver, the concern I have is:
> isn't it dangerous to try again and shouldn't we better abort?
If it is set by the reason stated in the man page, retry sounds like
the sensible thing, doesn't it? I don't think I've yet seen it in
practice, though.
[I don't think we should need to comb through the whole code path to
find out what might happen or not, at some point we'll just have to
trust the documentation.]
WARNING: multiple messages have this Message-ID (diff)
From: Cornelia Huck <cohuck@redhat.com>
To: Pierre Morel <pmorel@linux.ibm.com>
Cc: Halil Pasic <pasic@linux.ibm.com>,
Eric Farman <farman@linux.ibm.com>,
Farhan Ali <alifm@linux.ibm.com>,
linux-s390@vger.kernel.org, kvm@vger.kernel.org,
qemu-s390x@nongnu.org, qemu-devel@nongnu.org,
Alex Williamson <alex.williamson@redhat.com>
Subject: Re: [Qemu-devel] [PATCH 2/2] vfio-ccw: support async command subregion
Date: Mon, 26 Nov 2018 19:07:10 +0100 [thread overview]
Message-ID: <20181126190710.13ad827b.cohuck@redhat.com> (raw)
In-Reply-To: <0a15ec08-5902-b6fa-f00d-883c0905c56b@linux.ibm.com>
On Mon, 26 Nov 2018 19:01:55 +0100
Pierre Morel <pmorel@linux.ibm.com> wrote:
> On 26/11/2018 10:58, Cornelia Huck wrote:
> > On Fri, 23 Nov 2018 15:13:12 +0100
> > Pierre Morel <pmorel@linux.ibm.com> wrote:
> >
> >> On 22/11/2018 17:54, Cornelia Huck wrote:
> >>> A vfio-ccw device may provide an async command subregion for
> >>> issuing halt/clear subchannel requests. If it is present, use
> >>> it for sending halt/clear request to the device; if not, fall
> >>> back to emulation (as done today).
> >>>
> >>> Signed-off-by: Cornelia Huck <cohuck@redhat.com>
> >>> ---
> >>> hw/s390x/css.c | 27 +++++++--
> >>> hw/vfio/ccw.c | 109 +++++++++++++++++++++++++++++++++++-
> >>> include/hw/s390x/s390-ccw.h | 3 +
> >>> 3 files changed, 133 insertions(+), 6 deletions(-)
> >>>
> >
> >>> @@ -114,6 +120,87 @@ again:
> >>> }
> >>> }
> >>>
> >>> +int vfio_ccw_handle_clear(SubchDev *sch)
> >>> +{
> >>> + S390CCWDevice *cdev = sch->driver_data;
> >>> + VFIOCCWDevice *vcdev = DO_UPCAST(VFIOCCWDevice, cdev, cdev);
> >>> + struct ccw_cmd_region *region = vcdev->async_cmd_region;
> >>> + int ret;
> >>> +
> >>> + if (!vcdev->async_cmd_region) {
> >>> + /* Async command region not available, fall back to emulation */
> >>> + return -ENOSYS;
> >>> + }
> >>> +
> >>> + memset(region, 0, sizeof(*region));
> >>> + region->command = VFIO_CCW_ASYNC_CMD_CSCH;
> >>> +
> >>> +again:
> >>> + ret = pwrite(vcdev->vdev.fd, region,
> >>> + vcdev->async_cmd_region_size, vcdev->async_cmd_region_offset);
> >>> + if (ret != vcdev->async_cmd_region_size) {
> >>> + if (errno == EAGAIN) {
> >>
> >>
> >> Where do the EAGAIN come from?
> >
> > It might be set by pwrite.
>
> I saw that the man indicate this, and so we are legitimate to handle the
> fail case, but I did not find EAGAIN in the path of the write for
> accessing devices and I did not find it in the access to the CSS.
>
> If we do not set it explicitly from the driver, the concern I have is:
> isn't it dangerous to try again and shouldn't we better abort?
If it is set by the reason stated in the man page, retry sounds like
the sensible thing, doesn't it? I don't think I've yet seen it in
practice, though.
[I don't think we should need to comb through the whole code path to
find out what might happen or not, at some point we'll just have to
trust the documentation.]
next prev parent reply other threads:[~2018-11-26 18:07 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-11-22 16:54 [PATCH 0/2] vfio-ccw: support hsch/csch (QEMU part) Cornelia Huck
2018-11-22 16:54 ` [Qemu-devel] " Cornelia Huck
2018-11-22 16:54 ` [PATCH 1/2] vfio-ccw: new capability chain support Cornelia Huck
2018-11-22 16:54 ` [Qemu-devel] " Cornelia Huck
2018-11-23 14:12 ` Pierre Morel
2018-11-23 14:12 ` [Qemu-devel] " Pierre Morel
2018-11-22 16:54 ` [PATCH 2/2] vfio-ccw: support async command subregion Cornelia Huck
2018-11-22 16:54 ` [Qemu-devel] " Cornelia Huck
2018-11-23 14:13 ` Pierre Morel
2018-11-23 14:13 ` [Qemu-devel] " Pierre Morel
2018-11-26 9:58 ` Cornelia Huck
2018-11-26 9:58 ` [Qemu-devel] " Cornelia Huck
2018-11-26 18:01 ` Pierre Morel
2018-11-26 18:01 ` [Qemu-devel] " Pierre Morel
2018-11-26 18:07 ` Cornelia Huck [this message]
2018-11-26 18:07 ` 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=20181126190710.13ad827b.cohuck@redhat.com \
--to=cohuck@redhat.com \
--cc=alex.williamson@redhat.com \
--cc=alifm@linux.ibm.com \
--cc=farman@linux.ibm.com \
--cc=kvm@vger.kernel.org \
--cc=linux-s390@vger.kernel.org \
--cc=pasic@linux.ibm.com \
--cc=pmorel@linux.ibm.com \
--cc=qemu-devel@nongnu.org \
--cc=qemu-s390x@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 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.