From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([140.186.70.92]:40034) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1RB6Yr-00072y-TX for qemu-devel@nongnu.org; Tue, 04 Oct 2011 11:05:41 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1RB6Yg-0006Db-Cx for qemu-devel@nongnu.org; Tue, 04 Oct 2011 11:05:37 -0400 Received: from smtp.ctxuk.citrix.com ([62.200.22.115]:41329 helo=SMTP.EU.CITRIX.COM) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1RB6Yg-0006Cy-8e for qemu-devel@nongnu.org; Tue, 04 Oct 2011 11:05:26 -0400 Date: Tue, 4 Oct 2011 16:05:16 +0100 From: Stefano Stabellini In-Reply-To: <4E8B1FBC.2080904@codemonkey.ws> Message-ID: References: <1317739882-4809-1-git-send-email-anthony.perard@citrix.com> <4E8B1F0D.4080203@redhat.com> <4E8B1FBC.2080904@codemonkey.ws> MIME-Version: 1.0 Content-Type: text/plain; charset="US-ASCII" Subject: Re: [Qemu-devel] [Xen-devel] [PATCH RFC V1 00/11] Xen PCI Passthrough List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Anthony Liguori Cc: Xen Devel , Stefano Stabellini , QEMU-devel , Alex Williamson , Avi Kivity , Anthony Perard On Tue, 4 Oct 2011, Anthony Liguori wrote: > On 10/04/2011 09:58 AM, Avi Kivity wrote: > > On 10/04/2011 04:51 PM, Anthony PERARD wrote: > >> Hi all, > >> > >> This patch series introduce the PCI passthrough for Xen. > >> > >> First, we have HostPCIDevice that help to access one PCI device of the host. > >> > >> Then, there are several additions in the QEMU code. One is qemu_run_one_timer > >> to run a specific timer. It is used by PCI passthrough to run a timer about > >> power management. Another is pci_check_bar_overlap. > >> > >> There are also several change in pci_ids and pci_regs. > >> > >> Last part, but not least, the PCI passthrough device himself. Cut in 3 parts > >> (or file), there is one to take care of the initialisation of a passthrough > >> device. The second one handle everything about the config address space, there > >> are specifics functions for every config register. The third one is to handle > >> MSI. > >> > >> I'm still working on setting a PCI passthrough device through QMP from libxl > >> (xen tool stack). It is just a call to device_add, with the driver parametter > >> hostaddr="0000:00:1b.0". > >> > >> There is some minor things missing: > >> - copyright header > >> - PCI IO space multiplexer > >> > >> > > > > We also have pci passthrough in qemu-kvm (I think based on the same Neocleus > > code). Rather than having two pci assignment implementations, I think we should > > have just one, with the differences (programming the hypervisor) abstracted at > > that level. > > I agree in principle but how close is qemu-kvm pci passthrough to a mergable > state? Would it make sense to merge the Xen code first and then abstract it? I think it should be fairly easy to abstract the current xen code: just a matter of providing memory, ioport and interrupt mapping functions. From mboxrd@z Thu Jan 1 00:00:00 1970 From: Stefano Stabellini Subject: Re: [Xen-devel] [PATCH RFC V1 00/11] Xen PCI Passthrough Date: Tue, 4 Oct 2011 16:05:16 +0100 Message-ID: References: <1317739882-4809-1-git-send-email-anthony.perard@citrix.com> <4E8B1F0D.4080203@redhat.com> <4E8B1FBC.2080904@codemonkey.ws> Mime-Version: 1.0 Content-Type: text/plain; charset="US-ASCII" Return-path: In-Reply-To: <4E8B1FBC.2080904@codemonkey.ws> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+gceq-qemu-devel=gmane.org@nongnu.org Sender: qemu-devel-bounces+gceq-qemu-devel=gmane.org@nongnu.org To: Anthony Liguori Cc: Xen Devel , Stefano Stabellini , QEMU-devel , Alex Williamson , Avi Kivity , Anthony Perard List-Id: xen-devel@lists.xenproject.org On Tue, 4 Oct 2011, Anthony Liguori wrote: > On 10/04/2011 09:58 AM, Avi Kivity wrote: > > On 10/04/2011 04:51 PM, Anthony PERARD wrote: > >> Hi all, > >> > >> This patch series introduce the PCI passthrough for Xen. > >> > >> First, we have HostPCIDevice that help to access one PCI device of the host. > >> > >> Then, there are several additions in the QEMU code. One is qemu_run_one_timer > >> to run a specific timer. It is used by PCI passthrough to run a timer about > >> power management. Another is pci_check_bar_overlap. > >> > >> There are also several change in pci_ids and pci_regs. > >> > >> Last part, but not least, the PCI passthrough device himself. Cut in 3 parts > >> (or file), there is one to take care of the initialisation of a passthrough > >> device. The second one handle everything about the config address space, there > >> are specifics functions for every config register. The third one is to handle > >> MSI. > >> > >> I'm still working on setting a PCI passthrough device through QMP from libxl > >> (xen tool stack). It is just a call to device_add, with the driver parametter > >> hostaddr="0000:00:1b.0". > >> > >> There is some minor things missing: > >> - copyright header > >> - PCI IO space multiplexer > >> > >> > > > > We also have pci passthrough in qemu-kvm (I think based on the same Neocleus > > code). Rather than having two pci assignment implementations, I think we should > > have just one, with the differences (programming the hypervisor) abstracted at > > that level. > > I agree in principle but how close is qemu-kvm pci passthrough to a mergable > state? Would it make sense to merge the Xen code first and then abstract it? I think it should be fairly easy to abstract the current xen code: just a matter of providing memory, ioport and interrupt mapping functions.