mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2024-12-22 13:45:38 +00:00
tests: Add a baseline test for multifunction pci device use case
There are already good number of test cases with hostdevices, few have multifunction devices but none having more than one than one multifunction cards. This patch adds a case where there are two multifunction cards and two Virtual functions part of the same XML. 0001:01:00.X & 0005:09:00.X - are Multifunction PCI cards. 0000:06:12.[5|6] - are SRIOV Virtual functions Future commits will improve on automatically detecting the multifunction cards and auto-assinging the addresses appropriately. Reviewed-by: Michal Privoznik <mprivozn@redhat.com> Signed-off-by: Shivaprasad G Bhat <sbhat@linux.vnet.ibm.com> Signed-off-by: Daniel Henrique Barboza <danielhb413@gmail.com>
This commit is contained in:
parent
2d9b8acf58
commit
4ef4ba4974
35
tests/qemuxml2argvdata/hostdev-pci-multifunction.args
Normal file
35
tests/qemuxml2argvdata/hostdev-pci-multifunction.args
Normal file
@ -0,0 +1,35 @@
|
||||
LC_ALL=C \
|
||||
PATH=/bin \
|
||||
HOME=/tmp/lib/domain--1-delete \
|
||||
USER=test \
|
||||
LOGNAME=test \
|
||||
XDG_DATA_HOME=/tmp/lib/domain--1-delete/.local/share \
|
||||
XDG_CACHE_HOME=/tmp/lib/domain--1-delete/.cache \
|
||||
XDG_CONFIG_HOME=/tmp/lib/domain--1-delete/.config \
|
||||
QEMU_AUDIO_DRV=none \
|
||||
/usr/bin/qemu-system-x86_64 \
|
||||
-name delete \
|
||||
-S \
|
||||
-machine pc,accel=kvm,usb=off,dump-guest-core=off \
|
||||
-m 256 \
|
||||
-realtime mlock=off \
|
||||
-smp 4,sockets=4,cores=1,threads=1 \
|
||||
-uuid 583a8e8e-f0ce-4f53-89ab-092862148b25 \
|
||||
-display none \
|
||||
-no-user-config \
|
||||
-nodefaults \
|
||||
-chardev socket,id=charmonitor,path=/tmp/lib/domain--1-delete/monitor.sock,\
|
||||
server,nowait \
|
||||
-mon chardev=charmonitor,id=monitor,mode=control \
|
||||
-rtc base=utc \
|
||||
-no-shutdown \
|
||||
-no-acpi \
|
||||
-usb \
|
||||
-device vfio-pci,host=0005:90:01.0,id=hostdev0,bus=pci.0,addr=0x3 \
|
||||
-device vfio-pci,host=0001:01:00.1,id=hostdev1,bus=pci.0,addr=0x4 \
|
||||
-device vfio-pci,host=0001:01:00.0,id=hostdev2,bus=pci.0,addr=0x5 \
|
||||
-device vfio-pci,host=0005:90:01.2,id=hostdev3,bus=pci.0,addr=0x6 \
|
||||
-device vfio-pci,host=0005:90:01.3,id=hostdev4,bus=pci.0,addr=0x7 \
|
||||
-device vfio-pci,host=0000:06:12.1,id=hostdev5,bus=pci.0,addr=0x8 \
|
||||
-device vfio-pci,host=0000:06:12.2,id=hostdev6,bus=pci.0,addr=0x9 \
|
||||
-device virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0xa
|
59
tests/qemuxml2argvdata/hostdev-pci-multifunction.xml
Normal file
59
tests/qemuxml2argvdata/hostdev-pci-multifunction.xml
Normal file
@ -0,0 +1,59 @@
|
||||
<domain type='kvm'>
|
||||
<name>delete</name>
|
||||
<uuid>583a8e8e-f0ce-4f53-89ab-092862148b25</uuid>
|
||||
<memory unit='KiB'>262144</memory>
|
||||
<vcpu placement='static'>4</vcpu>
|
||||
<os>
|
||||
<type arch='x86_64' machine='pc'>hvm</type>
|
||||
</os>
|
||||
<devices>
|
||||
<emulator>/usr/bin/qemu-system-x86_64</emulator>
|
||||
<controller type='usb' index='0'/>
|
||||
<controller type='ide' index='0'/>
|
||||
<controller type='pci' index='0' model='pci-root'/>
|
||||
<input type='mouse' bus='ps2'/>
|
||||
<input type='keyboard' bus='ps2'/>
|
||||
<hostdev mode='subsystem' type='pci' managed='yes'>
|
||||
<driver name='vfio'/>
|
||||
<source>
|
||||
<address domain='0x0005' bus='0x90' slot='0x01' function='0x0'/>
|
||||
</source>
|
||||
</hostdev>
|
||||
<hostdev mode='subsystem' type='pci' managed='yes'>
|
||||
<driver name='vfio'/>
|
||||
<source>
|
||||
<address domain='0x0001' bus='0x01' slot='0x00' function='0x1'/>
|
||||
</source>
|
||||
</hostdev>
|
||||
<hostdev mode='subsystem' type='pci' managed='yes'>
|
||||
<driver name='vfio'/>
|
||||
<source>
|
||||
<address domain='0x0001' bus='0x01' slot='0x00' function='0x0'/>
|
||||
</source>
|
||||
</hostdev>
|
||||
<hostdev mode='subsystem' type='pci' managed='yes'>
|
||||
<driver name='vfio'/>
|
||||
<source>
|
||||
<address domain='0x0005' bus='0x90' slot='0x01' function='0x2'/>
|
||||
</source>
|
||||
</hostdev>
|
||||
<hostdev mode='subsystem' type='pci' managed='yes'>
|
||||
<driver name='vfio'/>
|
||||
<source>
|
||||
<address domain='0x0005' bus='0x90' slot='0x01' function='0x3'/>
|
||||
</source>
|
||||
</hostdev>
|
||||
<hostdev mode='subsystem' type='pci' managed='yes'>
|
||||
<driver name='vfio'/>
|
||||
<source>
|
||||
<address domain='0x0000' bus='0x06' slot='0x12' function='0x1'/>
|
||||
</source>
|
||||
</hostdev>
|
||||
<hostdev mode='subsystem' type='pci' managed='yes'>
|
||||
<driver name='vfio'/>
|
||||
<source>
|
||||
<address domain='0x0000' bus='0x06' slot='0x12' function='0x2'/>
|
||||
</source>
|
||||
</hostdev>
|
||||
</devices>
|
||||
</domain>
|
@ -1333,6 +1333,9 @@ mymain(void)
|
||||
DO_TEST_FAILURE("net-hostdev-fail",
|
||||
QEMU_CAPS_DEVICE_VFIO_PCI);
|
||||
|
||||
DO_TEST("hostdev-pci-multifunction",
|
||||
QEMU_CAPS_KVM,
|
||||
QEMU_CAPS_DEVICE_VFIO_PCI);
|
||||
|
||||
DO_TEST("serial-file-log",
|
||||
QEMU_CAPS_CHARDEV_FILE_APPEND,
|
||||
|
79
tests/qemuxml2xmloutdata/hostdev-pci-multifunction.xml
Normal file
79
tests/qemuxml2xmloutdata/hostdev-pci-multifunction.xml
Normal file
@ -0,0 +1,79 @@
|
||||
<domain type='kvm'>
|
||||
<name>delete</name>
|
||||
<uuid>583a8e8e-f0ce-4f53-89ab-092862148b25</uuid>
|
||||
<memory unit='KiB'>262144</memory>
|
||||
<currentMemory unit='KiB'>262144</currentMemory>
|
||||
<vcpu placement='static'>4</vcpu>
|
||||
<os>
|
||||
<type arch='x86_64' machine='pc'>hvm</type>
|
||||
<boot dev='hd'/>
|
||||
</os>
|
||||
<clock offset='utc'/>
|
||||
<on_poweroff>destroy</on_poweroff>
|
||||
<on_reboot>restart</on_reboot>
|
||||
<on_crash>destroy</on_crash>
|
||||
<devices>
|
||||
<emulator>/usr/bin/qemu-system-x86_64</emulator>
|
||||
<controller type='usb' index='0'>
|
||||
<address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x2'/>
|
||||
</controller>
|
||||
<controller type='ide' index='0'>
|
||||
<address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x1'/>
|
||||
</controller>
|
||||
<controller type='pci' index='0' model='pci-root'/>
|
||||
<input type='mouse' bus='ps2'/>
|
||||
<input type='keyboard' bus='ps2'/>
|
||||
<hostdev mode='subsystem' type='pci' managed='yes'>
|
||||
<driver name='vfio'/>
|
||||
<source>
|
||||
<address domain='0x0005' bus='0x90' slot='0x01' function='0x0'/>
|
||||
</source>
|
||||
<address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>
|
||||
</hostdev>
|
||||
<hostdev mode='subsystem' type='pci' managed='yes'>
|
||||
<driver name='vfio'/>
|
||||
<source>
|
||||
<address domain='0x0001' bus='0x01' slot='0x00' function='0x1'/>
|
||||
</source>
|
||||
<address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x0'/>
|
||||
</hostdev>
|
||||
<hostdev mode='subsystem' type='pci' managed='yes'>
|
||||
<driver name='vfio'/>
|
||||
<source>
|
||||
<address domain='0x0001' bus='0x01' slot='0x00' function='0x0'/>
|
||||
</source>
|
||||
<address type='pci' domain='0x0000' bus='0x00' slot='0x05' function='0x0'/>
|
||||
</hostdev>
|
||||
<hostdev mode='subsystem' type='pci' managed='yes'>
|
||||
<driver name='vfio'/>
|
||||
<source>
|
||||
<address domain='0x0005' bus='0x90' slot='0x01' function='0x2'/>
|
||||
</source>
|
||||
<address type='pci' domain='0x0000' bus='0x00' slot='0x06' function='0x0'/>
|
||||
</hostdev>
|
||||
<hostdev mode='subsystem' type='pci' managed='yes'>
|
||||
<driver name='vfio'/>
|
||||
<source>
|
||||
<address domain='0x0005' bus='0x90' slot='0x01' function='0x3'/>
|
||||
</source>
|
||||
<address type='pci' domain='0x0000' bus='0x00' slot='0x07' function='0x0'/>
|
||||
</hostdev>
|
||||
<hostdev mode='subsystem' type='pci' managed='yes'>
|
||||
<driver name='vfio'/>
|
||||
<source>
|
||||
<address domain='0x0000' bus='0x06' slot='0x12' function='0x1'/>
|
||||
</source>
|
||||
<address type='pci' domain='0x0000' bus='0x00' slot='0x08' function='0x0'/>
|
||||
</hostdev>
|
||||
<hostdev mode='subsystem' type='pci' managed='yes'>
|
||||
<driver name='vfio'/>
|
||||
<source>
|
||||
<address domain='0x0000' bus='0x06' slot='0x12' function='0x2'/>
|
||||
</source>
|
||||
<address type='pci' domain='0x0000' bus='0x00' slot='0x09' function='0x0'/>
|
||||
</hostdev>
|
||||
<memballoon model='virtio'>
|
||||
<address type='pci' domain='0x0000' bus='0x00' slot='0x0a' function='0x0'/>
|
||||
</memballoon>
|
||||
</devices>
|
||||
</domain>
|
@ -439,6 +439,7 @@ mymain(void)
|
||||
|
||||
DO_TEST("hostdev-usb-address", NONE);
|
||||
DO_TEST("hostdev-pci-address", NONE);
|
||||
DO_TEST("hostdev-pci-multifunction", NONE);
|
||||
DO_TEST("hostdev-vfio", NONE);
|
||||
DO_TEST("hostdev-vfio-zpci",
|
||||
QEMU_CAPS_DEVICE_ZPCI,
|
||||
|
Loading…
Reference in New Issue
Block a user