qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [RFC 0/4] QOM class properties - do we need them?


From: Andreas Färber
Subject: Re: [Qemu-devel] [RFC 0/4] QOM class properties - do we need them?
Date: Thu, 29 Sep 2016 12:12:32 +0200
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.3.0

Am 29.09.2016 um 10:14 schrieb Daniel P. Berrange:
> On Thu, Sep 29, 2016 at 10:16:41AM +1000, David Gibson wrote:
>> QOM has the concept of both "object class" properties and "object
>> instance" properties.
>>
>> The accessor functions installed for the rarely-used class properties
>> still take an Object *, so the *value* of such properties is still
>> per-instance; it's just the *existence* (and type) of the property
>> that is per-class.
> 
> Yes, of course. This is the whole point of class properties. It avoids
> allocating the same ObjectProperty struct against every object instance
> which wastes massive amounts of memory in scenarios where there are lots
> of instances created.

+1

>> Of course, that's also true in practice for the great majority of
>> "instance" properties, because they're created identically and
>> unconditionally for every instance from the per-class instance_init
>> hook.
>>
>> This also means that the (unused) object_class_property_add_*_ptr()
>> functions don't make a lot of sense, since they require a fixed
>> pointer which means the value of such a property would only be
>> per-class.
>>
>> Given that, is there really any value to supporting the "class"
>> properties in addition to the "instance" properties?  This series is
>> an RFC which removes all support for class properties, changing the
>> few existing users to instance properties instead.
>>
>> Alternatively, if we *don't* want to remove class properties, should
>> we instead be trying to convert the many, many "instance" properties
>> whose existence is actually per-class to be class properties?
> 
> Practically all instances properties should become class properties
> as its going to save wasting memory once most are converted.

Not all, but most. child<> properties were the reason to have properties
on the instance.

Regards,
Andreas

-- 
SUSE Linux GmbH, Maxfeldstr. 5, 90409 Nürnberg, Germany
GF: Felix Imendörffer, Jane Smithard, Graham Norton
HRB 21284 (AG Nürnberg)



reply via email to

[Prev in Thread] Current Thread [Next in Thread]