Hi list,
I did some tests with passthrough of 2 PCIe devices to a Windows 7 HVM and both
failed to work.
# lspci
...
00:1b.0 Audio device: Intel Corporation 5 Series/3400 Series Chipset High Definition Audio (rev 05)
10:00.0 Network controller: Intel Corporation Centrino Advanced-N 6200 (rev 35)
...
In the qemu log I found the following messages:
register_real_device: Assigning real physical device 00:1b.0 ...
register_real_device: Enable MSI translation via per device option
register_real_device: Disable power management
pt_iomul_init: Error: pt_iomul_init: No such device: setup io multiplexing failed! 0x0:0x1b.0x0
pt_register_regions: IO region registered (size=0x00004000 base_addr=0xf2720004)
pt_msi_setup: pt_msi_setup requested pirq = 0
pt_msi_setup: msi mapped with pirq 0
pci_intx: intx=1
register_real_device: Real physical device 00:1b.0 registered successfuly!
IRQ type = MSI-INTx
vcpu-set: watch node error.
xs_read(/local/domain/3/log-throttling): read error
qemu: ignoring not-understood drive `/local/domain/3/log-throttling'
medium change watch on `/local/domain/3/log-throttling' - unknown device, ignored
dm-command: hot insert pass-through pci dev
register_real_device: Assigning real physical device 10:00.0 ...
register_real_device: Enable MSI translation via per device option
register_real_device: Disable power management
pt_iomul_init: Error: pt_iomul_init: No such device: setup io multiplexing failed! 0x10:0x0.0x0
pt_register_regions: IO region registered (size=0x00002000 base_addr=0xf2400004)
pt_msi_setup: pt_msi_setup requested pirq = 0
pt_msi_setup: msi mapped with pirq 0
pci_intx: intx=1
register_real_device: Real physical device 10:00.0 registered successfuly!
On the xen serial console I saw:
...
(XEN) [VT-D]io.c:327: d3: unbind: m_gsi=0 g_gsi=36 device=5 intx=0
(XEN) [VT-D]io.c:386: d3 unmap: m_irq=0 device=5 intx=0
(XEN) [VT-D]io.c:303: d3: bind: m_gsi=17 g_gsi=36 device=5 intx=0
(XEN) domctl.c:920:d0 pt_irq_create_bind failed!
(XEN) irq.c:1590: dom3: forcing unbind of pirq 0
In xen-4.0 (SLES11-SP1) all went fine.
I saw some added code in tools/ioemu-remote/hw/pt-msi.c function pt_msi_setup()
in xen-unstable:
gvec = dev->msi->data & 0xFF;
if (!gvec) {
/* if gvec is 0, the guest is asking for a particular pirq that
* is passed as dest_id */
pirq = (dev->msi->addr_hi & 0xffffff00) |
((dev->msi->addr_lo >> MSI_TARGET_CPU_SHIFT) & 0xff);
PT_LOG("pt_msi_setup requested pirq = %d\n", pirq);
}
If I remove this code the device 00:1b.0 gets pirq 37 and 00:10.0 gets pirq 36.
Now at least device 00:10.0 (WLAN) works. The audio device is still another problem.
Is this a already seen problem after all these msi discussions on the list?
Thanks!
Dietmar.
--
Company details: http://ts.fujitsu.com/imprint.html |