From: Alex Williamson <alex.williamson@redhat.com>
To: Markus Armbruster <armbru@redhat.com>
Cc: Paul Brook <paul@codesourcery.com>,
chrisw@redhat.com, kvm@vger.kernel.org,
Jan Kiszka <jan.kiszka@siemens.com>,
qemu-devel@nongnu.org, avi@redhat.com, kraxel@redhat.com
Subject: Re: [Qemu-devel] [RFC PATCH 1/5] qdev: Create qdev_get_dev_path()
Date: Thu, 17 Jun 2010 16:25:40 -0600 [thread overview]
Message-ID: <1276813540.3216.52.camel@x201> (raw)
In-Reply-To: <m3ljaf4c8d.fsf@blackfin.pond.sub.org>
On Wed, 2010-06-16 at 10:23 +0200, Markus Armbruster wrote:
> Alex Williamson <alex.williamson@redhat.com> writes:
>
> > On Tue, 2010-06-15 at 12:28 +0100, Paul Brook wrote:
> >> > > Alex proposed to disambiguate by adding "identified properties of the
> >> > > immediate parent bus and device" to the path component. For PCI, these
> >> > > are dev.fn. Likewise for any other bus where devices have unambigous
> >> > > bus address. The driver name carries no information!
> >> >
> >> > From user POV, driver names are very handly to address a device
> >> > intuitively - except for the case you have tones of devices on the same
> >> > bus that are handled by the same driver. For that case we need to
> >> > augment the device name with a useful per-bus ID, derived from the bus
> >> > address where available, otherwise based on instance numbers.
> >>
> >> This is where I think you're missing a trick. We don't need to augment the
> >> name, we just need to allow the bus id to be used instead.
> >
> > For the case of a hot remove, I agree. If the user specifies "pci_del
> > pci.0/03.0", that's completely sufficient because we don't care what's
> > in that slot, just remove it. However, I still see some use cases for
> > device names in the path. Take for example:
> >
> > (A): /i440FX-pcihost/pci.0/e1000.05.0
> >
> > vs
> >
> > (B): /pci.0/05.0
> >
> > (removing both the root bridge driver name and the device driver name)
>
> / is the main system bus. System bus defines no bus address at the
> moment. Therefore, you have to use the driver name i440FX-pcihost.
So is the general rule "If a device's parent bus does not provide an
address, print device name"?
> /i440FX-pcihost/pci.0 is the PCI bus. PCI bus defines a bus address:
> dev.fn. Therefore, you can either use the bus address @05.0, or the
> driver name e1000.
>
> We have "/i440FX-pcihost/pci.0/e1000" vs. "/i440FX-pcihost/pci.0/@05.0".
I object to being able to use anything but an address under a bus that
supports hotplug, but that aside, I think the paths for my example
system look like below. Note that anything behind and including the $
is not the canonical path, that begins the free form, usage specific
string, here filled by missing device names (open to suggestions other
than $ here). Note that were isa devices do not have a bus identifier,
I'm using the device name, which I think follows the same rule as
i440FX-pcihost. Can we agree this is the goal? Thanks,
Alex
/i440FX-pcihost/pci.0/@00.0$i440FX
/i440FX-pcihost/pci.0/@01.0$PIIX3
/i440FX-pcihost/pci.0/@02.0$cirrus-vga
/i440FX-pcihost/pci.0/@01.0/isa.0/mc146818rtc
/i440FX-pcihost/pci.0/@01.0/isa.0/@0x3f8$isa-serial
/i440FX-pcihost/pci.0/@01.0/isa.0/@0x378$isa-parallel
/i440FX-pcihost/pci.0/@01.0/isa.0/i8042
/i440FX-pcihost/pci.0/@01.0/isa.0/isa-fdc
/i440FX-pcihost/pci.0/@03.0$i82551
/i440FX-pcihost/pci.0/@04.0$virtio-net-pci
/i440FX-pcihost/pci.0/@05.0$e1000
/i440FX-pcihost/pci.0/@06.0$rtl8139
/i440FX-pcihost/pci.0/@07.0$pcnet
/i440FX-pcihost/pci.0/@01.0/isa.0/@0x300$ne2k_isa
/i440FX-pcihost/pci.0/@01.1$piix3-ide
/i440FX-pcihost/pci.0/@01.1/ide.0/@0$ide-drive
/i440FX-pcihost/pci.0/@01.1/ide.1/@0$ide-drive
/i440FX-pcihost/pci.0/@01.2$piix3-usb-uhci
/i440FX-pcihost/pci.0/@01.3$PIIX4_PM
/i440FX-pcihost/pci.0/@01.3/i2c/@80$smbus-eeprom
/i440FX-pcihost/pci.0/@01.3/i2c/@81$smbus-eeprom
/i440FX-pcihost/pci.0/@01.3/i2c/@82$smbus-eeprom
/i440FX-pcihost/pci.0/@01.3/i2c/@83$smbus-eeprom
/i440FX-pcihost/pci.0/@01.3/i2c/@84$smbus-eeprom
/i440FX-pcihost/pci.0/@01.3/i2c/@85$smbus-eeprom
/i440FX-pcihost/pci.0/@01.3/i2c/@86$smbus-eeprom
/i440FX-pcihost/pci.0/@01.3/i2c/@87$smbus-eeprom
/i440FX-pcihost/pci.0/@08.0/scsi.0/@0$scsi-disk
/i440FX-pcihost/pci.0/@08.0/scsi.0/@3$scsi-disk
/i440FX-pcihost/pci.0/@08.0$lsi53c895a
/i440FX-pcihost/pci.0/@01.2/usb.0/@usb0/scsi.0/@0$scsi-disk
/i440FX-pcihost/pci.0/@01.2/usb.0/@usb0$usb-storage
/i440FX-pcihost/pci.0/@09.0$virtio-blk-pci
WARNING: multiple messages have this Message-ID (diff)
From: Alex Williamson <alex.williamson@redhat.com>
To: Markus Armbruster <armbru@redhat.com>
Cc: chrisw@redhat.com, kraxel@redhat.com, kvm@vger.kernel.org,
Jan Kiszka <jan.kiszka@siemens.com>,
qemu-devel@nongnu.org, avi@redhat.com,
Paul Brook <paul@codesourcery.com>
Subject: Re: [Qemu-devel] [RFC PATCH 1/5] qdev: Create qdev_get_dev_path()
Date: Thu, 17 Jun 2010 16:25:40 -0600 [thread overview]
Message-ID: <1276813540.3216.52.camel@x201> (raw)
In-Reply-To: <m3ljaf4c8d.fsf@blackfin.pond.sub.org>
On Wed, 2010-06-16 at 10:23 +0200, Markus Armbruster wrote:
> Alex Williamson <alex.williamson@redhat.com> writes:
>
> > On Tue, 2010-06-15 at 12:28 +0100, Paul Brook wrote:
> >> > > Alex proposed to disambiguate by adding "identified properties of the
> >> > > immediate parent bus and device" to the path component. For PCI, these
> >> > > are dev.fn. Likewise for any other bus where devices have unambigous
> >> > > bus address. The driver name carries no information!
> >> >
> >> > From user POV, driver names are very handly to address a device
> >> > intuitively - except for the case you have tones of devices on the same
> >> > bus that are handled by the same driver. For that case we need to
> >> > augment the device name with a useful per-bus ID, derived from the bus
> >> > address where available, otherwise based on instance numbers.
> >>
> >> This is where I think you're missing a trick. We don't need to augment the
> >> name, we just need to allow the bus id to be used instead.
> >
> > For the case of a hot remove, I agree. If the user specifies "pci_del
> > pci.0/03.0", that's completely sufficient because we don't care what's
> > in that slot, just remove it. However, I still see some use cases for
> > device names in the path. Take for example:
> >
> > (A): /i440FX-pcihost/pci.0/e1000.05.0
> >
> > vs
> >
> > (B): /pci.0/05.0
> >
> > (removing both the root bridge driver name and the device driver name)
>
> / is the main system bus. System bus defines no bus address at the
> moment. Therefore, you have to use the driver name i440FX-pcihost.
So is the general rule "If a device's parent bus does not provide an
address, print device name"?
> /i440FX-pcihost/pci.0 is the PCI bus. PCI bus defines a bus address:
> dev.fn. Therefore, you can either use the bus address @05.0, or the
> driver name e1000.
>
> We have "/i440FX-pcihost/pci.0/e1000" vs. "/i440FX-pcihost/pci.0/@05.0".
I object to being able to use anything but an address under a bus that
supports hotplug, but that aside, I think the paths for my example
system look like below. Note that anything behind and including the $
is not the canonical path, that begins the free form, usage specific
string, here filled by missing device names (open to suggestions other
than $ here). Note that were isa devices do not have a bus identifier,
I'm using the device name, which I think follows the same rule as
i440FX-pcihost. Can we agree this is the goal? Thanks,
Alex
/i440FX-pcihost/pci.0/@00.0$i440FX
/i440FX-pcihost/pci.0/@01.0$PIIX3
/i440FX-pcihost/pci.0/@02.0$cirrus-vga
/i440FX-pcihost/pci.0/@01.0/isa.0/mc146818rtc
/i440FX-pcihost/pci.0/@01.0/isa.0/@0x3f8$isa-serial
/i440FX-pcihost/pci.0/@01.0/isa.0/@0x378$isa-parallel
/i440FX-pcihost/pci.0/@01.0/isa.0/i8042
/i440FX-pcihost/pci.0/@01.0/isa.0/isa-fdc
/i440FX-pcihost/pci.0/@03.0$i82551
/i440FX-pcihost/pci.0/@04.0$virtio-net-pci
/i440FX-pcihost/pci.0/@05.0$e1000
/i440FX-pcihost/pci.0/@06.0$rtl8139
/i440FX-pcihost/pci.0/@07.0$pcnet
/i440FX-pcihost/pci.0/@01.0/isa.0/@0x300$ne2k_isa
/i440FX-pcihost/pci.0/@01.1$piix3-ide
/i440FX-pcihost/pci.0/@01.1/ide.0/@0$ide-drive
/i440FX-pcihost/pci.0/@01.1/ide.1/@0$ide-drive
/i440FX-pcihost/pci.0/@01.2$piix3-usb-uhci
/i440FX-pcihost/pci.0/@01.3$PIIX4_PM
/i440FX-pcihost/pci.0/@01.3/i2c/@80$smbus-eeprom
/i440FX-pcihost/pci.0/@01.3/i2c/@81$smbus-eeprom
/i440FX-pcihost/pci.0/@01.3/i2c/@82$smbus-eeprom
/i440FX-pcihost/pci.0/@01.3/i2c/@83$smbus-eeprom
/i440FX-pcihost/pci.0/@01.3/i2c/@84$smbus-eeprom
/i440FX-pcihost/pci.0/@01.3/i2c/@85$smbus-eeprom
/i440FX-pcihost/pci.0/@01.3/i2c/@86$smbus-eeprom
/i440FX-pcihost/pci.0/@01.3/i2c/@87$smbus-eeprom
/i440FX-pcihost/pci.0/@08.0/scsi.0/@0$scsi-disk
/i440FX-pcihost/pci.0/@08.0/scsi.0/@3$scsi-disk
/i440FX-pcihost/pci.0/@08.0$lsi53c895a
/i440FX-pcihost/pci.0/@01.2/usb.0/@usb0/scsi.0/@0$scsi-disk
/i440FX-pcihost/pci.0/@01.2/usb.0/@usb0$usb-storage
/i440FX-pcihost/pci.0/@09.0$virtio-blk-pci
next prev parent reply other threads:[~2010-06-17 22:25 UTC|newest]
Thread overview: 160+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-06-14 5:51 [RFC PATCH 0/5] Introduce canonical device hierarchy string Alex Williamson
2010-06-14 5:51 ` [Qemu-devel] " Alex Williamson
2010-06-14 5:51 ` [RFC PATCH 1/5] qdev: Create qdev_get_dev_path() Alex Williamson
2010-06-14 5:51 ` [Qemu-devel] " Alex Williamson
2010-06-14 6:39 ` Markus Armbruster
2010-06-14 6:39 ` Markus Armbruster
2010-06-14 12:52 ` Alex Williamson
2010-06-14 12:52 ` Alex Williamson
2010-06-14 13:00 ` Jan Kiszka
2010-06-14 13:00 ` Jan Kiszka
2010-06-14 13:09 ` Paul Brook
2010-06-14 13:09 ` Paul Brook
2010-06-14 15:29 ` Alex Williamson
2010-06-14 15:29 ` Alex Williamson
2010-06-14 15:42 ` Paul Brook
2010-06-14 15:42 ` Paul Brook
2010-06-14 16:00 ` Jan Kiszka
2010-06-14 16:00 ` Jan Kiszka
2010-06-14 16:38 ` Alex Williamson
2010-06-14 16:38 ` Alex Williamson
2010-06-14 16:49 ` Jan Kiszka
2010-06-14 16:49 ` Jan Kiszka
2010-06-14 18:35 ` Alex Williamson
2010-06-14 18:35 ` Alex Williamson
2010-06-14 21:43 ` Paul Brook
2010-06-14 21:43 ` Paul Brook
2010-06-14 22:11 ` Alex Williamson
2010-06-14 22:11 ` Alex Williamson
2010-06-14 22:46 ` Paul Brook
2010-06-14 22:46 ` Paul Brook
2010-06-15 1:14 ` Alex Williamson
2010-06-15 1:14 ` Alex Williamson
2010-06-15 11:24 ` Paul Brook
2010-06-15 11:24 ` Paul Brook
2010-06-15 8:47 ` Markus Armbruster
2010-06-15 8:47 ` Markus Armbruster
2010-06-15 9:34 ` Jan Kiszka
2010-06-15 9:34 ` Jan Kiszka
2010-06-15 11:28 ` Paul Brook
2010-06-15 11:28 ` Paul Brook
2010-06-15 11:45 ` Jan Kiszka
2010-06-15 11:45 ` Jan Kiszka
2010-06-15 12:04 ` Paul Brook
2010-06-15 12:04 ` Paul Brook
2010-06-15 12:16 ` Jan Kiszka
2010-06-15 12:16 ` Jan Kiszka
2010-06-15 12:39 ` Paul Brook
2010-06-15 12:39 ` Paul Brook
2010-06-15 13:00 ` Jan Kiszka
2010-06-15 13:00 ` Jan Kiszka
2010-06-15 13:14 ` Paul Brook
2010-06-15 13:14 ` Paul Brook
2010-06-15 13:16 ` Markus Armbruster
2010-06-15 13:16 ` Markus Armbruster
2010-06-15 13:32 ` Jan Kiszka
2010-06-15 13:32 ` Jan Kiszka
2010-06-15 20:53 ` Alex Williamson
2010-06-15 20:53 ` Alex Williamson
2010-06-15 21:55 ` Paul Brook
2010-06-15 21:55 ` Paul Brook
2010-06-15 22:33 ` Alex Williamson
2010-06-15 22:33 ` Alex Williamson
2010-06-15 23:01 ` Paul Brook
2010-06-15 23:01 ` Paul Brook
2010-06-15 23:10 ` Alex Williamson
2010-06-15 23:10 ` Alex Williamson
2010-06-16 0:25 ` Chris Wright
2010-06-16 0:25 ` Chris Wright
2010-06-16 0:30 ` Paul Brook
2010-06-16 0:30 ` Paul Brook
2010-06-16 0:35 ` Chris Wright
2010-06-16 0:35 ` Chris Wright
2010-06-16 1:30 ` Paul Brook
2010-06-16 1:30 ` Paul Brook
2010-06-16 2:55 ` Alex Williamson
2010-06-16 2:55 ` Alex Williamson
2010-06-16 8:23 ` Markus Armbruster
2010-06-16 8:23 ` Markus Armbruster
2010-06-17 22:25 ` Alex Williamson [this message]
2010-06-17 22:25 ` Alex Williamson
2010-06-18 9:16 ` Jan Kiszka
2010-06-18 9:16 ` Jan Kiszka
2010-06-18 15:01 ` Alex Williamson
2010-06-18 15:01 ` Alex Williamson
2010-06-18 15:22 ` Jan Kiszka
2010-06-18 15:22 ` Jan Kiszka
2010-06-18 14:03 ` Markus Armbruster
2010-06-18 14:03 ` Markus Armbruster
2010-06-18 14:14 ` Jan Kiszka
2010-06-18 14:14 ` Jan Kiszka
2010-06-18 15:21 ` Alex Williamson
2010-06-18 15:21 ` Alex Williamson
2010-06-15 11:42 ` Markus Armbruster
2010-06-15 11:42 ` Markus Armbruster
2010-06-15 11:59 ` Jan Kiszka
2010-06-15 11:59 ` Jan Kiszka
2010-06-15 13:07 ` Markus Armbruster
2010-06-15 13:07 ` Markus Armbruster
2010-06-15 13:19 ` Paul Brook
2010-06-15 13:19 ` Paul Brook
2010-06-15 13:32 ` Paul Brook
2010-06-15 13:32 ` Paul Brook
2010-06-15 15:08 ` Jan Kiszka
2010-06-15 15:08 ` Jan Kiszka
2010-06-16 13:02 ` Markus Armbruster
2010-06-16 13:02 ` Markus Armbruster
2010-06-14 5:51 ` [RFC PATCH 2/5] savevm: Add DeviceState param Alex Williamson
2010-06-14 5:51 ` [Qemu-devel] " Alex Williamson
2010-06-14 5:51 ` [RFC PATCH 3/5] savevm: Make use of the new " Alex Williamson
2010-06-14 5:51 ` [Qemu-devel] " Alex Williamson
2010-06-14 5:51 ` [RFC PATCH 4/5] eepro100: Add a dev field to eeprom new/free functions Alex Williamson
2010-06-14 5:51 ` [Qemu-devel] " Alex Williamson
2010-06-14 5:51 ` [RFC PATCH 5/5] virtio-net: Incorporate a DeviceState pointer and let savevm track instances Alex Williamson
2010-06-14 5:51 ` [Qemu-devel] " Alex Williamson
2010-06-14 7:02 ` [RFC PATCH 0/5] Introduce canonical device hierarchy string Gerd Hoffmann
2010-06-14 7:02 ` [Qemu-devel] " Gerd Hoffmann
2010-06-14 19:56 ` Alex Williamson
2010-06-14 19:56 ` [Qemu-devel] " Alex Williamson
2010-06-15 8:53 ` Markus Armbruster
2010-06-15 8:53 ` Markus Armbruster
2010-06-15 18:01 ` Alex Williamson
2010-06-15 18:01 ` Alex Williamson
2010-06-16 8:34 ` Markus Armbruster
2010-06-16 8:36 ` Markus Armbruster
2010-06-15 9:12 ` Gerd Hoffmann
2010-06-15 9:12 ` [Qemu-devel] " Gerd Hoffmann
2010-06-15 18:03 ` Alex Williamson
2010-06-15 18:03 ` [Qemu-devel] " Alex Williamson
2010-06-16 9:46 ` RFC qdev path semantics (was: [Qemu-devel] [RFC PATCH 0/5] Introduce canonical device hierarchy string) Markus Armbruster
2010-06-16 9:46 ` Markus Armbruster
2010-06-16 10:40 ` Paul Brook
2010-06-16 10:40 ` Paul Brook
2010-06-16 11:37 ` RFC qdev path semantics Jan Kiszka
2010-06-16 11:37 ` [Qemu-devel] " Jan Kiszka
2010-06-16 11:45 ` Paul Brook
2010-06-16 11:45 ` [Qemu-devel] " Paul Brook
2010-06-16 12:01 ` Jan Kiszka
2010-06-16 12:01 ` [Qemu-devel] " Jan Kiszka
2010-06-16 12:21 ` Paul Brook
2010-06-16 12:21 ` Paul Brook
2010-06-16 13:50 ` Jan Kiszka
2010-06-16 13:50 ` Jan Kiszka
2010-06-16 13:05 ` Markus Armbruster
2010-06-16 13:05 ` [Qemu-devel] " Markus Armbruster
2010-06-16 13:23 ` Paul Brook
2010-06-16 13:23 ` [Qemu-devel] " Paul Brook
2010-06-16 14:31 ` Markus Armbruster
2010-06-16 14:31 ` Markus Armbruster
2010-06-17 21:43 ` Alex Williamson
2010-06-17 21:43 ` [Qemu-devel] " Alex Williamson
2010-06-17 22:01 ` Paul Brook
2010-06-17 22:01 ` [Qemu-devel] " Paul Brook
2010-06-17 22:34 ` Alex Williamson
2010-06-17 22:34 ` [Qemu-devel] " Alex Williamson
2010-06-18 7:52 ` Gerd Hoffmann
2010-06-18 7:52 ` [Qemu-devel] " Gerd Hoffmann
2010-06-18 14:58 ` Markus Armbruster
2010-06-18 14:58 ` [Qemu-devel] " Markus Armbruster
2010-06-22 14:27 ` Anthony Liguori
2010-06-22 14:27 ` [Qemu-devel] " Anthony Liguori
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1276813540.3216.52.camel@x201 \
--to=alex.williamson@redhat.com \
--cc=armbru@redhat.com \
--cc=avi@redhat.com \
--cc=chrisw@redhat.com \
--cc=jan.kiszka@siemens.com \
--cc=kraxel@redhat.com \
--cc=kvm@vger.kernel.org \
--cc=paul@codesourcery.com \
--cc=qemu-devel@nongnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.