aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authoraliguori <aliguori@c046a42c-6fe2-441c-8c8c-71466251a162>2008-12-12 16:41:40 +0000
committeraliguori <aliguori@c046a42c-6fe2-441c-8c8c-71466251a162>2008-12-12 16:41:40 +0000
commit3c529d935923a70519557d420db1d5a09a65086a (patch)
tree347898a09209ea707e500da513515a72ae80377e /Makefile
parentPPC405EP: fix fpga write function (diff)
downloadqemu-kvm-3c529d935923a70519557d420db1d5a09a65086a.tar.gz
qemu-kvm-3c529d935923a70519557d420db1d5a09a65086a.tar.bz2
qemu-kvm-3c529d935923a70519557d420db1d5a09a65086a.zip
Replace posix-aio with custom thread pool
glibc implements posix-aio as a thread pool and imposes a number of limitations. 1) it limits one request per-file descriptor. we hack around this by dup()'ing file descriptors which is hideously ugly 2) it's impossible to add new interfaces and we need a vectored read/write operation to properly support a zero-copy API. What has been suggested to me by glibc folks, is to implement whatever new interfaces we want and then it can eventually be proposed for standardization. This requires that we implement our own posix-aio implementation though. This patch implements posix-aio using pthreads. It immediately eliminates the need for fd pooling. It performs at least as well as the current posix-aio code (in some circumstances, even better). Signed-off-by: Anthony Liguori <aliguori@us.ibm.com> git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@5996 c046a42c-6fe2-441c-8c8c-71466251a162
Diffstat (limited to 'Makefile')
-rw-r--r--Makefile3
1 files changed, 3 insertions, 0 deletions
diff --git a/Makefile b/Makefile
index a2a03ec3e..01f012198 100644
--- a/Makefile
+++ b/Makefile
@@ -56,6 +56,9 @@ BLOCK_OBJS+=nbd.o block.o aio.o
ifdef CONFIG_WIN32
BLOCK_OBJS += block-raw-win32.o
else
+ifdef CONFIG_AIO
+BLOCK_OBJS += posix-aio-compat.o
+endif
BLOCK_OBJS += block-raw-posix.o
endif