Jason Sonnek
2011-Feb-16 17:19 UTC
[Xen-devel] PCI passthrough of multiple devices to HVM guest using stub domain not working
Only the first function of the first device that I pass-through to an HVM guest using a stub domain successfully registers. If the first device in the "pci=[....]" line in the configuration file has a single function, the guest will boot and the first device will be passed-through successfully, but only none of the devices listed after the first will work. If the first device in the configuration file has multiple functions, the guest will hang during start-up. I''m using Xen 4.0.1 / pv_ops 2.6.32.25 Dom0. Works fine using qemu-dm in Dom0 instead of stubdom-dm. I''ve tested this with multiple devices. Here''s an excerpt from the QEMU log showing successful registration of the first function of a device and failure of the second: xs_read_watch() -> /local/domain/0/device-model/75/command dm-command dm-command: hot insert pass-through pci dev register_real_device: Assigning real physical device 08:00.0 ... open(/sys/bus/pci/devices/0000:08:00.0/resource, 0)pt_libpci_fixup: Error: Can''t open /sys/bus/pci/devices/0000:08:00.0/resource: I/O error register_real_device: Enable MSI translation via per device option register_real_device: Disable power management stat(/sys/bus/pci/devices/0000:08:00.0/physfn) warning: pt_iomul not supported in stubdom 08:00.0 pt_register_regions: IO region registered (size=0x00020000 base_addr=0xf9600000) pt_register_regions: IO region registered (size=0x00000020 base_addr=0x0000bf80) pt_register_regions: IO region registered (size=0x00004000 base_addr=0xf9640000) pt_msix_init: get MSI-X table bar base f9640000 open(/dev/mem) -> 12 pt_msix_init: table_off = 0, total_entries = 10 pt_msix_init: errno = 5 close(12) pt_msix_init: mapping physical MSI-X table to 2807000 pt_msi_setup: Error: Mapping of MSI failed. pt_enable_msi_translate: Error: MSI-INTx translation MSI setup failed, fallback pci_intx: intx=1 register_real_device: Real physical device 08:00.0 registered successfuly! IRQ type = INTx xs_read_watch() -> /local/domain/0/device-model/75/command dm-command xs_read(/local/domain/0/device-model/75/command): ENOENT pcifront_watches: backend state changed: /local/domain/0/backend/pci/76/0/state 7 pcifront_watches: writing device/pci/0/state 7 pcifront_watches: backend state changed: /local/domain/0/backend/pci/76/0/state 5 pcifront_watches: done waiting close pci: backend at /local/domain/0/backend/pci/76/0 xs_read_watch() -> /local/domain/0/device-model/75/command dm-command dm-command: hot insert pass-through pci dev register_real_device: Assigning real physical device 08:00.1 ... register_real_device: Error: couldn''t locate device in libpci structures xs_read_watch() -> /local/domain/0/device-model/75/command dm-command xs_read(/local/domain/0/device-model/75/command): ENOENT Any suggestions/assistance greatly appreciated. Jason _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel
Stefano Stabellini
2011-Feb-16 19:03 UTC
Re: [Xen-devel] PCI passthrough of multiple devices to HVM guest using stub domain not working
On Wed, 16 Feb 2011, Jason Sonnek wrote:> Only the first function of the first device that I pass-through to an > HVM guest using a stub domain successfully registers. If the first > device in the "pci=[....]" line in the configuration file has a single > function, the guest will boot and the first device will be > passed-through successfully, but only none of the devices listed after > the first will work. If the first device in the configuration file has > multiple functions, the guest will hang during start-up. > > I''m using Xen 4.0.1 / pv_ops 2.6.32.25 Dom0. Works fine using qemu-dm > in Dom0 instead of stubdom-dm. I''ve tested this with multiple devices.I am not too surprised because PCI passthrough of multiple devices to HVM guests with stubdoms is broken even on xen-unstable. IanC might be able to give you more details. _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel