Test Day:2009-05-07 Virtualization KVM PCI Device Assignment

From FedoraProject

Jump to: navigation, search

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:

Until this is fixed, all but the nodedev ops test case requires you to run SELinux in permissive mode
You will need to boot the host with intel_iommu=on until this is fixed
Fixed in python-virtinst-0.400.3-8.fc11
Fixed in libvirt-0.6.2-6.fc11
Workaround is to run virsh nodedev-reattach after the guest has shut down
This may happen after a lot of testing; workaround is to reboot the host
multi-function PCI devices without Function Level Reset (FLR) can't currently be used; more code to handle this case is required in libvirt

[edit] Prerequisites

In order to test KVM PCI device assignment, you need:

  1. a host machine which has Intel VT-d or AMD IOMMU support
  2. the host booted with intel_iommu=on in order to enable VT-d support
  3. The virt_manage_sysfs selinux boolean enabled - setsebool virt_manage_sysfs on
  4. 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.

[edit] 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:

  1. libvirt nodedev operations
  2. assigning a device using libvirt
  3. assigning a device using virt-manager
  4. virt-install --host-device

[edit] 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