|
From: | Anthony Liguori |
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 2.0.0.14 (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] |