Gerd Hoffmann wrote:
Hi,
BTW, if everyone thinks it could be a good idea I can port block-raw.c
to use linux kernel AIO (without removing POSIX AIO support, of course)
IMHO it would be a much better idea to kill the aio interface altogether
and instead make the block drivers reentrant. Then you can use
(multiple) posix threads to run the I/O async if you want.
Threads are a poor substitute for a proper AIO interface. linux-aio
gives you everything you could possibly want in an interface since it
allows you to submit multiple vectored operations in a single syscall,
use an fd to signal request completion, complete multiple requests in a
single syscall, and inject barriers via fdsync.
Regards,
Anthony Liguori
cheers,
Gerd