|
From: | Anthony Liguori |
Subject: | Re: [Qemu-devel] [RFC 1/2] pci-dma-api-v1 |
Date: | Sun, 30 Nov 2008 16:31:05 -0600 |
User-agent: | Thunderbird 2.0.0.17 (X11/20080925) |
Jamie Lokier wrote:
Blue Swirl wrote:I wonder how can possibly aio_readv/writev be missing in posix aio? Unbelievable. It'd be totally trivial to add those to glibc, much easier infact than to pthread_create by hand, but how can we add a dependency on a certain glibc version? Ironically it'll be more user-friendly to add dependency on linux kernel-aio implementation that is already available for ages and it's guaranteed to run faster (or at least not slower).There's also lio_listio that provides for vectored AIO.I think lio_listio is the missing aio_readv/writev. It's more versatile, and that'll by why POSIX never bothered with aio_readv/writev.
No. lio_listio is a batch submission mechanism, not an operation.Each request maintains the same behavior as if they were submitted independently. This means if you're doing a write operation and you submit a vectored request via lio_listio, each portion of the vector has to complete before the other one.
But most importantly, pthreads doesn't use readv/writev to implement lio_listio as has been mentioned elsewhere.
Regards, Anthony Liguori
Doesn't explain why they didn't _start_ with aio_readv before inventing lio_listio, but there you go. Unix history. -- Jamie
[Prev in Thread] | Current Thread | [Next in Thread] |