On 03/05/2012 11:07 AM, Jan Kiszka wrote: > On 2012-03-05 09:34, Paolo Bonzini wrote: > > This is quite ugly. Two threads, one running main_loop_wait and > > one running qemu_aio_wait, can race with each other on running the > > same iohandler. The result is that an iohandler could run while the > > underlying socket is not readable or writable, with possibly ill effects. > > Hmm, isn't it a problem already that a socket is polled by two threads > at the same time? Can't that be avoided? Could it be done simply by adding a mutex there? It's hardly a clean fix, but it's not a clean problem. > Long-term, I'd like to cut out certain file descriptors from the main > loop and process them completely in separate threads (for separate > locking, prioritization etc.). Dunno how NBD works, but maybe it should > be reworked like this already. Ideally qemu_set_fd_handler2() should be made thread local, and each device thread would run a copy of the main loop, just working on different data. -- error compiling committee.c: too many arguments to function -- To unsubscribe from this list: send the line "unsubscribe kvm" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html