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>,
Paolo Bonzini <pbonzini@redhat.com>
Subject: Re: [Qemu-devel] [RFC] Plan for moving forward with QOM
Date: Fri, 16 Sep 2011 23:48:08 +0300 [thread overview]
Message-ID: <20110916204808.GF11160@redhat.com> (raw)
In-Reply-To: <4E73A3AF.3030507@codemonkey.ws>
On Fri, Sep 16, 2011 at 02:29:51PM -0500, Anthony Liguori wrote:
> On 09/16/2011 02:13 PM, Gleb Natapov wrote:
> >On Fri, Sep 16, 2011 at 01:42:02PM -0500, Anthony Liguori wrote:
> >>On 09/16/2011 01:22 PM, Gleb Natapov wrote:
> >>>Then we are arguing about minor detail. But according to you this minor
> >>>detail will prevent us from walking device tree up to the root, so it is
> >>>not so minor for me.
> >>
> >>There is no root. It's not a tree. The composition tree (which
> >There is "virtual root". System bus in qdev speak. You can create one
> >explicitly like qdev did or you can say that if a device has no parent
> >it is on a system bus.
>
> Graphs don't have roots.
>
Lets not pretend that this device graph is absolutely arbitrary.
> >>we've been talking about using for canonical pathnames) has nothing
> >>to do with the buses.
> >>
> >
> >I do not care about canonical pathnames you are talking about too
> >much. The reason is that they are useless outside of QEMU. The problem
> >we need to solve is to name a device in such a way that it can be found
> >without knowing any QEMU implementation details. This is not for internal
> >QEMU use (for that you can use canonical pathnames you are talking about),
> >but for communicating device location outside of QEMU. Currently we pass
> >OF device paths to firmware and this is ABI QEMU expose to a guest, so
> >QOM needs to preserve it. What I asked is how it can be done with QOM and
> >you are saying that it can't be done and this is not a very good answer.
>
> No, it's very easy. Something just has to decide where to start the
> transversal, and then walk the graph starting at that node until
> they find the node. They need to map each node to whatever the OF
> representation is that makes sense.
>
That is obvious thing to do, but you said not all devices have a link to
a parent node which will make such traversal impossible. Another thing
is that graph needs to contain enough information (nodes) to create
correct path. If a bus is omitted resulting path will not be accurate.
> A tree is just a degenerate graph so going from QOM to OF is easy.
> It just requires looking at a subset.
>
> >ABI requires OF path to be built not for all QEMU devices, but only for
> >those that support bootindex property, so this may make our task more
> >simple, although I think the correct solution should be generic.
>
> To be fair, it's not an ABI that is supported. We only need to
> support a single BIOS version that we provide.
Yes, but how is this help us here? We will still have to provide some
device identification, that is independent from QEMU internals, to
a firmware. We chose to use OF because it is established standard and
using something different will be NIH. Seabios is not the only QEMU's
firmware and Seabios is used not only with QEMU (and coreboot is/will be
able to pass bootorder to Seabios the same way QEMU does). So inventing
QEMU specific format, that will have to contain all the same information
about device as OF path anyway, is just spreading NIH around.
>
> But that's just splitting hairs. You can still generate these paths.
>
> Regards,
>
> Anthony Liguori
--
Gleb.
next prev parent reply other threads:[~2011-09-16 20:48 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
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 [this message]
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=20110916204808.GF11160@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=pbonzini@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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).