On Thu, 7 Sep 2017 15:31:09 +0800 Dong Jia Shi <bjsdj...@linux.vnet.ibm.com> wrote:
> * Cornelia Huck <coh...@redhat.com> [2017-09-06 15:18:21 +0200]: > > > On Tue, 5 Sep 2017 13:16:45 +0200 > > Halil Pasic <pa...@linux.vnet.ibm.com> wrote: > > > > > Add a fake device meant for testing the correctness of our css emulation. > > > > > > What we currently have is writing a Fibonacci sequence of uint32_t to the > > > device via ccw write. The write is going to fail if it ain't a Fibonacci > > > and indicate a device exception in scsw together with the proper residual > > > count. > > > > > > Of course lot's of invalid inputs (besides basic data processing) can be > > > tested with that as well. > > > > > > Usage: > > > 1) fire up a qemu with something like -device ccw-tester,devno=fe.0.0001 > > > on the command line > > > 2) exercise the device from the guest > > > > > > Signed-off-by: Halil Pasic <pa...@linux.vnet.ibm.com> > > > --- > > > > > > It may not make sense to merge this work in the current form, as it is > > > solely for test purposes. > > > --- > > > hw/s390x/Makefile.objs | 1 + > > > hw/s390x/ccw-tester.c | 179 > > > +++++++++++++++++++++++++++++++++++++++++++++++++ > > > 2 files changed, 180 insertions(+) > > > create mode 100644 hw/s390x/ccw-tester.c > > > > The main problem here is that you want to exercise a middle layer (the > > css code) and need to write boilerplate code on both host and guest > > side in order to be able to do so. > > > > In general, a device that accepts arbitrary channel programs looks > > useful for testing purposes. I would split out processing of expected > > responses out, though, so that it can be more easily reused for > > different use cases. > > > > (I dimly recall other test devices...) > > > > For the guest tester: Can that be done via the qtest infrastructure > > somehow? > > > > I'm thinking of a method these days: > Could passing through an fully emulated ccw device (e.g. 3270), or a > virtio ccw device, in the level 1 kvm guest to a level 2 guest be a test > method for this? > > All of the CCWs will be translated to IDAL CCWs by vfio-ccw in the level > 1 guest (which is the level 2 kvm host) and issued to the level 1 kvm > host. So, those IDALs will eventually be handled by the emulated device, > or the virtio ccw device, on the level 1 kvm host... > > Some days ago, one of my colleague tried the emulated 3270 passing > through. She stucked with the problem that the level 1 kvm host handling > a senseid IDAL ccw as a Direct ccw. > > Maybe I could try to pass through a virtio ccw device. I don't think of > any obvious problem that would lead to fail. Any comment? > That actually looks like a good thing to try! Cool idea.