|
From: | Marcin Gibuła |
Subject: | Re: [Qemu-devel] [PATCH] linux-aio: avoid deadlock in nested aio_poll() calls |
Date: | Mon, 04 Aug 2014 18:10:44 +0200 |
User-agent: | Mozilla/5.0 (Windows NT 6.1; WOW64; rv:24.0) Gecko/20100101 Thunderbird/24.6.0 |
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 <address@hidden> Cc: Paolo Bonzini <address@hidden> Cc: Ming Lei <address@hidden> Cc: Marcin Gibuła <address@hidden> Reported-by: Marcin Gibuła <address@hidden> Signed-off-by: Stefan Hajnoczi <address@hidden>
I'll test it tomorrow. -- mg
[Prev in Thread] | Current Thread | [Next in Thread] |