From Fedora Project Wiki

(flesh)
(Drop outdated bug reference)
 
(9 intermediate revisions by 2 users not shown)
Line 1: Line 1:
{{QA/Test_Case
{{QA/Test_Case
|description=This test case verifies that a PCI device can be assigned to a KVM guest using virt-manager.
 
|description=
Assign a physical PCI device to a KVM guest, and verify that it works as expected.
 
|setup=
* Functioning F19+ host and F19+ VM.
* PCI device you can afford to devote entirely to a VM
* Verify your host as necessary hardware support for VFIO
** If on an Intel CPU, this command should show at least 2 matches: <code>dmesg <nowiki>|</nowiki> grep -e DMAR -e IOMMU</code>
** If on an AMD CPU, this command should show some output: <code>dmesg <nowiki>|</nowiki> grep AMD-Vi</code>
* Some host PCIe device may not work inside the guest if the guest driver requires the device to appear as PCIe: the default QEMU configuration can only emulate PCI. If you know you have a PCIe only device, you will need to [[QA:Testcase_Virtualization_Q35_Chipset| create a VM using the Q35 chipset]], which can emulate PCIe.
 
|actions=
|actions=
* Run virt-manager, open an existing guest and go to the details tab
 
* Click "Add hardware", choose "Physical host device" and click "Forward"
== Using virt-manager ==
* Choose the appropriate device from the drop down list (e.g. "00:19.0 Interface eth0 (82566DM-2 Gigabit Network Connection)")
 
* Click "Forward" and "Finish"
# Run virt-manager, open an existing shutoff guest and go to the details page.
* Start the guest and check the device is functional within the guest
# Add Hardware->PCI Host Device
* Shut down the guest and check the device is functional within the host
# Choose the device you want to assign from the list, like: <code>00:19.0 Interface eth0 (82566DM-2 Gigabit Network Connection)</code>
# Click ''Finish''
# Start the guest and check the device is functional within the guest
# Shut down the guest and check the device is functional within the host
# Select the device in virt-manager and ''Remove'' it
 
== Hoptlug from the command line ==
 
* Find the device you want to attach in the output of <code>lspci</code>, copy the address string at the start of the line, something like <code>02:00.0</code>
* Attach the device to running VM 'test-day-vm' using virt-xml:
  sudo virt-xml test-day-vm --update --add-device --host-device 02:00.0
* Verify the device is usable in the VM
* Remove the device from the running VM 'test-day-vm':
  sudo virt-xml test-day-vm --update --remove-device --host-device 02:00.0
* Verify the device is visible and functioning on the host machine
 
|results=
|results=
* The device which is to be assigned should be available in the dropdown list
No obvious errors occur. PCI device assignment can be quirky and does not always work with every PCI device or host PCI layout. If you get an error, ask in #fedora-test-day IRC first and we can likely provide some direction.
* The device should be successfully assigned to the guest
* The guest should start without any errors
* The device should be functional within the guest
* Once the guest is shutdown, the device should be functional within the host
}}
}}
[[Category:Virtualization KVM PCI Device Assignment Test Cases|virt-manager]]
 
[[Category:Virtualization Test Cases]]

Latest revision as of 01:05, 14 April 2015

Description

Assign a physical PCI device to a KVM guest, and verify that it works as expected.

Setup

  • Functioning F19+ host and F19+ VM.
  • PCI device you can afford to devote entirely to a VM
  • Verify your host as necessary hardware support for VFIO
    • If on an Intel CPU, this command should show at least 2 matches: dmesg | grep -e DMAR -e IOMMU
    • If on an AMD CPU, this command should show some output: dmesg | grep AMD-Vi
  • Some host PCIe device may not work inside the guest if the guest driver requires the device to appear as PCIe: the default QEMU configuration can only emulate PCI. If you know you have a PCIe only device, you will need to create a VM using the Q35 chipset, which can emulate PCIe.

How to test

Using virt-manager

  1. Run virt-manager, open an existing shutoff guest and go to the details page.
  2. Add Hardware->PCI Host Device
  3. Choose the device you want to assign from the list, like: 00:19.0 Interface eth0 (82566DM-2 Gigabit Network Connection)
  4. Click Finish
  5. Start the guest and check the device is functional within the guest
  6. Shut down the guest and check the device is functional within the host
  7. Select the device in virt-manager and Remove it

Hoptlug from the command line

  • Find the device you want to attach in the output of lspci, copy the address string at the start of the line, something like 02:00.0
  • Attach the device to running VM 'test-day-vm' using virt-xml:
 sudo virt-xml test-day-vm --update --add-device --host-device 02:00.0
  • Verify the device is usable in the VM
  • Remove the device from the running VM 'test-day-vm':
 sudo virt-xml test-day-vm --update --remove-device --host-device 02:00.0
  • Verify the device is visible and functioning on the host machine

Expected Results

No obvious errors occur. PCI device assignment can be quirky and does not always work with every PCI device or host PCI layout. If you get an error, ask in #fedora-test-day IRC first and we can likely provide some direction.