From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([140.186.70.92]:39201) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1RB7wO-0000lT-Ed for qemu-devel@nongnu.org; Tue, 04 Oct 2011 12:34:01 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1RB7wL-0004uY-MB for qemu-devel@nongnu.org; Tue, 04 Oct 2011 12:34:00 -0400 Received: from mx1.redhat.com ([209.132.183.28]:16578) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1RB7wL-0004u0-DN for qemu-devel@nongnu.org; Tue, 04 Oct 2011 12:33:57 -0400 From: Alex Williamson Date: Tue, 04 Oct 2011 10:33:47 -0600 In-Reply-To: References: <1317739882-4809-1-git-send-email-anthony.perard@citrix.com> <4E8B1F0D.4080203@redhat.com> <4E8B1FBC.2080904@codemonkey.ws> Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: 7bit Message-ID: <1317746028.2552.191.camel@bling.home> Mime-Version: 1.0 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: Stefano Stabellini Cc: Anthony Perard , Xen Devel , Avi Kivity , QEMU-devel On Tue, 2011-10-04 at 16:05 +0100, Stefano Stabellini wrote: > 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. I thought we were potentially looking at vfio as a convergence point. I'm still a bit off from having a vfio re-write ready to submit, but is this still a possibility? Thanks, Alex