From: Gleb Natapov <gleb@redhat.com>
To: Anthony Liguori <anthony@codemonkey.ws>
Cc: Peter Maydell <peter.maydell@linaro.org>,
Jan Kiszka <jan.kiszka@siemens.com>,
qemu-devel <qemu-devel@nongnu.org>,
Markus Armbruster <armbru@redhat.com>,
Gerd Hoffmann <kraxel@redhat.com>,
"Edgar E. Iglesias" <edgar.iglesias@gmail.com>
Subject: Re: [Qemu-devel] [RFC] Plan for moving forward with QOM
Date: Thu, 15 Sep 2011 17:23:30 +0300 [thread overview]
Message-ID: <20110915142329.GB11524@redhat.com> (raw)
In-Reply-To: <4E71FAD9.1000405@codemonkey.ws>
On Thu, Sep 15, 2011 at 08:17:13AM -0500, Anthony Liguori wrote:
> On 09/15/2011 01:31 AM, Gleb Natapov wrote:
> >On Wed, Sep 14, 2011 at 01:04:00PM -0500, Anthony Liguori wrote:
> >>All device relationships are identified as named properties. A QOM
> >>path name
> >>consists of a named device, followed by a series of properties which
> >>may or may
> >>not refer to other devices. For instance, all of the following are
> >>valid paths:
> >>
> >> /i440fx/piix3/i8042/aux
> >> /i440fx/slot[1.0]/i8042/aux
> >> /i440fx/slot[1.0]/bus/piix3/i8042/aux
> >>
> >Have you looked at device paths generated by get_fw_dev_path() in qdev?
>
> get_fw_dev_path() won't exist in QOM. The fact that it exists in
> qdev is a problem with qdev.
>
I do not need get_fw_dev_path() as such. I need the way to generate OF
device path for a device. I hope you are not saying that the fact that
we generate OF path is the problem of qdev. OF device path is an ABI
between QEMU and a firmware. Firmware can't do much with QOM device
paths.
> >This function generates Open Firmware device path.
>
> The function generates *a* OF device path. OF is not a canonical
> representation of arbitrary hardware. It's a representation chosen
> (usually by a human) of what information about the hardware is
> needed by the OS-level software.
>
Of course it is chosen by human, just like QOM is the representation
chosen by human :) But human made sure that it presents enough information
for OS level software to unambiguously determine a device a path points
too.
> If you look at what other folks have done with OF integration in
> QEMU, you'll see a recurring theme of two OF trees, one used to
> create the hardware and the other that is actually exposed to the
> guest. The reason you need two is because guests sometimes expect
> very specific things that you really can't generate programmatically
> in every circumstance.
>
> >The difference
> >between OF device path and the examples above is that OF device path has
> >a meaning outside of QEMU and can be used by firmware to find a device
> >a path refers too. Will QOM be able to generate them?
>
> All of the information needed to generate an OF tree is available as
> device properties. To the extent that you need to knowledge of each
> bus to generate a OF path component, you'll need some extra
> knowledge of each bus to do that (just like with qdev today). But
> that knowledge will definitely not be part of QOM.
>
With qdev buses are different from devices so it is very clear where to
put that extra knowledge (inside get_fw_dev_path callback of a bus). How
are you going to do that with QOM? As you said in your other email QOM
is a graph, so dumb recursion will not work like it did in qdev. At each
node you need to know which link to take.
> Paths are not part of QOM. They're representations used by client
> software to navigate the QOM graph. There is no real need to make
> paths part of QOM explicitly.
>
I am not saying there is. I just what to make sure that we will not
regress by moving to QOM.
--
Gleb.
next prev parent reply other threads:[~2011-09-15 14:23 UTC|newest]
Thread overview: 88+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-09-14 18:04 [Qemu-devel] [RFC] Plan for moving forward with QOM Anthony Liguori
2011-09-14 18:49 ` Anthony Liguori
2011-09-14 19:30 ` Jan Kiszka
2011-09-14 19:42 ` Anthony Liguori
2011-09-14 21:15 ` Jan Kiszka
2011-09-14 22:11 ` Anthony Liguori
2011-09-15 13:43 ` Jan Kiszka
2011-09-15 14:11 ` Anthony Liguori
2011-09-15 16:38 ` Jan Kiszka
2011-09-15 18:01 ` Anthony Liguori
2011-09-16 10:12 ` Kevin Wolf
2011-09-16 13:00 ` Anthony Liguori
2011-09-14 20:00 ` Edgar E. Iglesias
2011-09-14 20:22 ` Anthony Liguori
2011-09-14 20:27 ` Edgar E. Iglesias
2011-09-14 20:37 ` Blue Swirl
2011-09-14 21:25 ` Anthony Liguori
2011-09-15 6:31 ` Gleb Natapov
2011-09-15 10:49 ` Stefan Hajnoczi
2011-09-15 13:08 ` Anthony Liguori
2011-09-15 13:17 ` Anthony Liguori
2011-09-15 14:23 ` Gleb Natapov [this message]
2011-09-16 14:46 ` John Williams
2011-09-16 16:10 ` Anthony Liguori
2011-09-17 1:11 ` Edgar E. Iglesias
2011-09-17 2:12 ` Anthony Liguori
2011-09-17 2:35 ` Edgar E. Iglesias
2011-09-15 13:57 ` Anthony Liguori
2011-09-15 14:14 ` Paolo Bonzini
2011-09-15 14:25 ` Gleb Natapov
2011-09-15 15:28 ` Anthony Liguori
2011-09-15 15:38 ` Gleb Natapov
2011-09-15 16:33 ` Anthony Liguori
2011-09-15 16:59 ` Gleb Natapov
2011-09-15 17:51 ` Anthony Liguori
2011-09-15 20:29 ` Gleb Natapov
2011-09-15 20:45 ` Peter Maydell
2011-09-15 21:15 ` Anthony Liguori
2011-09-16 16:33 ` Gleb Natapov
2011-09-16 17:47 ` Peter Maydell
2011-09-16 18:08 ` Anthony Liguori
2011-09-16 18:22 ` Gleb Natapov
2011-09-16 18:42 ` Anthony Liguori
2011-09-16 19:13 ` Gleb Natapov
2011-09-16 19:29 ` Anthony Liguori
2011-09-16 20:48 ` Gleb Natapov
2011-09-16 21:03 ` Anthony Liguori
2011-09-17 0:01 ` Edgar E. Iglesias
2011-09-16 18:18 ` Gleb Natapov
2011-09-15 20:50 ` Anthony Liguori
2011-09-16 16:47 ` Gleb Natapov
2011-09-17 0:48 ` Edgar E. Iglesias
2011-09-17 2:17 ` Anthony Liguori
2011-09-17 2:29 ` Anthony Liguori
2011-09-17 2:41 ` Edgar E. Iglesias
2011-09-15 6:47 ` Paolo Bonzini
2011-09-15 13:26 ` Anthony Liguori
2011-09-15 13:35 ` Paolo Bonzini
2011-09-15 13:54 ` Peter Maydell
2011-09-15 14:18 ` Anthony Liguori
2011-09-15 14:33 ` Paolo Bonzini
2011-09-15 14:48 ` Peter Maydell
2011-09-15 15:31 ` Anthony Liguori
2011-09-15 15:47 ` Paolo Bonzini
2011-09-15 20:23 ` Avi Kivity
2011-09-15 20:52 ` Anthony Liguori
2011-09-18 7:56 ` Avi Kivity
2011-09-18 14:00 ` Avi Kivity
2011-09-16 9:36 ` Gerd Hoffmann
2011-12-13 4:47 ` Paul Brook
2011-12-13 13:22 ` Anthony Liguori
2011-12-13 17:40 ` Paul Brook
2011-12-13 18:00 ` Anthony Liguori
2011-12-13 20:36 ` Paul Brook
2011-12-13 21:53 ` Anthony Liguori
2011-12-14 0:39 ` Paul Brook
2011-12-14 13:53 ` Anthony Liguori
2011-12-14 14:01 ` Avi Kivity
2011-12-14 14:11 ` Anthony Liguori
2011-12-14 14:35 ` Avi Kivity
2011-12-14 14:46 ` Anthony Liguori
2011-12-14 14:50 ` Avi Kivity
2011-12-15 18:59 ` Paul Brook
2011-12-15 19:12 ` Anthony Liguori
2011-12-15 21:28 ` Paul Brook
2011-12-16 2:08 ` Anthony Liguori
2011-12-16 5:11 ` Paul Brook
2011-12-14 9:11 ` Andreas Färber
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=20110915142329.GB11524@redhat.com \
--to=gleb@redhat.com \
--cc=anthony@codemonkey.ws \
--cc=armbru@redhat.com \
--cc=edgar.iglesias@gmail.com \
--cc=jan.kiszka@siemens.com \
--cc=kraxel@redhat.com \
--cc=peter.maydell@linaro.org \
--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.