All of lore.kernel.org
 help / color / mirror / Atom feed
From: Anthony Liguori <aliguori@us.ibm.com>
To: "Edgar E. Iglesias" <edgar.iglesias@gmail.com>
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>
Subject: Re: [Qemu-devel] [RFC] Plan for moving forward with QOM
Date: Wed, 14 Sep 2011 15:22:29 -0500	[thread overview]
Message-ID: <4E710D05.6030008@us.ibm.com> (raw)
In-Reply-To: <20110914200009.GB17136@zapo>

On 09/14/2011 03:00 PM, Edgar E. Iglesias wrote:
> On Wed, Sep 14, 2011 at 01:04:00PM -0500, Anthony Liguori wrote:
>> Hi,
>>
>> I spent a couple hours today writing up some comparisons and an
>> initial task list for converting qdev to QOM.  The main location of
>> this is the wiki[1] but I thought I would inline it here for easier
>> commenting.
>>
>> I decided to do this because I wanted to avoid a massively long 00
>> patch explaining the rationale for the first batch of changes that
>> I'm going to send out.
>>
>> There is so much complexity in qdev and the device model in general
>> that it's hard to come up with a concise document.  I'd really
>> appreciate suggestions for topics to write up more rationale as that
>> would help me avoid writing a book on the topic :-)
>
> Thanks Anthony,
>
> I'd appreciate if you could elaborate more on the backlinks. Also,
> tiny code examples would help. Maybe you've got a git repo with
> more code to link to?

Message-Id: <1311558293-5855-1-git-send-email-aliguori@us.ibm.com>

Or

http://repo.or.cz/w/qemu/aliguori.git/shortlog/refs/heads/qom

>
> Regarding the composition, a problem I face (which I mostly just
> hack my way around) is that inter device connections may exist
> at various layers at the same time. For example, a device that is
> burried under a couple of busses/bridges may somehow be tighly
> connected to another device at a very different location in
> the bus hierarchy by means of another overlayed interconnect (e.g
> data channels, timing generation, IRQs etc). Maybe you could
> clarify a bit more on how QOM handles these topics.

Links are meant to handle this.  You can have something like:

+ PlatformDevice1
+ PlatformDevice2
+ PciBus
   |
   +- PciDevice1
   +- PciDevice2
      |
      + I2CBus
        |
        +- I2CDevice1
           |- pd2: link<PlatformDevice2>

So you have I2CDevice that sites behind multiple levels of hierarchy, but has a 
direct relationship (via a link) to a platform device much higher in the 
hierarchy.  This is an simple demonstration of how you can create a graph in QOM.

qdev doesn't allow graphs in the object model which is the problem that you're 
having today.  That's because its a tree with alternating levels.  The top level 
is always a bus, the next level is always devices, the next level are always 
busses, etc.

With QOM, there are only devices, and devices can link to 0 or more other devices.

Regards,

Anthony Liguori


>
> Cheers

  reply	other threads:[~2011-09-14 20:22 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 [this message]
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
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=4E710D05.6030008@us.ibm.com \
    --to=aliguori@us.ibm.com \
    --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.