qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [RFC] Replace posix-aio with custom thread pool


From: Anthony Liguori
Subject: Re: [Qemu-devel] [RFC] Replace posix-aio with custom thread pool
Date: Thu, 11 Dec 2008 10:41:11 -0600
User-agent: Thunderbird 2.0.0.17 (X11/20080925)

Gerd Hoffmann wrote:
Andrea Arcangeli wrote:
My current feeling is that this user thread aio thing will never
satisfy enterprise usage and kernel aio is mandatory in my view.

Well, linux kernel aio has its share of problems too:

  * Anthony mentioned it may block on certain circumstances (forgot
    which ones), and you can't figure beforehand to turn off aio then.

  * It can't handle block allocation.  Kernel handles that by doing
    such writes synchronously via VFS layer (instead of the separate
    aio code paths).  Leads to horrible performance and bug reports
    such as "installs on sparse files are very slow".

  * support for vectored aio isn't that old.  IIRC it was added
    somewhen around 2.6.20 (newer that current suse/redhat enterprise
    versions).  Which IMHO means you can't expect it being present
    unconditionally.

And we should concentrate on kernel aio and get rid
of threads when host OS is linux.

Threads will be there anyway for kvm smp.

Has anybody a patch implementing kernel aio that I can plug into the
dma zerocopy api? I'm not so sure clone aio is worth maintaining
inside qemu instead of evolving glibc

Well, wait for glibc isn't going to fly.  glibc waits for posix, and
posix waits for a reference implementation (which will not be glibc).

and kernel with preadv/pwritev

With that in place you don't need kernel aio any more, then you can
really do it in userspace with threads.  But that probably would be
linux-only  ^W^W^W

linux-only is okay but we just need a relatively sane fall back. There have been preadv/pwritev patches posted before, they just for some reason never were merged.

http://lwn.net/Articles/163603/

ahem: http://www.daemon-systems.org/man/preadv.2.html

Yeah, dunno if that's all BSDs or just NetBSD.

Regards,

Anthony Liguori

cheers,
  Gerd





reply via email to

[Prev in Thread] Current Thread [Next in Thread]