On Tue, Mar 26, 2013 at 11:03:53AM +0100, Paolo Bonzini wrote: > Il 26/03/2013 10:54, Stefan Hajnoczi ha scritto: > > On Tue, Mar 26, 2013 at 08:03:50AM +0100, Paolo Bonzini wrote: > >> Il 26/03/2013 03:50, Wenchao Xia ha scritto: > >>> When I using tcg with coroutine backend = gthread, > >>> x86_64-softmmu/qemu-system-x86_64 will hung. Any one > >>> working on it? > >> > >> coroutine backend gthread hardly works for qemu, only qemu-io and qemu-img. > > > > Do you know why it doesn't work? > > Because it screws up the signals. Coroutines can start in a thread and > later move to another. If you use the gthread backend, coroutines keep > the signal mask of the thread where they were created. > > It is basically the same bug that was fixed in commit 6ab7e54 (Replace > all setjmp()/longjmp() with sigsetjmp()/siglongjmp(), 2013-02-20).
That's interesting. Maybe it can be fixed if the gthread backend is actually needed. Stefan