[Qemu-devel] [PATCH v4 0/5] add CCW indirect data access support

Halil Pasic posted 5 patches 6 years, 6 months ago
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/qemu tags/patchew/20170921180841.24490-1-pasic@linux.vnet.ibm.com
Test checkpatch passed
Test docker passed
Test s390x passed
hw/s390x/css.c         | 186 +++++++++++++++++++++++++++++++++++++++++++++++--
hw/s390x/virtio-ccw.c  | 155 ++++++++++++-----------------------------
include/hw/s390x/css.h |  68 ++++++++++++++++++
3 files changed, 296 insertions(+), 113 deletions(-)
[Qemu-devel] [PATCH v4 0/5] add CCW indirect data access support
Posted by Halil Pasic 6 years, 6 months ago
Abstract
--------

The objective of this series is introducing CCW IDA (indirect data
access) support to our virtual channel subsystem implementation. Briefly
CCW IDA can be thought of as a kind of a scatter gather support for a
single CCW. If certain flags are set, the cda is to be interpreted as an
address to a list which in turn holds further addresses designating the
actual data.  Thus the scheme which we are currently using for accessing
CCW payload does not work in general case. Currently there is no
immediate need for proper IDA handling (no use case), but since it IDA is
a non-optional part of the architecture, the only way towards AR
compliance is actually implementing IDA.

The focus of this patch set is introducing IDA support. There seems to be
a potential for further  improvements based on the introduced
infrastructure, but such improvements are intended to be discusses
separately and realized as patches on top of this series.

Testing
-------

On request the things meant for testing from v1 were factored out into a
separate series (requested by Connie). Please look for the series  'tests
for CCW IDA' (see [1]) or use the stuff form v1.  

[1] https://lists.nongnu.org/archive/html/qemu-devel/2017-09/msg03489.html

Changelog
---------

