On Tue, 21 Apr 2020 07:02:03 -0400 Eric Farman <farman@xxxxxxxxxxxxx> wrote: > On 4/21/20 5:41 AM, Cornelia Huck wrote: > > On Fri, 17 Apr 2020 04:29:58 +0200 > > Eric Farman <farman@xxxxxxxxxxxxx> wrote: > >> diff --git a/Documentation/s390/vfio-ccw.rst b/Documentation/s390/vfio-ccw.rst > >> index 98832d95f395..3338551ef642 100644 > >> --- a/Documentation/s390/vfio-ccw.rst > >> +++ b/Documentation/s390/vfio-ccw.rst > >> @@ -247,6 +247,22 @@ This region is exposed via region type VFIO_REGION_SUBTYPE_CCW_SCHIB. > >> Reading this region triggers a STORE SUBCHANNEL to be issued to the > >> associated hardware. > >> > >> +vfio-ccw crw region > >> +--------------------- > >> + > >> +The vfio-ccw crw region is used to return Channel Report Word (CRW) > >> +data to userspace:: > >> + > >> + struct ccw_crw_region { > >> + __u32 crw; > >> + } __packed; > >> + > >> +This region is exposed via region type VFIO_REGION_SUBTYPE_CCW_CRW. > >> + > >> +Currently, space is provided for a single CRW. Handling of chained > >> +CRWs (not implemented in vfio-ccw) can be accomplished by re-reading > >> +the region for additional CRW data. > > > > What about the following instead: > > > > "Reading this region returns a CRW if one that is relevant for this > > subchannel (e.g. one reporting changes in channel path state) is > > pending, or all zeroes if not. If multiple CRWs are pending (including > > possibly chained CRWs), reading this region again will return the next > > one, until no more CRWs are pending and zeroes are returned. This is > > similar to how STORE CHANNEL REPORT WORD works." > > Sounds good to me. > > Hrm... Maybe coffee hasn't hit yet. Should I wire STCRW into this, or > just rely on the notification from the host to trigger the read? Userspace is supposed to use this to get crws to inject into the guest, no stcrw involved until the guest actually got the machine check for it.