qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Kevin Wolf <kwolf@redhat.com>
To: "Andreas Färber" <afaerber@suse.de>
Cc: Paolo Bonzini <pbonzini@redhat.com>,
	qemu-devel@nongnu.org, Anthony Liguori <anthony@codemonkey.ws>,
	Markus Armbruster <armbru@redhat.com>
Subject: Re: [Qemu-devel] [PATCH qom-next 1/7] qdev: Push state up to Object
Date: Mon, 11 Jun 2012 10:25:43 +0200	[thread overview]
Message-ID: <4FD5AB87.2010503@redhat.com> (raw)
In-Reply-To: <4FD4DB9B.8070208@suse.de>

Am 10.06.2012 19:38, schrieb Andreas Färber:
> Am 10.06.2012 17:49, schrieb Paolo Bonzini:
>> Il 08/06/2012 03:19, Anthony Liguori ha scritto:
>>>>
>>>> +typedef enum ObjectState {
>>>> +    OBJECT_STATE_INITIALIZED = 1,
>>>> +    OBJECT_STATE_REALIZED,
>>>> +} ObjectState;
>>>
>>> I think using a bool would be better since it reduces the temptation to
>>> add additional states.
>>
>> In fact someone already discussed having a third state for block
>> devices... :)
> 
> I would expect that file_opened state to remain internal to the block
> layer. Thought we discussed that on IRC?

I think I still don't understand well enough what 'realized' is really
supposed to mean.

Does some magic happen when an object gets realised? From outside,
what's the difference between an INITIALIZED and a REALIZED object? Is
it more or less an implementation detail of the base class or is it
something that affects the object model itself?

I think the file_opened state should have more or less the same status
as the realisation of an object. They are quite similar, so they should
both be an implementation detail of their respective class, or they
should both be baked into the object model.

A comment in this patch says it means that an object is fully
constructed. So if we add a file_opened state in the block layer, in
order to keep this consistent, it would have to be a state that comes
between INITIALIZED and REALIZED.

Where would we have checks, for example whether the image that you
assign to a block device is really opened? Would QOM commands to create
a link only link to already realised objects? Would each single block
device have to check this during its own realisation phase? Would we
check object_is_realized() or rather bdrv_file_is_opened()? If the
latter, it can't be generic monitor code that checks it.

Let's start with this, I'm sure I'll have more questions...

Kevin

  reply	other threads:[~2012-06-11  8:26 UTC|newest]

Thread overview: 32+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-06-07 19:30 [Qemu-devel] [PATCH qom-next 0/7] QOM realize, revised Andreas Färber
2012-06-07 19:30 ` [Qemu-devel] [PATCH qom-next 1/7] qdev: Push state up to Object Andreas Färber
2012-06-08  1:19   ` Anthony Liguori
2012-06-10 15:49     ` Paolo Bonzini
2012-06-10 17:35       ` Anthony Liguori
2012-06-10 17:38       ` Andreas Färber
2012-06-11  8:25         ` Kevin Wolf [this message]
2012-06-11 13:21           ` Anthony Liguori
2012-06-11 14:38             ` Kevin Wolf
2012-06-11 21:31             ` Andreas Färber
2012-06-11 21:43               ` Andreas Färber
2012-06-11 21:48               ` Anthony Liguori
2012-06-12  0:14                 ` Andreas Färber
2012-06-07 19:31 ` [Qemu-devel] [PATCH qom-next 2/7] qom: Add get_id Andreas Färber
2012-06-08  1:22   ` Anthony Liguori
2012-06-08  7:11     ` Andreas Färber
2012-06-08  7:44       ` Anthony Liguori
2012-06-08  8:17         ` Andreas Färber
2012-06-08 10:59           ` [Qemu-devel] [libvirt] " Daniel P. Berrange
2012-06-08 11:58         ` [Qemu-devel] " Eric Blake
2012-06-07 19:31 ` [Qemu-devel] [PATCH qom-next 3/7] qdev: Generalize properties to Objects Andreas Färber
2012-06-08  1:23   ` Anthony Liguori
2012-06-07 19:31 ` [Qemu-devel] [PATCH qom-next 4/7] qdev: Move bulk of qdev-properties.c to qom/object-properties.c Andreas Färber
2012-06-07 23:23   ` Paolo Bonzini
2012-06-08  1:26   ` Anthony Liguori
2012-06-07 19:31 ` [Qemu-devel] [PATCH qom-next 5/7] qom: Push static properties to Object Andreas Färber
2012-06-08  1:26   ` Anthony Liguori
2012-06-07 19:31 ` [Qemu-devel] [PATCH qom-next 6/7] qom: Add "realized" property Andreas Färber
2012-06-08  1:26   ` Anthony Liguori
2012-06-07 19:31 ` [Qemu-devel] [PATCH qom-next 7/7] qom: Add QERR_PROPERTY_SET_AFTER_REALIZE Andreas Färber
2012-06-07 19:56   ` Andreas Färber
2012-06-07 23:22 ` [Qemu-devel] [PATCH qom-next 0/7] QOM realize, revised Paolo Bonzini

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=4FD5AB87.2010503@redhat.com \
    --to=kwolf@redhat.com \
    --cc=afaerber@suse.de \
    --cc=anthony@codemonkey.ws \
    --cc=armbru@redhat.com \
    --cc=pbonzini@redhat.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 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).