Browse Source
Add some hints about "devno" rules. Message-Id: <20200515151518.83950-2-cohuck@redhat.com> Reviewed-by: Thomas Huth <thuth@redhat.com> Signed-off-by: Cornelia Huck <cohuck@redhat.com>pull/94/head
2 changed files with 87 additions and 0 deletions
@ -0,0 +1,86 @@ |
|||
The virtual channel subsystem |
|||
============================= |
|||
|
|||
QEMU implements a virtual channel subsystem with subchannels, (mostly |
|||
functionless) channel paths, and channel devices (virtio-ccw, 3270, and |
|||
devices passed via vfio-ccw). It supports multiple subchannel sets (MSS) and |
|||
multiple channel subsystems extended (MCSS-E). |
|||
|
|||
All channel devices support the ``devno`` property, which takes a parameter |
|||
in the form ``<cssid>.<ssid>.<device number>``. |
|||
|
|||
The default channel subsystem image id (``<cssid>``) is ``0xfe``. Devices in |
|||
there will show up in channel subsystem image ``0`` to guests that do not |
|||
enable MCSS-E. Note that devices with a different cssid will not be visible |
|||
if the guest OS does not enable MCSS-E (which is true for all supported guest |
|||
operating systems today). |
|||
|
|||
Supported values for the subchannel set id (``<ssid>``) range from ``0-3``. |
|||
Devices with a ssid that is not ``0`` will not be visible if the guest OS |
|||
does not enable MSS (any Linux version that supports virtio also enables MSS). |
|||
Any device may be put into any subchannel set, there is no restriction by |
|||
device type. |
|||
|
|||
The device number can range from ``0-0xffff``. |
|||
|
|||
If the ``devno`` property is not specified for a device, QEMU will choose the |
|||
next free device number in subchannel set 0, skipping to the next subchannel |
|||
set if no more device numbers are free. |
|||
|
|||
QEMU places a device at the first free subchannel in the specified subchannel |
|||
set. If a device is hotunplugged and later replugged, it may appear at a |
|||
different subchannel. (This is similar to how z/VM works.) |
|||
|
|||
|
|||
Examples |
|||
-------- |
|||
|
|||
* a virtio-net device, cssid/ssid/devno automatically assigned:: |
|||
|
|||
-device virtio-net-ccw |
|||
|
|||
In a Linux guest (without default devices and no other devices specified |
|||
prior to this one), this will show up as ``0.0.0000`` under subchannel |
|||
``0.0.0000``. |
|||
|
|||
The auto-assigned-properties in QEMU (as seen via e.g. ``info qtree``) |
|||
would be ``dev_id = "fe.0.0000"`` and ``subch_id = "fe.0.0000"``. |
|||
|
|||
* a virtio-rng device in subchannel set ``0``:: |
|||
|
|||
-device virtio-rng-ccw,devno=fe.0.0042 |
|||
|
|||
If added to the same Linux guest as above, it would show up as ``0.0.0042`` |
|||
under subchannel ``0.0.0001``. |
|||
|
|||
The properties for the device would be ``dev_id = "fe.0.0042"`` and |
|||
``subch_id = "fe.0.0001"``. |
|||
|
|||
* a virtio-gpu device in subchannel set ``2``:: |
|||
|
|||
-device virtio-gpu-ccw,devno=fe.2.1111 |
|||
|
|||
If added to the same Linux guest as above, it would show up as ``0.2.1111`` |
|||
under subchannel ``0.2.0000``. |
|||
|
|||
The properties for the device would be ``dev_id = "fe.2.1111"`` and |
|||
``subch_id = "fe.2.0000"``. |
|||
|
|||
* a virtio-mouse device in a non-standard channel subsystem image:: |
|||
|
|||
-device virtio-mouse-ccw,devno=2.0.2222 |
|||
|
|||
This would not show up in a standard Linux guest. |
|||
|
|||
The properties for the device would be ``dev_id = "2.0.2222"`` and |
|||
``subch_id = "2.0.0000"``. |
|||
|
|||
* a virtio-keyboard device in another non-standard channel subsystem image:: |
|||
|
|||
-device virtio-keyboard-ccw,devno=0.0.1234 |
|||
|
|||
This would not show up in a standard Linux guest, either, as ``0`` is not |
|||
the standard channel subsystem image id. |
|||
|
|||
The properties for the device would be ``dev_id = "0.0.1234"`` and |
|||
``subch_id = "0.0.0000"``. |
|||
Loading…
Reference in new issue