Message ID | 20200515151518.83950-4-cohuck@redhat.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | s390x: improve documentation | expand |
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 <cohuck@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
On Sun, 17 May 2020 19:52:43 +0200 Thomas Huth <thuth@redhat.com> wrote: > 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 <cohuck@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? Yeah, makes sense.
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 + [root@host ~]# echo "7e270a25-e163-4922-af60-757fc8ed48c6" > \ + /sys/bus/css/devices/0.0.0313/mdev_supported_types/vfio_ccw-io/create + +Step 2: configure QEMU +~~~~~~~~~~~~~~~~~~~~~~ + +* Reference the created mediated device and (optionally) pick a device id to + be presented in the guest (here, ``fe.0.1234``, which will end up visible + in the guest as ``0.0.1234``:: + + -device vfio-ccw,devno=fe.0.1234,sysfsdev=\ + /sys/bus/mdev/devices/7e270a25-e163-4922-af60-757fc8ed48c6 + +* Start the guest. The device (here, ``0.0.1234``) should now be usable:: + + [root@guest ~]# lscss -d 0.0.1234 + Device Subchan. DevType CU Type Use PIM PAM POM CHPIDs + ---------------------------------------------------------------------- + 0.0.1234 0.0.0007 3390/0e 3990/e9 f0 f0 ff 1a2a3a0a 00000000 + [root@guest ~]# chccwdev -e 0.0.1234 + Setting device 0.0.1234 online + Done + [root@guest ~]# dmesg -t + (...) + dasd-eckd 0.0.1234: A channel path to the device has become operational + dasd-eckd 0.0.1234: New DASD 3390/0E (CU 3990/01) with 10017 cylinders, 15 heads, 224 sectors + dasd-eckd 0.0.1234: DASD with 4 KB/block, 7212240 KB total size, 48 KB/track, compatible disk layout + dasda:VOL1/ 0X2B09: dasda1 diff --git a/docs/system/target-s390x.rst b/docs/system/target-s390x.rst index 2592a05303ef..644e404ef9fd 100644 --- a/docs/system/target-s390x.rst +++ b/docs/system/target-s390x.rst @@ -25,6 +25,7 @@ or vfio-ap is also available. s390x/vfio-ap s390x/css s390x/3270 + s390x/vfio-ccw Architectural features ======================
Add a basic example for passing a dasd via vfio-ccw. Signed-off-by: Cornelia Huck <cohuck@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