summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFrediano Ziglio <freddy77@gmail.com>2011-08-30 09:46:11 +0200
committerKevin Wolf <kwolf@redhat.com>2011-09-06 11:23:51 +0200
commitc30e624d5d04efdb581c841f9bf8b06302b96575 (patch)
treec8d52ebaac8687324a86a368a2076623f5ee7fc4
parentf69539b14bdba7a5cd22e1f4bed439b476b17286 (diff)
downloadqemu-c30e624d5d04efdb581c841f9bf8b06302b96575.tar.gz
linux aio: some comments
Add some notes about Linux AIO explaining why we don't use AIO in some situations. Signed-off-by: Frediano Ziglio <freddy77@gmail.com> Signed-off-by: Kevin Wolf <kwolf@redhat.com>
-rw-r--r--block/raw-posix.c4
-rw-r--r--linux-aio.c1
2 files changed, 5 insertions, 0 deletions
diff --git a/block/raw-posix.c b/block/raw-posix.c
index c5c99446c0..bcf50b2cf7 100644
--- a/block/raw-posix.c
+++ b/block/raw-posix.c
@@ -236,6 +236,10 @@ static int raw_open_common(BlockDriverState *bs, const char *filename,
}
#ifdef CONFIG_LINUX_AIO
+ /*
+ * Currently Linux do AIO only for files opened with O_DIRECT
+ * specified so check NOCACHE flag too
+ */
if ((bdrv_flags & (BDRV_O_NOCACHE|BDRV_O_NATIVE_AIO)) ==
(BDRV_O_NOCACHE|BDRV_O_NATIVE_AIO)) {
diff --git a/linux-aio.c b/linux-aio.c
index 5fd39327b3..5265a029b2 100644
--- a/linux-aio.c
+++ b/linux-aio.c
@@ -181,6 +181,7 @@ BlockDriverAIOCB *laio_submit(BlockDriverState *bs, void *aio_ctx, int fd,
case QEMU_AIO_READ:
io_prep_preadv(iocbs, fd, qiov->iov, qiov->niov, offset);
break;
+ /* Currently Linux kernel does not support other operations */
default:
fprintf(stderr, "%s: invalid AIO request type 0x%x.\n",
__func__, type);