Messages in this thread | | | Date | Wed, 10 Mar 2010 18:09:44 +0100 | From | M vd S <> | Subject | Re: O_NONBLOCK is NOOP on block devices |
| |
On 3/10/10 2:21 PM, Jeff Moyer wrote: > M vd S <mvds.00@gmail.com> writes: > >> I also briefly tried aio_* and the libaio interface. The former is not >> really asynchronous - all requests are put in one separate thread >> where they will be executed in order, i.e. blocking, so you don't get >> any advantage from NCQ or data that was cached by the disk or the >> kernel. The latter apparently ends in an io_submit() which will block >> until all queued reads are finished, but I might have missed something >> there. >> > > What you missed is that the native aio system calls require O_DIRECT. >
Thanks, that made it work. It seems without O_DIRECT it's just like aio_* but without the separate thread. But I now get the "benefits" of O_DIRECT for free...
Cheers, M.
| |