[PATCH v4 0/4] s390x: Fix IRB sense data

Eric Farman posted 4 patches 2 years, 10 months ago
Test checkpatch passed
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/qemu tags/patchew/20210617232537.1337506-1-farman@linux.ibm.com
Maintainers: Christian Borntraeger <borntraeger@de.ibm.com>, Halil Pasic <pasic@linux.ibm.com>, Richard Henderson <richard.henderson@linaro.org>, Matthew Rosato <mjrosato@linux.ibm.com>, David Hildenbrand <david@redhat.com>, "Michael S. Tsirkin" <mst@redhat.com>, Eric Farman <farman@linux.ibm.com>, Alex Williamson <alex.williamson@redhat.com>, Cornelia Huck <cohuck@redhat.com>, Thomas Huth <thuth@redhat.com>
hw/s390x/3270-ccw.c       |  1 +
hw/s390x/css.c            | 87 ++++++++++++++++++++++++++++-----------
hw/s390x/s390-ccw.c       |  1 +
hw/s390x/virtio-ccw.c     |  1 +
hw/vfio/ccw.c             |  4 ++
include/hw/s390x/css.h    |  5 +++
include/hw/s390x/ioinst.h | 12 +++++-
7 files changed, 86 insertions(+), 25 deletions(-)
[PATCH v4 0/4] s390x: Fix IRB sense data
Posted by Eric Farman 2 years, 10 months ago
Conny, et al,

Here is a quick update to the series for fixing passthrough
sense data in the irb, using a subchannel-specific callback.

As before, the first three patches are code refactoring.
Since patch 3 doesn't implement the callback for vfio-ccw
subchannels, it fixes the problem encountered with
"dasdfmt -M quick" failing to run correctly in the guest.
Since the callback isn't invoked for passthrough subchannels
the SCSW and ERW bits don't get set indicating sense data
is present, even though the sense data itself is still zero.

Patch 4 implements that for vfio-ccw.

v3->v4:
 - [CH] Rename ESW.sublog to ESW.word0
 - [CH] Add comment that ESW.f_addr and .s_addr are only Fmt0 ESW
 - [CH] Always copy ECW data into IRB to include mysterious
        "model-dependent information" that could exist there
 - [TH] Added r-b to patch 2 (thank you!!)

v2->v3:
 - [EF] Drop Fixes tag
 - [CH] Implement a callback for the IRB sense data
 - [CH] Copy IRB.ESW from passthrough hardware
 - [CH] Only put sense in IRB.ECW if passthrough device did

v1->v2:
 - [MR] Add Fixes: tags
 - [CH] Reinstate the memcpy(sch->sense_data, irb.ecw) in vfio_ccw
 - [CH] Look at IRB.SCSW.E before copying sense into guest IRB

v3: https://lore.kernel.org/qemu-devel/20210616014749.2460133-1-farman@linux.ibm.com/
v2: https://lore.kernel.org/qemu-devel/20210611202151.615410-1-farman@linux.ibm.com/
v1: https://lore.kernel.org/qemu-devel/20210610202011.391029-1-farman@linux.ibm.com/

Eric Farman (4):
  s390x/css: Introduce an ESW struct
  s390x/css: Split out the IRB sense data
  s390x/css: Refactor IRB construction
  s390x/css: Add passthrough IRB

 hw/s390x/3270-ccw.c       |  1 +
 hw/s390x/css.c            | 87 ++++++++++++++++++++++++++++-----------
 hw/s390x/s390-ccw.c       |  1 +
 hw/s390x/virtio-ccw.c     |  1 +
 hw/vfio/ccw.c             |  4 ++
 include/hw/s390x/css.h    |  5 +++
 include/hw/s390x/ioinst.h | 12 +++++-
 7 files changed, 86 insertions(+), 25 deletions(-)

-- 
2.25.1


Re: [PATCH v4 0/4] s390x: Fix IRB sense data
Posted by Cornelia Huck 2 years, 10 months ago
On Fri, Jun 18 2021, Eric Farman <farman@linux.ibm.com> wrote:

> Conny, et al,
>
> Here is a quick update to the series for fixing passthrough
> sense data in the irb, using a subchannel-specific callback.
>
> As before, the first three patches are code refactoring.
> Since patch 3 doesn't implement the callback for vfio-ccw
> subchannels, it fixes the problem encountered with
> "dasdfmt -M quick" failing to run correctly in the guest.
> Since the callback isn't invoked for passthrough subchannels
> the SCSW and ERW bits don't get set indicating sense data
> is present, even though the sense data itself is still zero.
>
> Patch 4 implements that for vfio-ccw.
>

LGTM. I'll take it for a spin and probably queue it.

