Hi Stefan, Thanks for the explanation. :)
> > Qemu 1.0 enable IO thread by default, I think that's why you can see > > there are > > two threads. You can check block/raw-posix-aio.h, posix-aio-compat.c and > > linux-aio.c. > > --enable-io-thread is different from posix-aio-compat.c's thread pool. The option "--enable-io-thread" should have been gone sine QEMU 1.0, right? Or you just use the term to mean IO thread? > --enable-io-thread means there is a dedicated thread (created at > startup) which runs the event loop. I want to know where IO thread is lauched but I am lost in vl.c. Would you mind to shed some light on that? > The temporary threads you are seeing are indeed posix-aio-compat.c > worker threads. They execute blocking I/O system calls so that the QEMU > event loop can continue to process events while I/O operations are > running. So, IO thread runs the event loop (I think it's main_loop_wait in main-loop.c, right?), and it leave blocking I/O system calls to posix-aio-compat.c worker threads? Is that correct? Thanks! Regards, chenwj -- Wei-Ren Chen (陳韋任) Computer Systems Lab, Institute of Information Science, Academia Sinica, Taiwan (R.O.C.) Tel:886-2-2788-3799 #1667 Homepage: http://people.cs.nctu.edu.tw/~chenwj