On Wed, Jun 28, 2017 at 12:37:04PM -0300, Eduardo Habkost wrote: > On Wed, Jun 28, 2017 at 03:15:44PM +0800, Peter Xu wrote: > > It'll be strange that the migration object inherits TYPE_DEVICE. Add > > some explanations to it. > > > > Signed-off-by: Peter Xu <pet...@redhat.com> > > --- > > migration/migration.c | 8 ++++++++ > > 1 file changed, 8 insertions(+) > > > > diff --git a/migration/migration.c b/migration/migration.c > > index b1b0825..2398a9d 100644 > > --- a/migration/migration.c > > +++ b/migration/migration.c > > @@ -2046,6 +2046,14 @@ static void migration_instance_init(Object *obj) > > > > static const TypeInfo migration_type = { > > .name = TYPE_MIGRATION, > > + /* > > + * NOTE: "migration" itself is not really a device. We used > > I suggest extending this as: > > TYPE_MIGRATION is not really a device, as the object is not created > using qdev_create(), it is not attached to the qdev device tree, and > it is never realized. > > > > + * TYPE_DEVICE here only to leverage some existing QDev features > > + * like "-global" properties, and HW_COMPAT_* fields (which are > > + * finally applied as global properties as well). If one day the > > + * global property feature can be migrated from QDev to QObject in > > + * general, then we can switch to QObject as well. > > + */ > > QOM objects (qom/object.h) are not QObject (qapi/qmp/qobject.h). People > often confuse them with each other. (It probably doesn't help that both > are described as "QEMU Object Model" at their headers.)
Indeed. Sorry I got confused. > > I suggest rewriting it as: > > If one day we allow non-device QOM objects to use the global property > system, we can switch this from TYPE_DEVICE to TYPE_OBJECT." For the comment for this patch (and patch 10 on "properties" and "globals"), I both agree. Again, I'll see what's the best way to fix them. Thanks, -- Peter Xu