[PATCH virt-install v1 0/3] Add mediated device support
Shalini Chellathurai Saroja
shalini at linux.ibm.com
Tue Apr 27 12:36:25 UTC 2021
ping
On 4/14/21 5:18 PM, Shalini Chellathurai Saroja wrote:
> Add support to install a virtual server with passed-through mediated
> device. Also provide support to add, edit, remove, hotplug and hot
> unplug mediated device in a guest XML.
>
> Example:
> Create a mediated device using a DASD attached to vfio_ccw driver
> in the host system.
>
> $ virsh nodedev-list --cap mdev
> mdev_1c555d00_6110_42fe_8938_889f777a15a3
> mdev_265920cf_4169_46ca_9d42_5844731f0bcd
>
> $ virsh nodedev-dumpxml mdev_1c555d00_6110_42fe_8938_889f777a15a3
> <device>
> <name>mdev_1c555d00_6110_42fe_8938_889f777a15a3</name>
> <path>/sys/devices/css0/0.0.0023/1c555d00-6110-42fe-8938-889f777a15a3</path>
> <parent>css_0_0_0023</parent>
> <driver>
> <name>vfio_mdev</name>
> </driver>
> <capability type='mdev'>
> <type id='vfio_ccw-io'/>
> <iommuGroup number='0'/>
> </capability>
> </device>
>
> 2. Install a virtual server by passing this mediated device.
>
> $ virt-install --name vser --hostdev
> mdev_1c555d00_6110_42fe_8938_889f777a15a3 --disk
> /var/lib/libvirt/images/rhel83.qcow2,bus=virtio,size=8 --location
> http://bistro/redhat/s390x/RHEL8.3/DVD
>
> $ virsh dumpxml vser
>
> [...]
> <hostdev mode='subsystem' type='mdev' managed='yes' model='vfio-ccw'>
> <source>
> <address uuid='1c555d00-6110-42fe-8938-889f777a15a3'/>
> </source>
> <alias name='hostdev0'/>
> <address type='ccw' cssid='0xfe' ssid='0x0' devno='0x0002'/>
> </hostdev>
> [...]
>
> Log into the created virtual server vser:
>
> $ lscss
>
> Device Subchan. DevType CU Type Use PIM PAM POM CHPIDs
> ----------------------------------------------------------------------
> 0.0.0003 0.0.0000 0000/00 3832/03 yes 80 80 ff 00000000 00000000
> 0.0.0000 0.0.0001 0000/00 3832/02 yes 80 80 ff 00000000 00000000
> 0.0.0001 0.0.0002 0000/00 3832/01 yes 80 80 ff 00000000 00000000
> 0.0.0002 0.0.0003 3390/0c 3990/ec c0 c0 ff 1c1f0000 00000000
> 0.0.0004 0.0.0004 0000/00 3832/05 yes 80 80 ff 00000000 00000000
> 0.0.0005 0.0.0005 0000/00 3832/04 yes 80 80 ff 00000000 00000000
>
> The device 0.0.0002 is the passed mediated device.
>
> Shut off the virtual server and edit the virtual server with the below
> commands.
>
> $ virt-xml vser --add-device --hostdev mdev_265920cf_4169_46ca_9d42_5844731f0bcd
> Domain 'vser' defined successfully.
>
> Domain XML:
> […]
>
> <hostdev mode='subsystem' type='mdev' managed='no' model='vfio-ccw'>
> <source>
> <address uuid='265920cf-4169-46ca-9d42-5844731f0bcd'/>
> </source>
> <address type='ccw' cssid='0xfe' ssid='0x0' devno='0x0004'/>
> </hostdev>
> […]
>
> $ virt-xml vser --edit address.devno=0x0004 --hostdev address.devno=0x0008
> Domain 'vser' defined successfully.
>
> Domain XML:
> […]
> <hostdev mode='subsystem' type='mdev' managed='no' model='vfio-ccw'>
> <source>
> <address uuid='265920cf-4169-46ca-9d42-5844731f0bcd'/>
> </source>
> <address type='ccw' cssid='0xfe' ssid='0x0' devno='0x0008'/>
> </hostdev>
> […]
>
> $ virt-xml vser --remove-device --hostdev mdev_265920cf_4169_46ca_9d42_5844731f0bcd
> Domain 'vser' defined successfully.
>
> $ virsh start vser
> Domain 'vser' started
>
> $ virsh list --all
> Id Name State
> ---------------------------------
> 1 vser running
>
> $ virt-xml vser --update --add-device --hostdev mdev_265920cf_4169_46ca_9d42_5844731f0bcd
> Device hotplug successful.
> Domain 'vser' defined successfully.
>
> Domain XML:
> […]
>
> <hostdev mode='subsystem' type='mdev' managed='no' model='vfio-ccw'>
> <source>
> <address uuid='265920cf-4169-46ca-9d42-5844731f0bcd'/>
> </source>
> <alias name='hostdev0'/>
> <address type='ccw' cssid='0xfe' ssid='0x0' devno='0x0004'/>
> </hostdev>
> […]
>
> $ virt-xml vser --update --remove-device --hostdev mdev_265920cf_4169_46ca_9d42_5844731f0bcd
> Device hotunplug successful.
> Domain 'vser' defined successfully.
>
> Shalini Chellathurai Saroja (3):
> virt-install: add mediated device
> virt-xml: add support for mediated devices
> virtxml: prevent defining same hostdev again
>
> .../cli/compare/virt-install-many-devices.xml | 19 ++++++++
> .../virt-xml-add-host-device-start.xml | 2 +-
> .../cli/compare/virt-xml-add-host-device.xml | 2 +-
> .../virt-xml-add-hostdev-mdev-start.xml | 12 +++++
> .../cli/compare/virt-xml-add-hostdev-mdev.xml | 14 ++++++
> tests/data/cli/compare/virt-xml-edit-all.xml | 7 +++
> .../compare/virt-xml-edit-hostdev-mdev.xml | 11 +++++
> .../compare/virt-xml-edit-simple-redirdev.xml | 2 +-
> .../compare/virt-xml-remove-hostdev-mdev.xml | 15 ++++++
> tests/data/testdriver/testdriver.xml | 48 +++++++++++++++++--
> tests/data/testdriver/testsuite.xml | 46 ++++++++++++++++++
> tests/test_cli.py | 12 ++++-
> tests/test_nodedev.py | 30 ++++++++++++
> tests/utils.py | 2 +-
> virtinst/devices/hostdev.py | 34 ++++++++++++-
> virtinst/nodedev.py | 15 ++++++
> virtinst/virtxml.py | 7 +++
> 17 files changed, 267 insertions(+), 11 deletions(-)
> create mode 100644 tests/data/cli/compare/virt-xml-add-hostdev-mdev-start.xml
> create mode 100644 tests/data/cli/compare/virt-xml-add-hostdev-mdev.xml
> create mode 100644 tests/data/cli/compare/virt-xml-edit-hostdev-mdev.xml
> create mode 100644 tests/data/cli/compare/virt-xml-remove-hostdev-mdev.xml
>
--
Kind regards
Shalini Chellathurai Saroja
Linux on Z and Virtualization Development
Vorsitzende des Aufsichtsrats: Gregor Pillen
Geschäftsführung: Dirk Wittkopp
Sitz der Gesellschaft: Böblingen
Registergericht: Amtsgericht Stuttgart, HRB 243294
More information about the virt-tools-list
mailing list