Skip to content
  • Anthony Liguori's avatar
    Replace posix-aio with custom thread pool · 3c529d93
    Anthony Liguori authored
    
    
    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: default avatarAnthony Liguori <aliguori@us.ibm.com>
    
    
    
    git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@5996 c046a42c-6fe2-441c-8c8c-71466251a162
    3c529d93