From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from [140.186.70.92] (port=54362 helo=eggs.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1OGu0a-0007xI-QP for qemu-devel@nongnu.org; Tue, 25 May 2010 09:17:26 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.69) (envelope-from ) id 1OGu0V-00065q-5p for qemu-devel@nongnu.org; Tue, 25 May 2010 09:17:24 -0400 Received: from mail-gw0-f45.google.com ([74.125.83.45]:59271) by eggs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1OGu0U-00065Z-Vf for qemu-devel@nongnu.org; Tue, 25 May 2010 09:17:19 -0400 Received: by gwb11 with SMTP id 11so29157gwb.4 for ; Tue, 25 May 2010 06:17:18 -0700 (PDT) Message-ID: <4BFBCDD9.4070104@codemonkey.ws> Date: Tue, 25 May 2010 08:17:13 -0500 From: Anthony Liguori MIME-Version: 1.0 Subject: Re: [Qemu-devel] [RFC PATCH 1/1] ceph/rbd block driver for qemu-kvm References: <20100519192222.GD61706@ncolin.muc.de> <4BF5A9D2.5080609@codemonkey.ws> <4BF91937.2070801@redhat.com> <87wrutg4dk.wl%morita.kazutaka@lab.ntt.co.jp> <4BFA5D96.3030603@redhat.com> <4BFA696D.2060606@redhat.com> <4BFAD59E.2010706@codemonkey.ws> <4BFB94D9.5080904@redhat.com> In-Reply-To: <4BFB94D9.5080904@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: Avi Kivity Cc: kvm@vger.kernel.org, qemu-devel@nongnu.org, Blue Swirl , ceph-devel@vger.kernel.org, Christian Brunner , MORITA Kazutaka On 05/25/2010 04:14 AM, Avi Kivity wrote: > On 05/24/2010 10:38 PM, Anthony Liguori wrote: >> >>> - Building a plugin API seems a bit simpler to me, although I'm to >>> sure if I'd get the >>> idea correctly: >>> The block layer has already some kind of api (.bdrv_file_open, >>> .bdrv_read). We >>> could simply compile the block-drivers as shared objects and >>> create a method >>> for loading the necessary modules at runtime. >> >> That approach would be a recipe for disaster. We would have to >> introduce a new, reduced functionality block API that was supported >> for plugins. Otherwise, the only way a plugin could keep up with our >> API changes would be if it was in tree which defeats the purpose of >> having plugins. > > We could guarantee API/ABI stability in a stable branch but not across > releases. We have releases every six months. There would be tons of block plugins that didn't work for random sets of releases. That creates a lot of user confusion and unhappiness. Regards, Anthony Liguori