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