Adding Linux ASYNC I/O to libev

Marc Lehmann schmorp at
Thu Mar 10 10:45:47 CET 2011

On Thu, Mar 10, 2011 at 10:02:28AM +0300, Konstantin Osipov <kostja.osipov at> wrote:
> AFAIU there is now a POSIX implementation in the kernel:

Well, that page says it's nota posix implementation - but that's not really

What's relevant is that that implementation is the one with all the
limitations - what's needed is evidence that these limitations are no longer
in place.

It also still requires signals or polling (a problem common to the
posix model, too), both of which are very slow. An alternative would be
signalfd, but due to it's bad design this lead to so many problems that
libev no longer does it by default.

> That I can't say for sure, but a mere switch to laio on Linux in
> MySQL/InnoDB 5.5 gave a measurable increase in performance.

A switch from synchronous I/O...?

> Asynchronous IO was used in MySQL before, but not on Linux, so
> it's hard to say whether the performance improvement came from the
> switch per se or from laio.

Yeah, it might be even faster with libeio and cpu pinning, who knows.

Sorry to sound so negative, but there are a lot of good arguments against
it, and no evidence in favour of it.

                The choice of a       Deliantra, the free code+content MORPG
      -----==-     _GNU_    
      ----==-- _       generation
      ---==---(_)__  __ ____  __      Marc Lehmann
      --==---/ / _ \/ // /\ \/ /      schmorp at
      -=====/_/_//_/\_,_/ /_/\_\

More information about the libev mailing list