From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jason Kwon Subject: KVM PCI passthrough IRQ limitations Date: Tue, 03 Mar 2009 14:15:34 -0800 Message-ID: <49ADAC06.5040407@redback.com> Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit To: kvm@vger.kernel.org Return-path: Received: from mgate.redback.com ([155.53.3.41]:10612 "EHLO mgate.redback.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1756121AbZCCWZ3 (ORCPT ); Tue, 3 Mar 2009 17:25:29 -0500 Received: from localhost (localhost [127.0.0.1]) by prattle.redback.com (Postfix) with ESMTP id 0C862D8087E for ; Tue, 3 Mar 2009 14:15:35 -0800 (PST) Received: from prattle.redback.com ([127.0.0.1]) by localhost (prattle [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 07429-01 for ; Tue, 3 Mar 2009 14:15:34 -0800 (PST) Received: from [155.53.129.111] (unknown [155.53.129.111]) by prattle.redback.com (Postfix) with ESMTP id E1DC2D8087D for ; Tue, 3 Mar 2009 14:15:34 -0800 (PST) Sender: kvm-owner@vger.kernel.org List-ID: Hello, I am attempting to make use of '-pcidevice' on my system, but have run into some problems. First, my setup: Fedora 10 x86_64 host system 2.6.28.1-19.fc10 kernel from Koji KVM-84 Debian Lenny guest VM I am attempting to passthrough a Xilinx FPGA device to the Lenny guest. No driver for this device exists on the host. % /usr/local/kvm/bin/qemu-system-x86_64 ./vdisk.img -m 384 -pcidevice host=02:00.0 init_assigned_device: Registering real physical device 02:00.0 (bus=2 dev=0 func=0) get_real_device: region 0 size 1024 start 0xe1200000 type 512 resource_fd 12 Failed to assign irq for "02:00.0": Input/output error Perhaps you are assigning a device that shares an IRQ with another device? When the Fedora host was first booted, the Xilinx was assigned IRQ 10, which appeared to be unshared: 02:00.0 Memory controller: Xilinx Corporation Device 0007 Subsystem: Xilinx Corporation Device 0007 Flags: bus master, fast devsel, latency 0, IRQ 10 Memory at e1200000 (64-bit, non-prefetchable) [size=1K] Capabilities: However, after executing qemu-system-x86_64, lspci showed the Xilinx assigned to IRQ 16, which is shared with a SATA controller: 02:00.0 Memory controller: Xilinx Corporation Device 0007 Subsystem: Xilinx Corporation Device 0007 Flags: fast devsel, IRQ 16 Memory at e1200000 (64-bit, non-prefetchable) [size=1K] Capabilities: [40] Power Management version 3 Capabilities: [48] Message Signalled Interrupts: Mask+ 64bit+ Count=1/1 Enable- Capabilities: [60] Express Endpoint, MSI 00 Capabilities: [100] Device Serial Number XX-XX-XX-XX-XX-XX-XX-XX Moving the card to a different slot gave the same results. My hope is to eventually have two Xilinx FPGA cards in the same system, and to passthrough each card to its own VM instance. Would such a scheme be possible? Is there a way around the IRQ assignment failure? Thanks, Jason