All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Andreas Färber" <afaerber@suse.de>
To: Stefan Hajnoczi <stefanha@gmail.com>
Cc: Paolo Bonzini <pbonzini@redhat.com>,
	Peter Crosthwaite <peter.crosthwaite@xilinx.com>,
	qemu-devel <qemu-devel@nongnu.org>,
	Stefan Hajnoczi <stefanha@redhat.com>,
	Frederic Konrad <fred.konrad@greensocs.com>
Subject: Re: [Qemu-devel] [PATCH 4/7] virtio-blk: use aliases instead of duplicate qdev properties
Date: Thu, 22 May 2014 12:32:58 +0200	[thread overview]
Message-ID: <537DD25A.9080506@suse.de> (raw)
In-Reply-To: <CAJSP0QU6eRn2YqP=xumwNbxyaAW4uauwe3VOtNqx9Y=nzySf3w@mail.gmail.com>

Am 22.05.2014 12:24, schrieb Stefan Hajnoczi:
> On Thu, May 22, 2014 at 12:18 PM, Andreas Färber <afaerber@suse.de> wrote:
>> Am 22.05.2014 00:04, schrieb Paolo Bonzini:
>>> Il 21/05/2014 22:22, Stefan Hajnoczi ha scritto:
>>>> virtio-blk-pci, virtio-blk-s390, and virtio-blk-ccw all duplicate the
>>>> qdev properties of their VirtIOBlock child.  This approach does not work
>>>> well with string or pointer properties since we must be careful about
>>>> leaking or double-freeing them.
>>>>
>>>> Use the QOM alias property to forward property accesses to the
>>>> VirtIOBlock child.  This way no duplication is necessary.
>>>>
>>>> Remember to stop calling virtio_blk_set_conf() so that we don't clobber
>>>> the values already set on the VirtIOBlock instance.
>>>
>>> Which properties are _not_ being added?  This is probably needed for all
>>> other virtio devices so a generic solution would be nice.
>>
>> "type", "realized" and the child<> property for VirtIODevice come to
>> mind, possibly one or two more.
>>
>> If we follow a generic scheme, we could add an .instance_post_init hook
>> for VirtIOPCIProxy iterating over all properties and blacklisting some.
> 
> I think the trick is to alias all the qdev properties, not the QOM
> ones.  That way we get all the explicitly declared properties and none
> of the implicit ones.

I wouldn't oppose that, but you then need to iterate over parent classes
until you hit VirtioDeviceClass (or DeviceClass?), to avoid properties
falling through the cracks.

I just figured it easier and in line with your QMP patch to avoid
distinguishing them in new code. But a quick solution is more important
than futureproofness here, so I'll take or ack whatever works here.

Andreas

-- 
SUSE LINUX Products GmbH, Maxfeldstr. 5, 90409 Nürnberg, Germany
GF: Jeff Hawn, Jennifer Guild, Felix Imendörffer; HRB 16746 AG Nürnberg

  reply	other threads:[~2014-05-22 10:33 UTC|newest]

Thread overview: 24+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-05-21 20:22 [Qemu-devel] [PATCH 0/7] virtio-blk: use alias properties in transport devices Stefan Hajnoczi
2014-05-21 20:22 ` [Qemu-devel] [PATCH 1/7] qom: add object_property_add_alias() Stefan Hajnoczi
2014-05-21 22:05   ` Paolo Bonzini
2014-05-22 10:23     ` Stefan Hajnoczi
2014-05-22 11:16       ` Paolo Bonzini
2014-05-22 14:02   ` Peter Crosthwaite
2014-05-22 14:05     ` Andreas Färber
2014-05-22 14:38     ` Stefan Hajnoczi
2014-05-23  6:23       ` Peter Crosthwaite
2014-05-22 14:05   ` Igor Mammedov
2014-05-22 14:39     ` Stefan Hajnoczi
2014-05-21 20:22 ` [Qemu-devel] [PATCH 2/7] virtio-blk: avoid qdev property definition duplication Stefan Hajnoczi
2014-05-21 20:22 ` [Qemu-devel] [PATCH 3/7] virtio-blk: move x-data-plane qdev property to virtio-blk.h Stefan Hajnoczi
2014-05-21 20:22 ` [Qemu-devel] [PATCH 4/7] virtio-blk: use aliases instead of duplicate qdev properties Stefan Hajnoczi
2014-05-21 22:04   ` Paolo Bonzini
2014-05-22 10:17     ` Stefan Hajnoczi
2014-05-22 11:15       ` Paolo Bonzini
2014-05-22 10:18     ` Andreas Färber
2014-05-22 10:24       ` Stefan Hajnoczi
2014-05-22 10:32         ` Andreas Färber [this message]
2014-05-22 14:08           ` Peter Crosthwaite
2014-05-21 20:22 ` [Qemu-devel] [PATCH 5/7] virtio-blk: drop virtio_blk_set_conf() Stefan Hajnoczi
2014-05-21 20:22 ` [Qemu-devel] [PATCH 6/7] virtio: fix virtio-blk child refcount in transports Stefan Hajnoczi
2014-05-21 20:22 ` [Qemu-devel] [PATCH 7/7] virtio-blk: move qdev properties into virtio-blk.c Stefan Hajnoczi

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=537DD25A.9080506@suse.de \
    --to=afaerber@suse.de \
    --cc=fred.konrad@greensocs.com \
    --cc=pbonzini@redhat.com \
    --cc=peter.crosthwaite@xilinx.com \
    --cc=qemu-devel@nongnu.org \
    --cc=stefanha@gmail.com \
    --cc=stefanha@redhat.com \
    /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.