qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [RFC] Plan for moving forward with QOM


From: Gleb Natapov
Subject: Re: [Qemu-devel] [RFC] Plan for moving forward with QOM
Date: Thu, 15 Sep 2011 17:23:30 +0300

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.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]