OSDN Git Service

s390x/css: provide introspection for virtual subchannel and device busid
authorDong Jia Shi <bjsdjshi@linux.vnet.ibm.com>
Wed, 22 Feb 2017 02:10:30 +0000 (03:10 +0100)
committerCornelia Huck <cornelia.huck@de.ibm.com>
Fri, 21 Apr 2017 07:32:09 +0000 (09:32 +0200)
commitd8d98db5f07d0a472308c70c3becb56888df156d
treebc935794b650adee63a976a7aca2ce8c334b0aa7
parentc35fc6aa1840b26f06f9ac79509c7ed9280003ac
s390x/css: provide introspection for virtual subchannel and device busid

Expose the busids of the virtual I/O subchannel and the virtual CCW
device to ease debugging. This is needed because:
1. subchannel id are assigned dynamically, and cannot be set from
   outside.
2. device busid could possibly be auto generated.

An example of using HMP to retrieve the property values of a
virtio-balloon-ccw device looks like:

[root@localhost ~]# lscss -d 0.0.0004
Device   Subchan.  DevType CU Type Use  PIM PAM POM  CHPIDs
----------------------------------------------------------------------
0.0.0004 0.0.0003  0000/00 3832/05 yes  80  80  ff   00000000 00000000

(qemu) info qtree
... ...
      dev: virtio-balloon-ccw, id "balloon0"
        devno = "<unset>"
        ioeventfd = true
        max_revision = 2 (0x2)
        dev_id = "fe.0.0004"
        subch_id = "fe.0.0003"
... ...

After migration, if we have the same device that shows up on a
different subchannel, we must re-fill the subch_id of the ccw
device with the new schid, or the subch_id will have an old wrong
schid value. So this also re-fills the subch_id after migration.

While we are at it, also neaten the related error handling a bit.

Signed-off-by: Dong Jia Shi <bjsdjshi@linux.vnet.ibm.com>
Signed-off-by: Cornelia Huck <cornelia.huck@de.ibm.com>
hw/s390x/ccw-device.c
hw/s390x/ccw-device.h
hw/s390x/virtio-ccw.c