From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:51408) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bpWUA-0007AS-5M for qemu-devel@nongnu.org; Thu, 29 Sep 2016 04:14:31 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1bpWU4-00017m-GG for qemu-devel@nongnu.org; Thu, 29 Sep 2016 04:14:29 -0400 Received: from mx1.redhat.com ([209.132.183.28]:46376) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bpWU4-00017d-9e for qemu-devel@nongnu.org; Thu, 29 Sep 2016 04:14:24 -0400 Date: Thu, 29 Sep 2016 09:14:16 +0100 From: "Daniel P. Berrange" Message-ID: <20160929081416.GD5312@redhat.com> Reply-To: "Daniel P. Berrange" References: <1475108205-6043-1-git-send-email-david@gibson.dropbear.id.au> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline In-Reply-To: <1475108205-6043-1-git-send-email-david@gibson.dropbear.id.au> Subject: Re: [Qemu-devel] [RFC 0/4] QOM class properties - do we need them? List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: David Gibson Cc: afaerber@suse.de, peter.maydell@linaro.org, qemu-devel@nongnu.org, pbonzini@redhat.com, armbru@redhat.com, lcapitulino@redhat.com 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. > 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. Regards, Daniel -- |: http://berrange.com -o- http://www.flickr.com/photos/dberrange/ :| |: http://libvirt.org -o- http://virt-manager.org :| |: http://entangle-photo.org -o- http://search.cpan.org/~danberr/ :|