From mboxrd@z Thu Jan 1 00:00:00 1970 From: Anthony Liguori Subject: Re: [Qemu-devel] [RFC PATCH 1/1] ceph/rbd block driver for qemu-kvm Date: Mon, 24 May 2010 14:19:34 -0500 Message-ID: <4BFAD146.9090708@codemonkey.ws> References: <20100519192222.GD61706@ncolin.muc.de> <4BF5A9D2.5080609@codemonkey.ws> <4BF91937.2070801@redhat.com> <4BFA5D07.8030309@redhat.com> Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Return-path: Received: from mail-pz0-f185.google.com ([209.85.222.185]:44464 "EHLO mail-pz0-f185.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1756790Ab0EXTTk (ORCPT ); Mon, 24 May 2010 15:19:40 -0400 In-Reply-To: <4BFA5D07.8030309@redhat.com> Sender: ceph-devel-owner@vger.kernel.org List-ID: To: Avi Kivity Cc: Stefan Hajnoczi , Christian Brunner , Blue Swirl , kvm@vger.kernel.org, qemu-devel@nongnu.org, ceph-devel@vger.kernel.org On 05/24/2010 06:03 AM, Avi Kivity wrote: > On 05/24/2010 11:27 AM, Stefan Hajnoczi wrote: >> On Sun, May 23, 2010 at 1:01 PM, Avi Kivity wrote: >>> On 05/21/2010 12:29 AM, Anthony Liguori wrote: >>>> I'd be more interested in enabling people to build these types of >>>> storage >>>> systems without touching qemu. >>>> >>>> Both sheepdog and ceph ultimately transmit I/O over a socket to a >>>> central >>>> daemon, right? >>> That incurs an extra copy. >> Besides a shared memory approach, I wonder if the splice() family of >> syscalls could be used to send/receive data through a storage daemon >> without the daemon looking at or copying the data? > > Excellent idea. splice() eventually requires a copy. You cannot splice() to linux-aio so you'd have to splice() to a temporary buffer and then call into linux-aio. With shared memory, you can avoid ever bringing the data into memory via O_DIRECT and linux-aio. Regards, Anthony Liguori From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from [140.186.70.92] (port=45123 helo=eggs.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1OGdBj-0006i9-96 for qemu-devel@nongnu.org; Mon, 24 May 2010 15:19:52 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.69) (envelope-from ) id 1OGdBb-0000BT-Pb for qemu-devel@nongnu.org; Mon, 24 May 2010 15:19:45 -0400 Received: from mail-pv0-f173.google.com ([74.125.83.173]:47723) by eggs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1OGdBb-0000BP-KZ for qemu-devel@nongnu.org; Mon, 24 May 2010 15:19:39 -0400 Received: by pvg16 with SMTP id 16so122976pvg.4 for ; Mon, 24 May 2010 12:19:38 -0700 (PDT) Message-ID: <4BFAD146.9090708@codemonkey.ws> Date: Mon, 24 May 2010 14:19:34 -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> <4BFA5D07.8030309@redhat.com> In-Reply-To: <4BFA5D07.8030309@redhat.com> Content-Type: text/plain; charset=UTF-8; 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, Stefan Hajnoczi , qemu-devel@nongnu.org, Blue Swirl , ceph-devel@vger.kernel.org, Christian Brunner On 05/24/2010 06:03 AM, Avi Kivity wrote: > On 05/24/2010 11:27 AM, Stefan Hajnoczi wrote: >> On Sun, May 23, 2010 at 1:01 PM, Avi Kivity wrote: >>> On 05/21/2010 12:29 AM, Anthony Liguori wrote: >>>> I'd be more interested in enabling people to build these types of >>>> storage >>>> systems without touching qemu. >>>> >>>> Both sheepdog and ceph ultimately transmit I/O over a socket to a >>>> central >>>> daemon, right? >>> That incurs an extra copy. >> Besides a shared memory approach, I wonder if the splice() family of >> syscalls could be used to send/receive data through a storage daemon >> without the daemon looking at or copying the data? > > Excellent idea. splice() eventually requires a copy. You cannot splice() to linux-aio so you'd have to splice() to a temporary buffer and then call into linux-aio. With shared memory, you can avoid ever bringing the data into memory via O_DIRECT and linux-aio. Regards, Anthony Liguori