|
From: | Avi Kivity |
Subject: | Re: [Qemu-devel] [PATCH 6/7] qed: Read/write support |
Date: | Mon, 27 Sep 2010 12:12:01 +0200 |
User-agent: | Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2.9) Gecko/20100921 Fedora/3.1.4-1.fc13 Lightning/1.0b3pre Thunderbird/3.1.4 |
On 09/23/2010 05:41 PM, Stefan Hajnoczi wrote:
This patch implements the read/write state machine. Operations are fully asynchronous and multiple operations may be active at any time. Allocating writes are serialized to make metadata updates consistent. For example, two write requests to the same unallocated cluster should only allocate the new cluster once and then update it, rather than racing to allocate the cluster twice and losing on of the writes. This scheme can be made more fine-grained in the future so that independent metadata updates can be active at the same time.
A comment re prefill-postfill - it seems to generate excessive I/O, for example an allocating write into the middle of a cluster will generate two reads (if a backing file exists) and three writes. It would be simpler and more efficient to read the backing cluster, splice in the guest iovec, and issue a single write. That is one read and two writes fewer.
(assuming I read the code right) -- error compiling committee.c: too many arguments to function
[Prev in Thread] | Current Thread | [Next in Thread] |