On Wed, Aug 3, 2011 at 6:19 AM, Gui Jianfeng <guijianf...@cn.fujitsu.com> wrote:
> When i did some io tests in Guest say dd like
> dd if=/dev/zero oflag=direct of=/mnt/sdb1/date.img bs=4k count=262114
>
> qemu will start one or several threads to perform IO requests.
>
> It seems qemu makes use of its own posixaio. I'm wondering how qemu
> decides how many threads should be created to perform io operation?

Look at posix-aio-compat.c.

If a new request comes in and there is no idle thread around, a new
thread will be spawned up to a maximum limit.

When you run a synchronous I/O workload like dd(1), expect to see only
1 or 2 aio worker threads.  If the workload is multithreaded, expect
to see many (depending on the guest's queue depth).

Stefan

Reply via email to