On 4/21/20 7:08 AM, Cornelia Huck wrote: > 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. > Ah, yes. Thanks!