From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([208.118.235.92]:37606) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1SC8Yj-0000dl-JA for qemu-devel@nongnu.org; Mon, 26 Mar 2012 07:58:03 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1SC8Yc-0001nk-L8 for qemu-devel@nongnu.org; Mon, 26 Mar 2012 07:58:01 -0400 Received: from mx1.redhat.com ([209.132.183.28]:63154) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1SC8Yc-0001nH-DD for qemu-devel@nongnu.org; Mon, 26 Mar 2012 07:57:54 -0400 Message-ID: <4F7059B6.9040508@redhat.com> Date: Mon, 26 Mar 2012 13:57:42 +0200 From: Avi Kivity MIME-Version: 1.0 References: <5071f24e827d5948ed3de7f53991b148b4ef38e9.1332430835.git.julien.grall@citrix.com> <4F6B847C.8080402@codemonkey.ws> <4F6F0AEB.5030504@redhat.com> In-Reply-To: Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [QEMU][RFC PATCH 4/6] xen-pci: Register PCI in Xen List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Stefano Stabellini Cc: "Julien Grall (Intern)" , "xen-devel@lists.xensource.com" , "qemu-devel@nongnu.org" , Anthony Liguori , Julian Pidancet On 03/26/2012 01:45 PM, Stefano Stabellini wrote: > > > > > > > > > Now the problem is: there isn't a simple way to specify the BDF where > > > you want to create the device; pci_create_simple takes a devfn but most > > > of the higher level functions (pc_vga_init, pci_nic_init_nofail, ...) > > > don't export the parameter at the moment. > > > We would need to be able to tell pc_vga_init where to create the card, > > > so we would have to export the devfn as a parameter. > > > > > > > You already have total flexibility with the -device foo parameter. It > > allows you to create any device, anywhere, with whatever configuration > > you want. Use in conjunction with -nodefconfig. > > Thanks, -device looks exactly like what we need! > However I think that the option to suppress the defaults is -nodefaults. Correct, as I was just informed in another thread. > > > > You may want your own host/pci bridge that lacks the device 0 > > configuration space. > > In order not to disrupt the emulated machine in QEMU too much, I was > thinking to let QEMU create the default device 0 and device 1: > > 00:00.0 Host bridge: Intel Corporation 440FX - 82441FX PMC [Natoma] (rev 02) > 00:01.0 ISA bridge: Intel Corporation 82371SB PIIX3 ISA [Natoma/Triton II] > 00:01.1 IDE interface: Intel Corporation 82371SB PIIX3 IDE [Natoma/Triton II] > 00:01.3 Bridge: Intel Corporation 82371AB/EB/MB PIIX4 ACPI (rev 03) > > and then have only the first QEMU register itself for IO events in Xen > related to these devices. That means that only the first QEMU would > actually receive any events to handle while the other QEMUs would never > receive any events for these devices. > > Then everything else would go through -device: a device is created > only if the command line option is passed and in that case QEMU > also registers itself as the handler of this specific device in Xen. > > There is supposed to be no overlaps in the configuration, so if two > QEMUs both register for the same device Xen would return error and QEMU > would exit. > > > The reason for doing this is that I am not sure that all OSes would be > able to cope with the ISA bridge being at a location different than > 00:01.0 or the IDE controller being on a different device from the ISA > bridge, considering that they are supposed to be two functions of the > same device (Intel PIIX southbridge). > So at that point we might as well leave them as they are and try to > disrupt the basic config at little as possible. Yes, but won't all qemus have those 00:01.0 devices and try to register for them? What about if two BARs (from different devices) are configured for the same address ranges? -- error compiling committee.c: too many arguments to function