(add smolt/lspci instructions) |
m (Added missing category) |
||
(30 intermediate revisions by 7 users not shown) | |||
Line 2: | Line 2: | ||
This test area is concerned with testing the [[Features/KVM_PCI_Device_Assignment|KVM PCI Device Assignment]] feature added in [[Releases/11|Fedora 11]]. | This test area is concerned with testing the [[Features/KVM_PCI_Device_Assignment|KVM PCI Device Assignment]] feature added in [[Releases/11|Fedora 11]]. | ||
Known bugs include: | |||
* [[rhbug:499259|499259]] - svirt denials breaks KVM PCI device assignment | |||
* [[rhbug:499708|499708]] - SELinux blocks libvirtd sysfs writes for virNodeDeviceDettach()/Reattach()/Reset() | |||
: Until this is fixed, all but the nodedev ops test case requires you to run SELinux in permissive mode | |||
* [[rhbug:499352|499352]] - Re-enable CONFIG_DMAR_DEFAULT_ON | |||
: You will need to boot the host with intel_iommu=on until this is fixed | |||
* [[rhbug:499267|499267]] - Assigning a PCI device using virt-manager/virt-install fails | |||
: Fixed in [http://koji.fedoraproject.org/koji/buildinfo?buildID=101049 python-virtinst-0.400.3-8.fc11] | |||
* [[rhbug:499386|499386]] - libvirt's qemu driver interprets the <hostdev> "managed" attribute incorrectly | |||
: Fixed in [http://koji.fedoraproject.org/koji/buildinfo?buildID=101058 libvirt-0.6.2-6.fc11] | |||
* [[rhbug:499561|499561]] - libvirt does not automatically re-attach an assigned device in the host after guest shutdown | |||
: Workaround is to run <code>virsh nodedev-reattach</code> after the guest has shut down | |||
* [[rhbug:499637|499637]] - IOMMU: no free domain ids | |||
: This may happen after a lot of testing; workaround is to reboot the host | |||
* [[rhbug:499678|499678]] - libvirt should be able to reset a PCI function even if it causes other unused devices/functions to be reset | |||
: multi-function PCI devices without Function Level Reset (FLR) can't currently be used; more code to handle this case is required in libvirt | |||
== Prerequisites == | == Prerequisites == | ||
In order to test KVM PCI device assignment, you need a host machine which has Intel VT-d or AMD IOMMU support. | In order to test KVM PCI device assignment, you need: | ||
# a host machine which has Intel VT-d or AMD IOMMU support | |||
# the host booted with <code>intel_iommu=on</code> in order to enable VT-d support | |||
# The <code>virt_manage_sysfs</code> selinux boolean enabled - <code>setsebool virt_manage_sysfs on</code> | |||
# At least [https://koji.fedoraproject.org/koji/buildinfo?buildID=101058 libvirt-0.6.2-6.fc11] and [https://koji.fedoraproject.org/koji/buildinfo?buildID=101049 python-virtinst-0.400.3-8.fc11] installed | |||
Please [http://smolts.org/smolt-wiki/Main_Page#Usage upload your smolt profile] using <code>smoltSendProfile</code> and add its URL to the table below. | Please [http://smolts.org/smolt-wiki/Main_Page#Usage upload your smolt profile] using <code>smoltSendProfile</code> and add its URL to the table below. | ||
Line 12: | Line 35: | ||
== Tests == | == Tests == | ||
The first thing you need to do is choose which PCI device on your KVM host that you will use for testing. Probably the most obvious to test with is a NIC. You'll need the device's nodedev name, and you can find this with | |||
<pre> | |||
$> virsh nodedev-list --tree | |||
computer | |||
| | |||
... | |||
+-pci_8086_10bd | |||
| | | |||
| +-net_00_13_20_f5_f9_5a | |||
... | |||
$> virsh nodedev-dumpxml pci_8086_10bd | |||
<device> | |||
<name>pci_8086_10bd</name> | |||
<parent>computer</parent> | |||
<capability type='pci'> | |||
<domain>0</domain> | |||
<bus>0</bus> | |||
<slot>25</slot> | |||
<function>0</function> | |||
<product id='0x10bd'>82566DM-2 Gigabit Network Connection</product> | |||
<vendor id='0x8086'>Intel Corporation</vendor> | |||
</capability> | |||
</device> | |||
</pre> | |||
Follow each of these test cases: | Follow each of these test cases: | ||
# [[QA:Testcase_Virtualization_KVM_PCI_Device_Assignment_libvirt_nodedev_operations|libvirt nodedev operations]] | # [[QA:Testcase_Virtualization_KVM_PCI_Device_Assignment_libvirt_nodedev_operations|libvirt nodedev operations]] | ||
# [[QA:Testcase_Virtualization_KVM_PCI_Device_Assignment_assign_using_libvirt|assigning a device using libvirt]] | |||
# [[QA:Testcase_Virtualization_KVM_PCI_Device_Assignment_assign_using_virt_manager|assigning a device using virt-manager]] | |||
# [[QA:Testcase_Virtualization_KVM_PCI_Device_Assignment_virt_install_host_device|virt-install --host-device]] | |||
== Results == | == Results == | ||
Line 28: | Line 80: | ||
! lspci | ! lspci | ||
! [[QA:Testcase_Virtualization_KVM_PCI_Device_Assignment_libvirt_nodedev_operations|Nodedev Ops]] | ! [[QA:Testcase_Virtualization_KVM_PCI_Device_Assignment_libvirt_nodedev_operations|Nodedev Ops]] | ||
! [[QA:Testcase_Virtualization_KVM_PCI_Device_Assignment_assign_using_libvirt|libvirt]] | |||
! [[QA:Testcase_Virtualization_KVM_PCI_Device_Assignment_assign_using_virt_manager|virt-manager]] | |||
! [[QA:Testcase_Virtualization_KVM_PCI_Device_Assignment_virt_install_host_device|virt-install]] | |||
! Comments | ! Comments | ||
|- | |- | ||
Line 33: | Line 89: | ||
| [http://www.smolts.org/client/show/pub_0f98ce1f-983e-4825-b8d7-7f366f49fca4 smolt] | | [http://www.smolts.org/client/show/pub_0f98ce1f-983e-4825-b8d7-7f366f49fca4 smolt] | ||
| [http://fpaste.org/paste/11088 lspci] | | [http://fpaste.org/paste/11088 lspci] | ||
| style="background-color: green;" |PASS | |||
| style="background-color: green;" |PASS | |||
| style="background-color: green;" |PASS | |||
| style="background-color: green;" |PASS | |||
| Perfect score! Apart from the known bugs listed above, of course :-) | |||
|- | |||
|- | |||
| [[User:charlesrose|Charles Rose]] | |||
| | |||
| | |||
| FAIL | |||
| | |||
| | |||
| | | | ||
| reset of multi-function device fails. [[rhbug:499678|499678]] | |||
|- | |||
|- | |||
| [[User:smerkx|Stanley Merkx]] | |||
| [http://www.smolts.org/client/show/pub_612115f0-8a1b-4e6c-a6d9-04d53a963620 smolt] | |||
| [http://fpaste.org/paste/12819 lspci] | |||
| style="background-color: green;" |PASS | |||
| style="background-color: red;" |FAIL | |||
| | |||
| | | | ||
| Assignment of the device fails. [[rhbug:499259|499259]] | |||
|- | |- | ||
|} | |} | ||
[[Category:Test Days]] [[Category:Fedora 11 Test Days]] |
Revision as of 12:56, 14 June 2013
See Test_Day:2009-05-07_Virtualization.
This test area is concerned with testing the KVM PCI Device Assignment feature added in Fedora 11.
Known bugs include:
- 499259 - svirt denials breaks KVM PCI device assignment
- 499708 - SELinux blocks libvirtd sysfs writes for virNodeDeviceDettach()/Reattach()/Reset()
- Until this is fixed, all but the nodedev ops test case requires you to run SELinux in permissive mode
- 499352 - Re-enable CONFIG_DMAR_DEFAULT_ON
- You will need to boot the host with intel_iommu=on until this is fixed
- 499267 - Assigning a PCI device using virt-manager/virt-install fails
- Fixed in python-virtinst-0.400.3-8.fc11
- 499386 - libvirt's qemu driver interprets the <hostdev> "managed" attribute incorrectly
- Fixed in libvirt-0.6.2-6.fc11
- 499561 - libvirt does not automatically re-attach an assigned device in the host after guest shutdown
- Workaround is to run
virsh nodedev-reattach
after the guest has shut down
- 499637 - IOMMU: no free domain ids
- This may happen after a lot of testing; workaround is to reboot the host
- 499678 - libvirt should be able to reset a PCI function even if it causes other unused devices/functions to be reset
- multi-function PCI devices without Function Level Reset (FLR) can't currently be used; more code to handle this case is required in libvirt
Prerequisites
In order to test KVM PCI device assignment, you need:
- a host machine which has Intel VT-d or AMD IOMMU support
- the host booted with
intel_iommu=on
in order to enable VT-d support - The
virt_manage_sysfs
selinux boolean enabled -setsebool virt_manage_sysfs on
- At least libvirt-0.6.2-6.fc11 and python-virtinst-0.400.3-8.fc11 installed
Please upload your smolt profile using smoltSendProfile
and add its URL to the table below.
Also, it would be useful to post your PCI bus topology - e.g. post the output of lspci -t -v
to Fedora's pastebin.
Tests
The first thing you need to do is choose which PCI device on your KVM host that you will use for testing. Probably the most obvious to test with is a NIC. You'll need the device's nodedev name, and you can find this with
$> virsh nodedev-list --tree computer | ... +-pci_8086_10bd | | | +-net_00_13_20_f5_f9_5a ... $> virsh nodedev-dumpxml pci_8086_10bd <device> <name>pci_8086_10bd</name> <parent>computer</parent> <capability type='pci'> <domain>0</domain> <bus>0</bus> <slot>25</slot> <function>0</function> <product id='0x10bd'>82566DM-2 Gigabit Network Connection</product> <vendor id='0x8086'>Intel Corporation</vendor> </capability> </device>
Follow each of these test cases:
- libvirt nodedev operations
- assigning a device using libvirt
- assigning a device using virt-manager
- virt-install --host-device
Results
If you have problems with any of the tests, file a bug report in bugzilla.
Once you have completed the tests, add your results to the table below.
User | Smolt | lspci | Nodedev Ops | libvirt | virt-manager | virt-install | Comments |
---|---|---|---|---|---|---|---|
Mark McLoughlin | smolt | lspci | PASS | PASS | PASS | PASS | Perfect score! Apart from the known bugs listed above, of course :-) |
Charles Rose | FAIL | reset of multi-function device fails. 499678 | |||||
Stanley Merkx | smolt | lspci | PASS | FAIL | Assignment of the device fails. 499259 |