|
From: | Avi Kivity |
Subject: | Re: [Qemu-devel] [RFC PATCH 1/1] ceph/rbd block driver for qemu-kvm |
Date: | Tue, 25 May 2010 12:22:14 +0300 |
User-agent: | Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.1.9) Gecko/20100330 Fedora/3.0.4-1.fc12 Thunderbird/3.0.4 |
On 05/24/2010 10:19 PM, Anthony Liguori wrote:
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<address@hidden> wrote:On 05/21/2010 12:29 AM, Anthony Liguori wrote:I'd be more interested in enabling people to build these types of storagesystems without touching qemu.Both sheepdog and ceph ultimately transmit I/O over a socket to a centraldaemon, 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.
If the final destination is a socket, then you end up queuing guest memory as an skbuff. In theory we could do an aio splice to block devices but I don't think that's realistic given our experience with aio changes.
-- error compiling committee.c: too many arguments to function
[Prev in Thread] | Current Thread | [Next in Thread] |