Bug 1390348

Summary: PCI: Provide to libvirt a new query command whether a device is PCI/PCIe/hybrid
Product: Red Hat Enterprise Linux 7 Reporter: Marcel Apfelbaum <marcel>
Component: qemu-kvm-rhevAssignee: Eduardo Habkost <ehabkost>
Status: CLOSED ERRATA QA Contact: jingzhao <jinzhao>
Severity: low Docs Contact:
Priority: low    
Version: 7.4CC: ailan, chayang, ehabkost, juzhang, laine, michen, mtessun, virt-maint
Target Milestone: rcKeywords: FutureFeature
Target Release: 7.4   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: qemu-kvm-rhev-2.10.0-4.el7 Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2018-04-11 00:12:33 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Marcel Apfelbaum 2016-10-31 18:53:21 UTC
A device can be PCI only/PCIe only or PCI/PCIe depending on the bus is plugged in.
Providing libvirt query-machines or other new query commands is important if we have any plans to add new capabilities to Q35 (i.e. support devices that were not supported in a previous version [e.g. legacy PCI?])
Reminder: interfaces useful for libvirt should work with "- machine none".

Comment 5 Eduardo Habkost 2017-08-28 18:01:07 UTC
New series submitted upstream:

From: Eduardo Habkost <ehabkost>
To: qemu-devel
Date: Wed, 23 Aug 2017 19:14:40 -0300
Message-Id: <20170823221445.15243-1-ehabkost>
Subject: [Qemu-devel] [PATCH 0/5] Mark legacy/PCIe/hybrid PCI devices using interface names

https://www.mail-archive.com/qemu-devel@nongnu.org/msg475530.html

Comment 10 Miroslav Rezanina 2017-11-02 10:08:55 UTC
Fix included in qemu-kvm-rhev-2.10.0-4.el7

Comment 12 jingzhao 2017-11-06 10:57:51 UTC
Reproduce the issue on qemu-kvm-rhev-2.10.0-3.el7.x86_64 and verified it on qemu-kvm-rhev-2.10.0-4.el7.x86_64

the detailed result of qmp command