> v3->v4:
>  - [CH] Rename ESW.sublog to ESW.word0
>  - [CH] Add comment that ESW.f_addr and .s_addr are only Fmt0 ESW
>  - [CH] Always copy ECW data into IRB to include mysterious
>         "model-dependent information" that could exist there
>  - [TH] Added r-b to patch 2 (thank you!!)
>
> v2->v3:
>  - [EF] Drop Fixes tag
>  - [CH] Implement a callback for the IRB sense data
>  - [CH] Copy IRB.ESW from passthrough hardware
>  - [CH] Only put sense in IRB.ECW if passthrough device did
>
> v1->v2:
>  - [MR] Add Fixes: tags
>  - [CH] Reinstate the memcpy(sch->sense_data, irb.ecw) in vfio_ccw
>  - [CH] Look at IRB.SCSW.E before copying sense into guest IRB
>
> v3: https://lore.kernel.org/qemu-devel/20210616014749.2460133-1-farman@linux.ibm.com/
> v2: https://lore.kernel.org/qemu-devel/20210611202151.615410-1-farman@linux.ibm.com/
> v1: https://lore.kernel.org/qemu-devel/20210610202011.391029-1-farman@linux.ibm.com/
>
> Eric Farman (4):
>   s390x/css: Introduce an ESW struct
>   s390x/css: Split out the IRB sense data
>   s390x/css: Refactor IRB construction
>   s390x/css: Add passthrough IRB
>
>  hw/s390x/3270-ccw.c       |  1 +
>  hw/s390x/css.c            | 87 ++++++++++++++++++++++++++++-----------
>  hw/s390x/s390-ccw.c       |  1 +
>  hw/s390x/virtio-ccw.c     |  1 +
>  hw/vfio/ccw.c             |  4 ++
>  include/hw/s390x/css.h    |  5 +++
>  include/hw/s390x/ioinst.h | 12 +++++-
>  7 files changed, 86 insertions(+), 25 deletions(-)


Re: [PATCH v4 0/4] s390x: Fix IRB sense data
Posted by Cornelia Huck 2 years, 10 months ago
On Fri, Jun 18 2021, Eric Farman <farman@linux.ibm.com> wrote:

> Conny, et al,
>
> Here is a quick update to the series for fixing passthrough
> sense data in the irb, using a subchannel-specific callback.
>
> As before, the first three patches are code refactoring.
> Since patch 3 doesn't implement the callback for vfio-ccw
> subchannels, it fixes the problem encountered with
> "dasdfmt -M quick" failing to run correctly in the guest.
> Since the callback isn't invoked for passthrough subchannels
> the SCSW and ERW bits don't get set indicating sense data
> is present, even though the sense data itself is still zero.
>
> Patch 4 implements that for vfio-ccw.

Thanks, applied (with the discussed modifications in patch 1).

[s390-next is getting full; I plan to send a pull req on Monday, as it
is a bit late in the day for me already.]

>
> v3->v4:
>  - [CH] Rename ESW.sublog to ESW.word0
>  - [CH] Add comment that ESW.f_addr and .s_addr are only Fmt0 ESW
>  - [CH] Always copy ECW data into IRB to include mysterious
>         "model-dependent information" that could exist there
>  - [TH] Added r-b to patch 2 (thank you!!)
>
> v2->v3:
>  - [EF] Drop Fixes tag
>  - [CH] Implement a callback for the IRB sense data
>  - [CH] Copy IRB.ESW from passthrough hardware
>  - [CH] Only put sense in IRB.ECW if passthrough device did
>
> v1->v2:
>  - [MR] Add Fixes: tags
>  - [CH] Reinstate the memcpy(sch->sense_data, irb.ecw) in vfio_ccw
>  - [CH] Look at IRB.SCSW.E before copying sense into guest IRB
>
> v3: https://lore.kernel.org/qemu-devel/20210616014749.2460133-1-farman@linux.ibm.com/
> v2: https://lore.kernel.org/qemu-devel/20210611202151.615410-1-farman@linux.ibm.com/
> v1: https://lore.kernel.org/qemu-devel/20210610202011.391029-1-farman@linux.ibm.com/
>
> Eric Farman (4):
>   s390x/css: Introduce an ESW struct
>   s390x/css: Split out the IRB sense data
>   s390x/css: Refactor IRB construction
>   s390x/css: Add passthrough IRB
>
>  hw/s390x/3270-ccw.c       |  1 +
>  hw/s390x/css.c            | 87 ++++++++++++++++++++++++++++-----------
>  hw/s390x/s390-ccw.c       |  1 +
>  hw/s390x/virtio-ccw.c     |  1 +
>  hw/vfio/ccw.c             |  4 ++
>  include/hw/s390x/css.h    |  5 +++
>  include/hw/s390x/ioinst.h | 12 +++++-
>  7 files changed, 86 insertions(+), 25 deletions(-)