From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1LQ5oo-0002V9-Nm for qemu-devel@nongnu.org; Thu, 22 Jan 2009 15:06:26 -0500 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1LQ5on-0002TJ-Ko for qemu-devel@nongnu.org; Thu, 22 Jan 2009 15:06:26 -0500 Received: from [199.232.76.173] (port=56103 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1LQ5on-0002T3-FL for qemu-devel@nongnu.org; Thu, 22 Jan 2009 15:06:25 -0500 Received: from qw-out-1920.google.com ([74.125.92.145]:31039) by monty-python.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1LQ5om-0001RA-Uk for qemu-devel@nongnu.org; Thu, 22 Jan 2009 15:06:25 -0500 Received: by qw-out-1920.google.com with SMTP id 5so844550qwc.4 for ; Thu, 22 Jan 2009 12:06:23 -0800 (PST) Message-ID: <4978D1B0.5040500@codemonkey.ws> Date: Thu, 22 Jan 2009 14:06:08 -0600 From: Anthony Liguori MIME-Version: 1.0 Subject: Re: [Qemu-devel] [RFC PATCH 0/9] Configurable PCI device addresses References: <87ocxzrvqb.fsf@pike.pond.sub.org> In-Reply-To: <87ocxzrvqb.fsf@pike.pond.sub.org> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Reply-To: qemu-devel@nongnu.org List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Markus Armbruster wrote: > This patch series makes PCI device addresses configurable for a number > of devices. For now, I just covered the ones I consider important > and/or where the change is somewhat invasive. > > Why is a configurable PCI device address useful? Currently, QEMU > assigns a few device addresses statically, and the rest dynamically on > a first come, first serve basis[*]. If you add or remove a device, > all devices registering later change address. I'm told a certain > operating system that can't be named in polite company can get rather > upset about that. > > Making the device address configurable looks like the simplest > solution to this problem. Only users who really mind changing > addresses have to deal with the new configuration parameter. > I think we're starting to get to the tipping point where we really just need to introduce a machine config file. Paul, you mentioned you were working on something before? Care to update us on the status? I know there was a fair bit of support before for a FDT based machine config. Regards, Anthony Liguori > I started with Izik's proposal to "allow setting static slot values > for pci devices from the command line", see > > http://lists.gnu.org/archive/html/qemu-devel/2008-01/msg00601.html > http://lists.gnu.org/archive/html/qemu-devel/2007-11/msg00620.html > > but ended up doing it quite differently. > > I'm just soliciting comments. I do *not* ask for a commit of anything > right now. > > The patch series consists of these parts: > > [1/9] PCI device registration helpers > [2/9] Clean up handling of name=value,... part of -vga option argument > [3/9] Support pci=... in option argument of -vga > [4/9] Convert virtio_init_pci() to pci_register_device_2() > [5/9] Support pci=... in option argument of -net nic > [6/9] Make drives_opt[] accessible from device initialization > [7/9] Support pci=... in option argument of -drive if=virtio > [8/9] New option -audio as a more flexible alternative to -soundhw > [9/9] Support pci=... in option argument of -audio > > Overall diffstat: > > hw/ac97.c | 11 +--- > hw/audiodev.h | 4 +- > hw/cirrus_vga.c | 6 +- > hw/e1000.c | 6 +- > hw/eepro100.c | 19 ++++---- > hw/es1370.c | 11 +--- > hw/mips_malta.c | 17 +++---- > hw/ne2000.c | 7 +-- > hw/pc.c | 23 ++++------ > hw/pc.h | 11 +--- > hw/pci.c | 109 ++++++++++++++++++++++++++++++++++++++++++++-- > hw/pci.h | 25 ++++++---- > hw/pcnet.c | 6 +- > hw/ppc440_bamboo.c | 5 +- > hw/ppc_chrp.c | 4 +- > hw/ppc_oldworld.c | 4 +- > hw/ppc_prep.c | 4 +- > hw/r2d.c | 8 ++-- > hw/realview.c | 2 +- > hw/rtl8139.c | 7 +-- > hw/sun4u.c | 4 +- > hw/versatilepb.c | 2 +- > hw/vga.c | 40 ++++++++-------- > hw/virtio-balloon.c | 2 +- > hw/virtio-blk.c | 4 +- > hw/virtio-blk.h | 2 +- > hw/virtio-console.c | 2 +- > hw/virtio-net.c | 5 +- > hw/virtio-net.h | 2 +- > hw/virtio.c | 5 +- > hw/virtio.h | 2 +- > hw/vmware_vga.c | 7 ++- > net.c | 1 + > net.h | 1 + > sysemu.h | 13 +++++- > vl.c | 120 ++++++++++++++++++++++++++++++++------------------- > 36 files changed, 315 insertions(+), 186 deletions(-) > > > [*] To be precise: it assigns the dev.func part dynamically. The > domain:bus: part is still statically assigned. > > >