{"execute":"qom-list-types","arguments": {"implements":"conventional-pci-device"}
}
{"return": [{"name": "vhost-vsock-pci", "parent": "virtio-pci"}, {"name": "virtio-tablet-pci", "parent": "virtio-input-hid-pci"}, {"name": "pci-serial-4x", "parent": "pci-device"}, {"name": "e1000-82540em", "parent": "e1000-base"}, {"name": "piix3-ide", "parent": "pci-ide"}, {"name": "PIIX3-xen", "parent": "pci-piix3"}, {"name": "usb-ehci", "parent": "pci-ehci-usb"}, {"name": "pci-serial-2x", "parent": "pci-device"}, {"name": "piix4-ide", "parent": "pci-ide"}, {"name": "virtio-net-pci", "parent": "virtio-pci"}, {"name": "virtio-mouse-pci", "parent": "virtio-input-hid-pci"}, {"name": "ich9-usb-ehci1", "parent": "pci-ehci-usb"}, {"name": "virtio-vga", "parent": "virtio-pci"}, {"name": "ich9-usb-ehci2", "parent": "pci-ehci-usb"}, {"name": "cirrus-vga", "parent": "pci-device"}, {"name": "virtio-rng-pci", "parent": "virtio-pci"}, {"name": "qxl-vga", "parent": "pci-qxl"}, {"name": "PIIX3", "parent": "pci-piix3"}, {"name": "kvm-pci-assign", "parent": "pci-device"}, {"name": "i6300esb", "parent": "pci-device"}, {"name": "AC97", "parent": "pci-device"}, {"name": "PIIX4_PM", "parent": "pci-device"}, {"name": "piix4-usb-uhci", "parent": "pci-uhci-usb"}, {"name": "vfio-pci-igd-lpc-bridge", "parent": "pci-device"}, {"name": "piix3-usb-uhci", "parent": "pci-uhci-usb"}, {"name": "virtio-blk-pci", "parent": "virtio-pci"}, {"name": "virtio-keyboard-pci", "parent": "virtio-input-hid-pci"}, {"name": "nec-usb-xhci", "parent": "base-xhci"}, {"name": "ivshmem", "parent": "ivshmem-common"}, {"name": "i82801b11-bridge", "parent": "base-pci-bridge"}, {"name": "pci-bridge-seat", "parent": "pci-bridge"}, {"name": "mch", "parent": "pci-device"}, {"name": "ICH9-LPC", "parent": "pci-device"}, {"name": "edu", "parent": "pci-device"}, {"name": "ich9-usb-uhci4", "parent": "pci-uhci-usb"}, {"name": "ich9-usb-uhci6", "parent": "pci-uhci-usb"}, {"name": "qxl", "parent": "pci-qxl"}, {"name": "intel-hda", "parent": "intel-hda-generic"}, {"name": "ich9-usb-uhci3", "parent": "pci-uhci-usb"}, {"name": "ICH9 SMB", "parent": "pci-device"}, {"name": "ich9-usb-uhci5", "parent": "pci-uhci-usb"}, {"name": "pxb-pcie", "parent": "pci-device"}, {"name": "piix3-ide-xen", "parent": "pci-ide"}, {"name": "VGA", "parent": "pci-vga"}, {"name": "pci-testdev", "parent": "pci-device"}, {"name": "ich9-usb-uhci2", "parent": "pci-uhci-usb"}, {"name": "ich9-usb-uhci1", "parent": "pci-uhci-usb"}, {"name": "pci-bridge", "parent": "base-pci-bridge"}, {"name": "pci-serial", "parent": "pci-device"}, {"name": "virtio-balloon-pci", "parent": "virtio-pci"}, {"name": "virtio-scsi-pci", "parent": "virtio-pci"}, {"name": "rtl8139", "parent": "pci-device"}, {"name": "ich9-intel-hda", "parent": "intel-hda-generic"}, {"name": "virtio-input-host-pci", "parent": "virtio-input-pci"}, {"name": "qemu-xhci", "parent": "base-xhci"}, {"name": "pxb", "parent": "pci-device"}, {"name": "e1000", "parent": "e1000-82540em"}, {"name": "virtio-serial-pci", "parent": "virtio-pci"}, {"name": "i440FX", "parent": "pci-device"}, {"name": "ich9-ahci", "parent": "pci-device"}, {"name": "vfio-pci", "parent": "pci-device"}, {"name": "vt82c686b-usb-uhci", "parent": "pci-uhci-usb"}, {"name": "virtio-gpu-pci", "parent": "virtio-pci"}, {"name": "ivshmem-plain", "parent": "ivshmem-common"}, {"name": "secondary-vga", "parent": "pci-vga"}, {"name": "ivshmem-doorbell", "parent": "ivshmem-common"}]}
{"execute":"qom-list-types","arguments": {"implements":"pci-express-device"}}
{"return": [{"name": "vhost-vsock-pci", "parent": "virtio-pci"}, {"name": "virtio-tablet-pci", "parent": "virtio-input-hid-pci"}, {"name": "e1000e", "parent": "pci-device"}, {"name": "virtio-net-pci", "parent": "virtio-pci"}, {"name": "virtio-mouse-pci", "parent": "virtio-input-hid-pci"}, {"name": "virtio-vga", "parent": "virtio-pci"}, {"name": "virtio-rng-pci", "parent": "virtio-pci"}, {"name": "pcie-root-port", "parent": "pcie-root-port-base"}, {"name": "virtio-blk-pci", "parent": "virtio-pci"}, {"name": "virtio-keyboard-pci", "parent": "virtio-input-hid-pci"}, {"name": "xio3130-downstream", "parent": "pcie-slot"}, {"name": "nec-usb-xhci", "parent": "base-xhci"}, {"name": "ioh3420", "parent": "pcie-root-port-base"}, {"name": "x3130-upstream", "parent": "pcie-port"}, {"name": "virtio-balloon-pci", "parent": "virtio-pci"}, {"name": "virtio-scsi-pci", "parent": "virtio-pci"}, {"name": "virtio-input-host-pci", "parent": "virtio-input-pci"}, {"name": "qemu-xhci", "parent": "base-xhci"}, {"name": "virtio-serial-pci", "parent": "virtio-pci"}, {"name": "vfio-pci", "parent": "pci-device"}, {"name": "virtio-gpu-pci", "parent": "virtio-pci"}]}
{"execute":"qom-list-types","arguments": {"implements":"pci-device"}}
{"return": [{"name": "vhost-vsock-pci", "parent": "virtio-pci"}, {"name": "virtio-tablet-pci", "parent": "virtio-input-hid-pci"}, {"name": "pci-serial-4x", "parent": "pci-device"}, {"name": "e1000-82540em", "parent": "e1000-base"}, {"name": "e1000e", "parent": "pci-device"}, {"name": "piix3-ide", "parent": "pci-ide"}, {"name": "PIIX3-xen", "parent": "pci-piix3"}, {"name": "usb-ehci", "parent": "pci-ehci-usb"}, {"name": "pci-serial-2x", "parent": "pci-device"}, {"name": "piix4-ide", "parent": "pci-ide"}, {"name": "virtio-net-pci", "parent": "virtio-pci"}, {"name": "virtio-mouse-pci", "parent": "virtio-input-hid-pci"}, {"name": "ich9-usb-ehci1", "parent": "pci-ehci-usb"}, {"name": "virtio-vga", "parent": "virtio-pci"}, {"name": "ich9-usb-ehci2", "parent": "pci-ehci-usb"}, {"name": "cirrus-vga", "parent": "pci-device"}, {"name": "virtio-rng-pci", "parent": "virtio-pci"}, {"name": "qxl-vga", "parent": "pci-qxl"}, {"name": "pcie-root-port", "parent": "pcie-root-port-base"}, {"name": "PIIX3", "parent": "pci-piix3"}, {"name": "kvm-pci-assign", "parent": "pci-device"}, {"name": "i6300esb", "parent": "pci-device"}, {"name": "AC97", "parent": "pci-device"}, {"name": "PIIX4_PM", "parent": "pci-device"}, {"name": "piix4-usb-uhci", "parent": "pci-uhci-usb"}, {"name": "vfio-pci-igd-lpc-bridge", "parent": "pci-device"}, {"name": "piix3-usb-uhci", "parent": "pci-uhci-usb"}, {"name": "virtio-blk-pci", "parent": "virtio-pci"}, {"name": "virtio-keyboard-pci", "parent": "virtio-input-hid-pci"}, {"name": "xio3130-downstream", "parent": "pcie-slot"}, {"name": "nec-usb-xhci", "parent": "base-xhci"}, {"name": "ivshmem", "parent": "ivshmem-common"}, {"name": "ioh3420", "parent": "pcie-root-port-base"}, {"name": "i82801b11-bridge", "parent": "base-pci-bridge"}, {"name": "pci-bridge-seat", "parent": "pci-bridge"}, {"name": "mch", "parent": "pci-device"}, {"name": "ICH9-LPC", "parent": "pci-device"}, {"name": "edu", "parent": "pci-device"}, {"name": "ich9-usb-uhci4", "parent": "pci-uhci-usb"}, {"name": "ich9-usb-uhci6", "parent": "pci-uhci-usb"}, {"name": "qxl", "parent": "pci-qxl"}, {"name": "intel-hda", "parent": "intel-hda-generic"}, {"name": "ich9-usb-uhci3", "parent": "pci-uhci-usb"}, {"name": "ICH9 SMB", "parent": "pci-device"}, {"name": "ich9-usb-uhci5", "parent": "pci-uhci-usb"}, {"name": "pxb-pcie", "parent": "pci-device"}, {"name": "piix3-ide-xen", "parent": "pci-ide"}, {"name": "VGA", "parent": "pci-vga"}, {"name": "pci-testdev", "parent": "pci-device"}, {"name": "ich9-usb-uhci2", "parent": "pci-uhci-usb"}, {"name": "ich9-usb-uhci1", "parent": "pci-uhci-usb"}, {"name": "x3130-upstream", "parent": "pcie-port"}, {"name": "pci-bridge", "parent": "base-pci-bridge"}, {"name": "pci-serial", "parent": "pci-device"}, {"name": "virtio-balloon-pci", "parent": "virtio-pci"}, {"name": "virtio-scsi-pci", "parent": "virtio-pci"}, {"name": "rtl8139", "parent": "pci-device"}, {"name": "ich9-intel-hda", "parent": "intel-hda-generic"}, {"name": "virtio-input-host-pci", "parent": "virtio-input-pci"}, {"name": "qemu-xhci", "parent": "base-xhci"}, {"name": "pxb", "parent": "pci-device"}, {"name": "e1000", "parent": "e1000-82540em"}, {"name": "virtio-serial-pci", "parent": "virtio-pci"}, {"name": "i440FX", "parent": "pci-device"}, {"name": "ich9-ahci", "parent": "pci-device"}, {"name": "vfio-pci", "parent": "pci-device"}, {"name": "vt82c686b-usb-uhci", "parent": "pci-uhci-usb"}, {"name": "virtio-gpu-pci", "parent": "virtio-pci"}, {"name": "ivshmem-plain", "parent": "ivshmem-common"}, {"name": "secondary-vga", "parent": "pci-vga"}, {"name": "ivshmem-doorbell", "parent": "ivshmem-common"}]}

Mainly focus on the "virtio-pci","vfio-pci" and "*-xhci", and all command can check the above devices

According to above test result, change to verified

Comment 14 errata-xmlrpc 2018-04-11 00:12:33 UTC
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory, and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

https://access.redhat.com/errata/RHSA-2018:1104