All of lore.kernel.org
 help / color / mirror / Atom feed
From: Paolo Bonzini <pbonzini@redhat.com>
To: "Michael S. Tsirkin" <mst@redhat.com>
Cc: "Huangweidong (C)" <weidong.huang@huawei.com>,
	"stefanha@redhat.com" <stefanha@redhat.com>,
	"qemu-devel@nongnu.org" <qemu-devel@nongnu.org>,
	"agraf@suse.de" <agraf@suse.de>,
	"Gonglei (Arei)" <arei.gonglei@huawei.com>,
	"aliguori@amazon.com" <aliguori@amazon.com>,
	"Huangpeng (Peter)" <peter.huangpeng@huawei.com>,
	"lcapitulino@redhat.com" <lcapitulino@redhat.com>
Subject: Re: [Qemu-devel] [PATCH 0/3] Fix confused output for alias properties
Date: Mon, 22 Sep 2014 14:55:17 +0200	[thread overview]
Message-ID: <54201C35.1090502@redhat.com> (raw)
In-Reply-To: <20140922123419.GA7992@redhat.com>

Il 22/09/2014 14:34, Michael S. Tsirkin ha scritto:
> On Mon, Sep 22, 2014 at 02:06:38PM +0200, Paolo Bonzini wrote:
>> Il 22/09/2014 13:22, Gonglei (Arei) ha scritto:
>>>> This doesn't change the fact that ObjectProperty is a generic struct,
>>>> and adding alias-specific fields there is wrong.
>>>
>>> OK, Maybe I should find other ways to attach this purpose and
>>> avoid layering violation. Thanks!
>>
>> Unfortunately I cannot think of any.
>>
>> We could add a description field to ObjectProperty, and replace
>> legacy_name with a description.  The output then would be
>>
>> virtio-blk.drive=str (drive)
>> That's a bit hackish, but perhaps it would be good enough for mst and
>> Markus?
> 
> I would just drop "str" and replace it with drive.

In the above example, the format would be

   CLASS.PROPERTY=TYPE (DESCRIPTION)

where I just put "drive" as the description to resemble the old output.

You cannot just have

   foo.drive=drive

because the type is *not* "drive", it's "str" (if anything, we could
make it link<BlockBackend> which does not really show the connection
between BlockBackend and -drive).

The problem is that "drive" as the type (the legacy_name) is simply not
available for the virtio-blk-pci.drive property.  It's hidden beneath an
opaque pointer.  Gonglei's patches were adding fields to ObjectProperty
just to avoid visiting that opaque pointer, which I consider a layering
violation.

> I seems to convey zero information.
> Description should be something more informative, e.g.
> (ID of a drive to use as a backend)

That would of course be fine too.  The problem is then that we have 644
properties (DEFINE_PROP_* macro invocations) that someone must add a
description to.

> Help for -device could add "Must match ID of a -drive option".
> Help for device HMP command could add "Must match ID of a drive command."

You are turning a bug that nobody noticed until now, and that really
doesn't break anything, into a month or more worth of work.

Paolo

  reply	other threads:[~2014-09-22 12:55 UTC|newest]