v3 --> v4:
* fixed the first level address limit check in patch #5
* refactored second level address limit check in patch #5
* nits in patch #5
* rebased, otherwise patches #1-#4 unchanged
* added an r-b for patch #3
v2 --> v3:
* added maximum data address checking (see patch #4) (Dong Jia)
  To not mix converting to the new infrastructure and changing
  behavior, this is done after the conversion. For IDA the same
  (on both IDAL and data  level) is now a part of the respective
  patch (was missing in v2).
* even less nits, and improved aesthetics (mostly Dong Jia)
v1 --> v2:
* factored out the stuff added only for testing
* use g_assert instead of assert
* fixed a lot's of typos
* removed some TODOs addressed by another series of mine
* refactored ccw_dstream_rw_ida (structured programming)
* done some rewording of commit message #3


Halil Pasic (5):
  s390x/css: introduce css data stream
  s390x/css: use ccw data stream
  virtio-ccw: use ccw data stream
  390x/css: introduce maximum data address checking
  s390x/css: support ccw IDA

 hw/s390x/css.c         | 186 +++++++++++++++++++++++++++++++++++++++++++++++--
 hw/s390x/virtio-ccw.c  | 155 ++++++++++++-----------------------------
 include/hw/s390x/css.h |  68 ++++++++++++++++++
 3 files changed, 296 insertions(+), 113 deletions(-)

-- 
2.13.5


Re: [Qemu-devel] [PATCH v4 0/5] add CCW indirect data access support
Posted by Cornelia Huck 6 years, 6 months ago
On Thu, 21 Sep 2017 20:08:36 +0200
Halil Pasic <pasic@linux.vnet.ibm.com> wrote:

> Abstract
> --------
> 
> The objective of this series is introducing CCW IDA (indirect data
> access) support to our virtual channel subsystem implementation. Briefly
> CCW IDA can be thought of as a kind of a scatter gather support for a
> single CCW. If certain flags are set, the cda is to be interpreted as an
> address to a list which in turn holds further addresses designating the
> actual data.  Thus the scheme which we are currently using for accessing
> CCW payload does not work in general case. Currently there is no
> immediate need for proper IDA handling (no use case), but since it IDA is
> a non-optional part of the architecture, the only way towards AR
> compliance is actually implementing IDA.
> 
> The focus of this patch set is introducing IDA support. There seems to be
> a potential for further  improvements based on the introduced
> infrastructure, but such improvements are intended to be discusses
> separately and realized as patches on top of this series.

Hm, do you have a list of what you want to do as follow-on patches?
(Checking return codes, ...)

It's easy to lose track of all this :)

Re: [Qemu-devel] [PATCH v4 0/5] add CCW indirect data access support
Posted by Halil Pasic 6 years, 6 months ago

On 09/26/2017 12:18 PM, Cornelia Huck wrote:
> On Thu, 21 Sep 2017 20:08:36 +0200
> Halil Pasic <pasic@linux.vnet.ibm.com> wrote:
> 
>> Abstract
>> --------
>>
>> The objective of this series is introducing CCW IDA (indirect data
>> access) support to our virtual channel subsystem implementation. Briefly
>> CCW IDA can be thought of as a kind of a scatter gather support for a
>> single CCW. If certain flags are set, the cda is to be interpreted as an
>> address to a list which in turn holds further addresses designating the
>> actual data.  Thus the scheme which we are currently using for accessing
>> CCW payload does not work in general case. Currently there is no
>> immediate need for proper IDA handling (no use case), but since it IDA is
>> a non-optional part of the architecture, the only way towards AR
>> compliance is actually implementing IDA.
>>
>> The focus of this patch set is introducing IDA support. There seems to be
>> a potential for further  improvements based on the introduced
>> infrastructure, but such improvements are intended to be discusses
>> separately and realized as patches on top of this series.
> 
> Hm, do you have a list of what you want to do as follow-on patches?
> (Checking return codes, ...)
> 
> It's easy to lose track of all this :)
> 

These are the stuff I had in mind:
* handling errors (aka. checking error codes) in virtio-ccw
* using residual count
* converting 3270 (patches already sent)

And then some related stuff is the error reporting and handling
rework for the IO instruction handlers and for the ccw interpretation
emulation (later affects CcwDataStream).

There is probably a lot of potential for making things prettier
in virtio-ccw.c too -- I've done some experiments but ended up changing
too many things at the same time.

Btw, do we still have open issues with this series?

Regards,
Halil


 


Re: [Qemu-devel] [PATCH v4 0/5] add CCW indirect data access support
Posted by Cornelia Huck 6 years, 6 months ago
[Restored cc:s]

On Tue, 26 Sep 2017 12:45:11 +0200
Halil Pasic <pasic@linux.vnet.ibm.com> wrote:

> On 09/26/2017 12:18 PM, Cornelia Huck wrote:
> > On Thu, 21 Sep 2017 20:08:36 +0200
> > Halil Pasic <pasic@linux.vnet.ibm.com> wrote:
> >   
> >> Abstract
> >> --------
> >>
> >> The objective of this series is introducing CCW IDA (indirect data
> >> access) support to our virtual channel subsystem implementation. Briefly
> >> CCW IDA can be thought of as a kind of a scatter gather support for a
> >> single CCW. If certain flags are set, the cda is to be interpreted as an
> >> address to a list which in turn holds further addresses designating the
> >> actual data.  Thus the scheme which we are currently using for accessing
> >> CCW payload does not work in general case. Currently there is no
> >> immediate need for proper IDA handling (no use case), but since it IDA is
> >> a non-optional part of the architecture, the only way towards AR
> >> compliance is actually implementing IDA.
> >>
> >> The focus of this patch set is introducing IDA support. There seems to be
> >> a potential for further  improvements based on the introduced
> >> infrastructure, but such improvements are intended to be discusses
> >> separately and realized as patches on top of this series.  
> > 
> > Hm, do you have a list of what you want to do as follow-on patches?
> > (Checking return codes, ...)
> > 
> > It's easy to lose track of all this :)
> >   
> 
> These are the stuff I had in mind:
> * handling errors (aka. checking error codes) in virtio-ccw
> * using residual count
> * converting 3270 (patches already sent)

The 3270 stuff is next in line for me.

> 
> And then some related stuff is the error reporting and handling
> rework for the IO instruction handlers and for the ccw interpretation
> emulation (later affects CcwDataStream).
> 
> There is probably a lot of potential for making things prettier
> in virtio-ccw.c too -- I've done some experiments but ended up changing
> too many things at the same time.

There's always potential for such things :) Let's get the previously
identified stuff out of the door first (it's not that I lack patches to
apply anyway...)

> 
> Btw, do we still have open issues with this series?

Currently going through my acceptance testing.

Re: [Qemu-devel] [PATCH v4 0/5] add CCW indirect data access support
Posted by Cornelia Huck 6 years, 6 months ago
On Thu, 21 Sep 2017 20:08:36 +0200
Halil Pasic <pasic@linux.vnet.ibm.com> wrote:

> Abstract
> --------
> 
> The objective of this series is introducing CCW IDA (indirect data
> access) support to our virtual channel subsystem implementation. Briefly
> CCW IDA can be thought of as a kind of a scatter gather support for a
> single CCW. If certain flags are set, the cda is to be interpreted as an
> address to a list which in turn holds further addresses designating the
> actual data.  Thus the scheme which we are currently using for accessing
> CCW payload does not work in general case. Currently there is no
> immediate need for proper IDA handling (no use case), but since it IDA is
> a non-optional part of the architecture, the only way towards AR
> compliance is actually implementing IDA.
> 
> The focus of this patch set is introducing IDA support. There seems to be
> a potential for further  improvements based on the introduced
> infrastructure, but such improvements are intended to be discusses
> separately and realized as patches on top of this series.

Thanks, applied.