On 15/05/2020 17.15, Cornelia Huck wrote: > Add a basic example for passing a dasd via vfio-ccw. > > Signed-off-by: Cornelia Huck <coh...@redhat.com> > --- > docs/system/s390x/vfio-ccw.rst | 72 ++++++++++++++++++++++++++++++++++ > docs/system/target-s390x.rst | 1 + > 2 files changed, 73 insertions(+) > create mode 100644 docs/system/s390x/vfio-ccw.rst > > diff --git a/docs/system/s390x/vfio-ccw.rst b/docs/system/s390x/vfio-ccw.rst > new file mode 100644 > index 000000000000..4cfd22c3b789 > --- /dev/null > +++ b/docs/system/s390x/vfio-ccw.rst > @@ -0,0 +1,72 @@ > +Subchannel passthrough via vfio-ccw > +=================================== > + > +vfio-ccw (based upon the mediated vfio device infrastructure) allows to > +make certain I/O subchannels and their devices available to a guest. The > +host will not interact with those subchannels/devices any more. > + > +Note that while vfio-ccw should work with most non-QDIO devices, only ECKD > +DASDs have really been tested. > + > +Example configuration > +--------------------- > + > +Step 1: configure the host device > +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ > + > +Note: it is recommended to use the ``mdevctl`` tool for this step. > + > +To define the same device as configured below to be started > +automatically, use > + > +:: > + > + [root@host ~]# driverctl -b css set-override 0.0.0313 vfio_ccw > + [root@host ~]# mdevctl define -u 7e270a25-e163-4922-af60-757fc8ed48c6\ > + -p 0.0.0313 -t vfio-ccw_io -a > + > +If this is not possible or wanted, follow the manual procedure below. > + > +* Locate the subchannel for the device (in this example, ``0.0.2b09``):: > + > + [root@host ~]# lscss | grep 0.0.2b09 | awk '{print $2}' > + 0.0.0313 > + > +* Unbind the subchannel (in this example, ``0.0.0313``) from the standard > + I/O subchannel driver and bind it to the vfio-ccw driver:: > + > + [root@host ~]# echo 0.0.0313 > > /sys/bus/css/devices/0.0.0313/driver/unbind > + [root@host ~]# echo 0.0.0313 > /sys/bus/css/drivers/vfio_ccw/bind > + > +* Create the mediated device (identified by a uuid):: > + > + [root@host ~]# uuidgen > + 7e270a25-e163-4922-af60-757fc8ed48c6
Maybe the uuidgen lines should now be moved before the mdevctl example already, so that it is already clear there where the uuid comes from? Thomas