W dniu 2014-08-04 17:56, Stefan Hajnoczi pisze:
If two Linux AIO request completions are fetched in the same io_getevents() call, QEMU will deadlock if request A's callback waits for request B to complete using an aio_poll() loop. This was reported to happen with the mirror blockjob.
s/mirror/commit/
This patch moves completion processing into a BH and makes it resumable. Nested event loops can resume completion processing so that request B will complete and the deadlock will not occur. Cc: Kevin Wolf <kw...@redhat.com> Cc: Paolo Bonzini <pbonz...@redhat.com> Cc: Ming Lei <ming....@canonical.com> Cc: Marcin Gibuła <m.gib...@beyond.pl> Reported-by: Marcin Gibuła <m.gib...@beyond.pl> Signed-off-by: Stefan Hajnoczi <stefa...@redhat.com>
I'll test it tomorrow. -- mg