Hello,

I have been struggling as of late to successfully configure a pci passthrough using libvirt with kvm. Hoping someone can shed some light on the problem. Overall my experience with virtualization limited is so please forgive. The guest runs fine till passthrough is configured. I am using virt-manager. This has been tried on both a Fedora17 x86_64 and Arch Linux x86_64 build with pretty much identical errors.

I have carefully reviewed my hardware and purchased vt-d enabled parts where needed. vt-d is enabled for my chipset, cpu and in it's enabled in the bios.
on both systems I complied a custom kernel to enable DMA Remapping, PCI-stub and set CONFIG_INTEL_IOMMU_DEFAULT_ON=y
using kernel boot param: intel_iommu=on (not sure if overkill)
have kvm module option allow_unsafe_assigned_interrupts=1
selinux set to permissive mode in fedora. not used in arch

when launching I 1) modprobe pci_stub, 2) virsh nodedev-dettach pci device, 3) load guest using virtmanager... it get the following

the log outputs

libvirt error window

Error starting domain: Unable to read from monitor: Connection reset by peer

Traceback (most recent call last):
  File "/usr/share/virt-manager/virtManager/asyncjob.py", line 45, in cb_wrapper
    callback(asyncjob, *args, **kwargs)
  File "/usr/share/virt-manager/virtManager/asyncjob.py", line 66, in tmpcb
    callback(*args, **kwargs)
  File "/usr/share/virt-manager/virtManager/domain.py", line 1114, in startup
    self._backend.create()
  File "/usr/lib/python2.7/site-packages/libvirt.py", line 620, in create
    if ret == -1: raise libvirtError ('virDomainCreate() failed', dom=self)
libvirtError: Unable to read from monitor: Connection reset by peer



/var/log/libvirt/qemu/AED-VM.log
char device redirected to /dev/pts/3
Failed to assign irq for "hostdev0": Input/output error
Perhaps you are assigning a device that shares an IRQ with another device?


/var/log/libvirt/libvirtd.log
2012-07-08 22:45:11.403+0000: 3773: warning : ebiptablesDriverInit:4157 : Could not find 'ebtables' executable
2012-07-08 22:45:11.442+0000: 3773: error : virSysinfoRead:767 : internal error Failed to find path for dmidecode binary
2012-07-08 22:45:17.710+0000: 3764: error : virConnectNumOfInterfaces:10466 : this function is not supported by the connection driver: virConnectNumOfInterfaces
2012-07-08 22:46:13.494+0000: 3764: warning : qemuDomainObjTaint:1371 : Domain id=1 name='AED-VM' uuid=8f2892d8-df3c-6e75-0fe5-42c1ecd7835d is tainted: high-privileges
2012-07-08 22:46:13.725+0000: 3762: error : qemuMonitorIORead:526 : Unable to read from monitor: Connection reset by peer
2012-07-08 22:46:13.725+0000: 3762: error : qemuMonitorIO:582 : internal error event from unexpected fd -1!=21 / watch 9!=9
2012-07-08 22:48:51.281+0000: 4097: info : libvirt version: 0.9.13


dmesg

[  158.017387] virbr0: port 1(vnet0) entered forwarding state
[  158.017395] virbr0: port 1(vnet0) entered forwarding state
[  158.017615] ADDRCONF(NETDEV_CHANGE): virbr0: link becomes ready
[  158.476879] assign device 0:3:2.0
[  158.477080] deassign device 0:3:2.0
[  158.719521] virbr0: port 1(vnet0) entered disabled state
[  158.719673] device vnet0 left promiscuous mode


any help would be greatly appreciated.

mike allison