|Subject:||Re: [Qemu-devel] [PATCH 5/7] xen: add block device backend driver.|
|Date:||Mon, 04 Aug 2008 12:46:14 -0500|
|User-agent:||Thunderbird 18.104.22.168 (X11/20080501)|
Blue Swirl wrote:
On 8/4/08, Gerd Hoffmann <address@hidden> wrote:+/* i386 protocol version */ +#pragma pack(push, 4)What's wrong with __attribute__(__aligned__)?+ * FIXME: the code is designed to handle multiple outstanding + * requests (using aio or using threads), which isn't used right + * now due to limitations of the qemu block driver interface.Yes, what happened to vectored DMA patches?
Believe it or not, they were hurting performance in KVM. Passing a vector to the block layer will force the IO operation to be split up into multiple requests that are all executed in serial (since QEMU only supports 1 outstanding request at a time). Copying the vectored IO to a linear buffer increased performance significantly because it avoided this serialization.
The block layer needs some refactoring to support proper vectored AIO operations before a zero-copy API will make sense from a performance perspective.
Regards, Anthony Liguori
|[Prev in Thread]||Current Thread||[Next in Thread]|