From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1MQrgk-0006u6-UP for qemu-devel@nongnu.org; Tue, 14 Jul 2009 19:45:34 -0400 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1MQrgf-0006tu-Kz for qemu-devel@nongnu.org; Tue, 14 Jul 2009 19:45:33 -0400 Received: from [199.232.76.173] (port=60258 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1MQrgf-0006tr-Ft for qemu-devel@nongnu.org; Tue, 14 Jul 2009 19:45:29 -0400 Received: from mx2.redhat.com ([66.187.237.31]:34287) by monty-python.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1MQrge-00037Q-Vm for qemu-devel@nongnu.org; Tue, 14 Jul 2009 19:45:29 -0400 Subject: Re: [Qemu-devel] [PATCH 04/13] qdev: add generic qdev_device_add() References: <1247225179-5495-1-git-send-email-kraxel@redhat.com> <200907101823.07096.paul@codesourcery.com> <4A57A449.5000907@redhat.com> <200907102151.04322.paul@codesourcery.com> <4A5C3689.3070001@redhat.com> From: Markus Armbruster Date: Wed, 15 Jul 2009 01:43:22 +0200 In-Reply-To: <4A5C3689.3070001@redhat.com> (Gerd Hoffmann's message of "Tue\, 14 Jul 2009 09\:40\:57 +0200") Message-ID: <87vdluhlut.fsf@pike.pond.sub.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Gerd Hoffmann Cc: Paul Brook , qemu-devel@nongnu.org Gerd Hoffmann writes: > On 07/10/09 22:51, Paul Brook wrote: >>>> I think this is going in the wrong direction. The device tree provides us >>>> with a standard way of identifying which bus to add a device to. We >>>> should be removing uses of pci_create, not adding new ones. >>> Why? >>> >>> Let me guess: Because pci bus numbers are guest-changeable and thus not >>> stable? >> >> Because I don't think this code need to be bus specific. > > Parts of the problem are certainly bus-specific though, such as > parsing bus addresses. Yes. Provide a bus method to parse the addr property? >> We also need to figure out the naming of multiple similar devices on the same >> bus. Possibly your "device id" could be used to identify devices on a bus. >> e.g. if we wanted two scsi adapters: >> >> -device lsi,bus=pci0,id=foo >> -device lsi,bus=pci0,id=bar >> -device scsi-disk,bus=pci0/foo/scsi >> -device scsi-disk,bus=pci0/bar/scsi Why foo/scsi? Is there a node "scsi" between the lsi device and the disk? If yes, why? What's the namespace for ids? A single, flat namespace would do just fine for me. Then I could do -device lsi,bus=pci0,id=scsi0 -device lsi,bus=pci0,id=scsi1 -device scsi-disk,bus=scsi0 -device scsi-disk,bus=scsi1 > I think what we will see used in practice is: > > - either go with the defaults (i.e. don't specify a bus at all > -> device is attached to the first (and often only) > pci/scsi/usb/whatever bus. > - or usage of ids to identify devices and busses. > > I think nobody will use stuff like > -device scsi-disk,bus=/main-system-bus/i440FX-pcihost/pci/lsi/scsi > in practice. I figure I wouldn't. Still, using tree path names to identify nodes feels natural. The more convenient id property fits in easily, just treat is as abbreviation mechanism. So, I'd be fine with -device DEVNAME,bus=TREE-PATH,addr=ADDR where TREE-PATH can start either with / (root node) or an id (start there instead of at the root), and ADDR is interpreted according to the bus.