From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([140.186.70.92]:55257) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1RW7qH-0008KT-6I for qemu-devel@nongnu.org; Thu, 01 Dec 2011 09:42:30 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1RW7qB-0002Xy-30 for qemu-devel@nongnu.org; Thu, 01 Dec 2011 09:42:29 -0500 Received: from e38.co.us.ibm.com ([32.97.110.159]:53866) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1RW7qA-0002Xo-S8 for qemu-devel@nongnu.org; Thu, 01 Dec 2011 09:42:23 -0500 Received: from /spool/local by e38.co.us.ibm.com with IBM ESMTP SMTP Gateway: Authorized Use Only! Violators will be prosecuted for from ; Thu, 1 Dec 2011 07:42:20 -0700 Received: from d03av02.boulder.ibm.com (d03av02.boulder.ibm.com [9.17.195.168]) by d03relay04.boulder.ibm.com (8.13.8/8.13.8/NCO v10.0) with ESMTP id pB1Eg3KX118728 for ; Thu, 1 Dec 2011 07:42:05 -0700 Received: from d03av02.boulder.ibm.com (loopback [127.0.0.1]) by d03av02.boulder.ibm.com (8.14.4/8.13.1/NCO v10.0 AVout) with ESMTP id pB1Eg3AM019821 for ; Thu, 1 Dec 2011 07:42:03 -0700 Message-ID: <4ED79238.9050504@us.ibm.com> Date: Thu, 01 Dec 2011 08:42:00 -0600 From: Anthony Liguori MIME-Version: 1.0 References: <1322687028-29714-1-git-send-email-aliguori@us.ibm.com> <4ED78D33.5040206@redhat.com> In-Reply-To: <4ED78D33.5040206@redhat.com> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [PATCH 00/18] qom: dynamic properties and composition tree List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Avi Kivity Cc: Kevin Wolf , Peter Maydell , Stefan Hajnoczi , Jan Kiszka , qemu-devel@nongnu.org, Markus Armbruster , Luiz Capitulino On 12/01/2011 08:20 AM, Avi Kivity wrote: > On 11/30/2011 11:03 PM, Anthony Liguori wrote: >> This is a follow up to my previous series to get us started in the QOM >> direction. A few things are different this time around. Most notably: >> >> 1) Devices no longer have names. Instead, path names are always used to >> identify devices. >> >> 2) In order to support (1), dynamic properties are now supported. >> >> 3) The concept of a "root device" has been introduced. The root device is >> roughly modelling the motherboard of a machine. This type is a container >> type and it's best to think of it as something like a PCB board I guess. >> >> To try it out, here's an example session: >> >> Launch: >> >> anthony@titi:~/build/qemu$ x86_64-softmmu/qemu-system-x86_64 -hda ~/images/linux.img -snapshot -device virtio-balloon-pci,id=foo -qmp unix:/tmp/server.sock,server,nowait >> >> Explore the object model: >> >> anthony@titi:~/git/qemu/QMP$ ./qom-list / >> peripheral/ >> i440fx/ >> anthony@titi:~/git/qemu/QMP$ ./qom-list /i440fx/ >> piix3/ >> anthony@titi:~/git/qemu/QMP$ ./qom-list /i440fx/piix3 >> rtc/ >> anthony@titi:~/git/qemu/QMP$ ./qom-list /i440fx/piix3/rtc >> date >> base_year >> anthony@titi:~/git/qemu/QMP$ ./qom-get /i440fx/piix3/rtc.date >> tm_sec: 33 >> tm_hour: 21 >> tm_mday: 30 >> tm_year: 111 >> tm_mon: 10 >> tm_min: 2 >> > > So all of these become ABIs, right? At first, no. I marked all of these QMP functions as experimental specifically to avoid introducing a new ABI. I want to give us some time to work out things out a bit more. But yes, this will eventually become an ABI. > > We need good tools to allow easy review of the ABI bits hiding in > patches, and to maintain ABI compatibility. Something like > qemu-print-abi that dumps all properties for all devices. Patches could > show the ABI changes by including a diff of the output of this program > from before and after a change, and we could add similar tests for > backwards compatibility. I'm not sure that we want this interface to be backwards compatible. I actually think we should provide a higher level interface that's explicitly there for compatibility. Probably in the form of a C library that can be documented and reasoned with better. That turns the problem into something that requires less cleverness. Regards, Anthony Liguori >