Quantcast
Viewing all articles
Browse latest Browse all 36141

PCI Passthrough Error with Shared IRQ

kernel: 3.8.13-100.fc17.x86_64
libvirtd version: 0.9.11.9
cpu topology: Two socket Intel Xeon CPU E5-2670 0 @ 2.60GHz

problem: PCI passthrough works for all cases except those which share the same IRQ. For instance I can passthrough device 4092, (listed below)
along with other devices on the pci bus without issue, but I can't assign device 4092 or 4093 which share IRQ 45 while the other one is
passed through.

Has anyone come across this issue before?
Thanks.

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

libvirt node.log
PCI region 0 at address 0xde420000 has size 0x80, which is not a multiple of 4K. You might experience some performance hit due to that.
pci-assign: Cannot read from host /sys/bus/pci/devices/0000:12:04.0/rom
Device option ROM contents are probably invalid (check dmesg).
Skip option ROM probe with rombar=0, or load from file with romfile=
PCI region 0 at address 0xde220000 has size 0x80, which is not a multiple of 4K. You might experience some performance hit due to that.
Failed to assign irq for "hostdev1": Input/output error
Perhaps you are assigning a device that shares an IRQ with another device?
qemu-kvm: -device pci-assign,host=17:04.0,id=hostdev1,configfd=25,bus=pc i.0,addr=0x8: Device 'pci-assign' could not be initialized
2013-05-29 13:41:20.998+0000: shutting down

dmesg
[55404.846795] pci-stub 0000:12:04.0: claimed by stub
[55404.846921] pci-stub 0000:17:04.0: claimed by stub
[55405.781149] device vnet0 entered promiscuous mode
[55405.788172] disbr0: port 2(vnet0) entered forwarding state
[55405.788187] disbr0: port 2(vnet0) entered forwarding state
[55405.991739] pci-stub 0000:12:04.0: enabling device (0000 -> 0003)
[55406.726319] assign device 0:12:4.0
[55406.727101] pci-stub 0000:12:04.0: Invalid ROM contents
[55406.727658] pci-stub 0000:17:04.0: enabling device (0000 -> 0003)
[55406.928751] assign device 0:17:4.0
[55406.929014] genirq: Flags mismatch irq 45. 00002000 (kvm:0000:17:04.0) vs. 00002000 (kvm:0000:12:04.0)
[55406.929022] Pid: 15807, comm: qemu-kvm Not tainted 3.8.13-100.fc17.x86_64 #1
[55406.929025] Call Trace:
[55406.929042] [<ffffffff810f04a6>] __setup_irq+0x4d6/0x530
[55406.929048] [<ffffffff810f05af>] ? request_threaded_irq+0xaf/0x1b0
[55406.929054] [<ffffffff810eea30>] ? handle_irq_event+0x70/0x70
[55406.929098] [<ffffffffa0074080>] ? kvm_free_assigned_device+0xb0/0xb0 [kvm]
[55406.929103] [<ffffffff810f05f9>] request_threaded_irq+0xf9/0x1b0
[55406.929122] [<ffffffffa0074ea5>] kvm_vm_ioctl_assigned_device+0xc95/0xfd0 [kvm]
[55406.929132] [<ffffffff813f5f0f>] ? rpm_resume+0x12f/0x6a0
[55406.929141] [<ffffffff8129a032>] ? cred_has_capability+0x62/0x100
[55406.929158] [<ffffffffa006fead>] kvm_vm_ioctl+0x54d/0x580 [kvm]
[55406.929169] [<ffffffff8131f118>] ? pci_config_pm_runtime_put+0x38/0x40
[55406.929176] [<ffffffff813231af>] ? pci_read_config+0x1ef/0x290
[55406.929187] [<ffffffff811aec39>] do_vfs_ioctl+0x99/0x580
[55406.929192] [<ffffffff8129a36a>] ? inode_has_perm.isra.31.constprop.61+0x2a/0x30
[55406.929201] [<ffffffff8129bba7>] ? file_has_perm+0x97/0xb0
[55406.929206] [<ffffffff811af1b1>] sys_ioctl+0x91/0xb0
[55406.929215] [<ffffffff81658899>] system_call_fastpath+0x16/0x1b
[55406.929372] deassign device 0:17:4.0
[55407.133654] disbr0: port 2(vnet0) entered disabled state
[55407.134644] device vnet0 left promiscuous mode
[55407.134661] disbr0: port 2(vnet0) entered disabled state


lspci -v
12:04.0 Bridge: Vadatech Inc. Device 4092 (rev 0a)
Flags: medium devsel, IRQ 45
Memory at de420000 (32-bit, non-prefetchable) [size=128]
I/O ports at 7000 [size=128]
--
17:04.0 Bridge: Vadatech Inc. Device 4093 (rev 0a)
Flags: medium devsel, IRQ 45
Memory at de220000 (32-bit, non-prefetchable) [size=128]
I/O ports at 6000 [size=128]

Viewing all articles
Browse latest Browse all 36141

Trending Articles