From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1MK9Oa-0005qT-IG for qemu-devel@nongnu.org; Fri, 26 Jun 2009 07:15:05 -0400 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1MK9OR-0005n3-GL for qemu-devel@nongnu.org; Fri, 26 Jun 2009 07:15:00 -0400 Received: from [199.232.76.173] (port=41082 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1MK9OP-0005m7-9W for qemu-devel@nongnu.org; Fri, 26 Jun 2009 07:14:53 -0400 Received: from mx2.redhat.com ([66.187.237.31]:45729) by monty-python.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1MK9OO-0004Bb-Q2 for qemu-devel@nongnu.org; Fri, 26 Jun 2009 07:14:53 -0400 Message-ID: <4A44ADB4.8040101@redhat.com> Date: Fri, 26 Jun 2009 14:15:00 +0300 From: Avi Kivity MIME-Version: 1.0 Subject: Re: [Qemu-devel] Re: [PATCH 08/11] QMP: Port balloon command References: <20090623012933.5b217767@doriath> <4A40A386.7020102@redhat.com> <4A40DFCE.5050008@codemonkey.ws> <20090623135958.660903e1@doriath> <4A412135.2060804@us.ibm.com> <4A435F09.7050702@redhat.com> <20090625161143.01b56eea@doriath> <4A4492FD.4040704@redhat.com> <20090626094224.GE28206@redhat.com> In-Reply-To: <20090626094224.GE28206@redhat.com> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: "Daniel P. Berrange" Cc: Anthony Liguori , ehabkost@redhat.com, jan.kiszka@siemens.com, dlaor@redhat.com, qemu-devel@nongnu.org, Luiz Capitulino On 06/26/2009 12:42 PM, Daniel P. Berrange wrote: > On Fri, Jun 26, 2009 at 12:21:01PM +0300, Avi Kivity wrote: > >> On 06/25/2009 10:11 PM, Luiz Capitulino wrote: >> >>> Yes, having a library was suggested by Amit some months ago. The >>> problem is that it has various issues wrt maintainability. >>> >>> For example, libvirt is able to run two instances of different >>> versions of qemu at the same time. How to handle this if you >>> update libmonitor.so? >>> >>> > > The sane way is to *NOT* break ABI of libmonitor.so, and not change > the wire protocol in a non backwards compatible way. This is entirely > doable, it just the maintainer of libmonitor/qemu to decide that ABI > stability is important. So if you find an existing API / command > needs to gain an extra argument, you don't change the existing API, > you add a new one. Or ideally design the API upfront so that it > can be extended without breaking back compatability. > > Yeah. >> You could use dlopen(). The problem with a library is that it assumes >> everyone is still trapped in C, which is not the case. >> > > dlopen() of a different libmonitor.so for every version of QEMU is just > crazy, whether C or not. Maintain ABI& protocol back compatability > with new releases and avoid the issue in the first place. > Right, I just like dlopen(). -- I have a truly marvellous patch that fixes the bug which this signature is too narrow to contain.