Thread overview: 63+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-09-15 14:44 [Qemu-devel] [PATCH 0/3] Fix confused output for alias properties arei.gonglei
2014-09-15 14:44 ` [Qemu-devel] [PATCH 1/3] qom: add error handler for object alias property arei.gonglei
2014-09-15 15:56   ` Paolo Bonzini
2014-09-15 14:44 ` [Qemu-devel] [PATCH 2/3] qom: add target object poniter for alias property in ObjectProperty arei.gonglei
2014-09-15 14:44 ` [Qemu-devel] [PATCH 3/3] qmp: print real legacy_name for alias property arei.gonglei
2014-09-15 17:46   ` Michael S. Tsirkin
2014-09-15 15:57 ` [Qemu-devel] [PATCH 0/3] Fix confused output for alias properties Paolo Bonzini
2014-09-15 17:38   ` Eric Blake
2014-09-15 17:45   ` Michael S. Tsirkin
2014-09-16  7:21     ` Markus Armbruster
2014-09-16  7:53       ` Gonglei (Arei)
2014-09-16  8:36       ` Paolo Bonzini
2014-09-16  9:16         ` Markus Armbruster
2014-09-16  9:34           ` Paolo Bonzini
2014-09-16 10:37             ` Michael S. Tsirkin
2014-09-16 10:45               ` Paolo Bonzini
2014-09-16 13:31                 ` Gonglei (Arei)
2014-09-16 16:26                 ` Michael S. Tsirkin
2014-09-16 16:27                   ` Paolo Bonzini
2014-09-16 16:56                     ` Michael S. Tsirkin
2014-09-16 18:31                       ` Paolo Bonzini
2014-09-16 19:01                         ` Michael S. Tsirkin
2014-09-16 19:01                           ` Michael S. Tsirkin
2014-09-17  6:02                             ` Markus Armbruster
2014-09-16 20:00                         ` Eric Blake
2014-09-17  5:54                           ` Markus Armbruster
2014-09-17 12:58                             ` Eric Blake
2014-09-16 14:32             ` Markus Armbruster
2014-09-16 14:36               ` Paolo Bonzini
2014-09-17  2:31                 ` Gonglei (Arei)
2014-09-22  8:26                 ` Gonglei (Arei)
2014-09-15 17:48 ` Michael S. Tsirkin
2014-09-15 17:49 ` Michael S. Tsirkin
2014-09-16  0:42   ` Gonglei (Arei)
2014-09-16  8:38   ` Paolo Bonzini
2014-09-22  8:34 ` Michael S. Tsirkin
2014-09-22  8:49   ` Gonglei (Arei)
2014-09-22  9:14   ` Paolo Bonzini
2014-09-22  9:33     ` Gonglei (Arei)
2014-09-22 10:03       ` Paolo Bonzini
2014-09-22 11:22         ` Gonglei (Arei)
2014-09-22 12:06           ` Paolo Bonzini
2014-09-22 12:34             ` Michael S. Tsirkin
2014-09-22 12:55               ` Paolo Bonzini [this message]
2014-09-23  3:09                 ` Gonglei (Arei)
2014-09-23  8:39                   ` Paolo Bonzini
2014-09-23  9:13                     ` Markus Armbruster
2014-09-23  9:18                     ` Gonglei (Arei)
2014-09-23  9:06                   ` Markus Armbruster
2014-09-23  9:16                     ` Michael S. Tsirkin
2014-09-23  9:17                     ` Gonglei (Arei)
2014-09-22 12:48             ` Markus Armbruster
2014-09-22 13:13             ` Gonglei (Arei)
2014-09-22 13:24               ` Paolo Bonzini
2014-09-22 13:36                 ` Gonglei (Arei)
2014-09-22 13:40                   ` Paolo Bonzini
2014-09-22 13:45                     ` Gonglei (Arei)
2014-09-22 13:19             ` Gonglei (Arei)
2014-09-22 11:43     ` Markus Armbruster
2014-09-22 13:08       ` Paolo Bonzini
2014-09-23  4:46         ` Michael S. Tsirkin
2014-09-23 11:39         ` Markus Armbruster
2014-09-22  9:29   ` Markus Armbruster

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=54201C35.1090502@redhat.com \
    --to=pbonzini@redhat.com \
    --cc=agraf@suse.de \
    --cc=aliguori@amazon.com \
    --cc=arei.gonglei@huawei.com \
    --cc=lcapitulino@redhat.com \
    --cc=mst@redhat.com \
    --cc=peter.huangpeng@huawei.com \
    --cc=qemu-devel@nongnu.org \
    --cc=stefanha@redhat.com \
    --cc=weidong.huang@huawei.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.