I’m using io_submit(…, nr, …) with nr up to 128 but I usually get fewer requests submitted. According to the manual IO_SUBMIT(2), this is legit but I wonder: why? Also, is there a way to know which request was submitted right away – without checking io_getevents()? From the manual: On success, io_submit() returns the number of iocbs submitted (which may
Tag: aio
Why boost::aio is asynchronous when its implementation is based on epoll(synchronous)
We know: (1) epoll is synchronous, based on user query/system notify. A while loop is used to call all woke up fds. (2) boost::asio declares itself to be “asynchronous”, but its implementation on linux is using epoll. My question is: how can you implement “asyn” using a “syn” system call? Unless you use some kernel/system supported aio interface, right? Please
“Linux aio” and “Linux native aio” are the same thing?
I’m recently digging into linux io model, and I frequently hear that like windows IOCP, linux has its own aio model implementation: Glibc aio and kernel aio. Question: (1) when people say “linux native aio”, which model is indicated? (2) I hear 2 different terms, “linux aio” and “linux native aio”. Are they the same thing, or indicating different implementations?