
Am 19.11.2013 14:51, schrieb Thomas Kuther:
Am 19.11.2013 11:36, schrieb Laine Stump:
On 11/15/2013 03:35 PM, Thomas Kuther wrote:
Hello,
I'm trying to migrate a working qemu command line configuration to libvirt. The part I'm currently failing on is:
$ qemu-system-x86_64 -M Q35 ... -device vfio-pci,host=05:00.0,bus=pcie.0
The right way to translate this into libvirt XML seems to be using <hostdev>, but I seem to be unable to plug it into the pcie-root port
This is how the interesting part looks like when I let "virsh edit" generate an <address>
<controller type='pci' index='0' model='pcie-root'/> <controller type='pci' index='1' model='dmi-to-pci-bridge'> <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0'/> </controller> <controller type='pci' index='2' model='pci-bridge'> <address type='pci' domain='0x0000' bus='0x01' slot='0x01' function='0x0'/> </controller> [...] <hostdev mode='subsystem' type='pci' managed='yes'> <driver name='vfio'/> <source> <address domain='0x0000' bus='0x03' slot='0x00' function='0x0'/> </source> <address type='pci' domain='0x0000' bus='0x02' slot='0x06' function='0x0'/> </hostdev> [...]
To my understanding, this will plug the host device into the pci-bridge controller. The guest OS doesn't boot with this and resets right after bios.
Ugh. That's very unfortunate. This is the first report I've heard of something failing in such a bad way due to being plugged into a pci-bridge slot; up until now I'd only heard that there is some extra PCIe functionality that would be missing if a device was plugged into a PCI slot vs. PCIe.
Can I ask what type of device this is?
It's a Marvell 88SE9172 SATA controller, here is the lspci -vvv
[...]
The second one I'm trying to pass through is a Renesas uPD720201 USB 3.0 Host Controller, but first I wanted to get the SATA controller working in libvirt. I will try to leave out the SATA controller and see what happens with only the USB3 controller.
I tried to pass through only the USB 3 controller. The guest boots, but the controller isn't really working (means: no mouse and keyboard) Also tried again with above SATA controller just to verify, same result: the guest resets right after bios, causing a bios-reset-bios-reset loop. If it matters, the hosts runs vanilla 3.12 + libvirt-1.1.4 + qemu-1.6.1
I'm wondering as I type if possibly we could relax the enforcement of the "PCI only" rule such that we allow explicitly placing any device on any type of bus, but only auto-assign to a plain PCI slot. That may be a reasonable compromise until qemu has the required new device/controller introspection info available.
I like the idea.
I _really_ like the idea meanwhile :) ~Thomas