On 28/09/2015 11:50, Stefan Hajnoczi wrote: > On Thu, Aug 06, 2015 at 03:35:59PM +0200, Paolo Bonzini wrote: >> This is the first step towards having fine-grained critical sections in >> dataplane threads, which resolves lock ordering problems between >> address_space_* functions (which need the BQL when doing MMIO, even >> after we complete RCU-based dispatch) and the AioContext. >> >> Because AioContext does not use contention callbacks anymore, the >> unit test has to be changed. >> >> Previously applied as a0710f7995f914e3044e5899bd8ff6c43c62f916 and >> then reverted. > > commit da5e1de95bb235330d7724316e7a29239d1359d5 > Author: Stefan Hajnoczi <stefa...@redhat.com> > Date: Wed Jun 3 10:15:33 2015 +0100 > > Revert "iothread: release iothread around aio_poll" > > This reverts commit a0710f7995f914e3044e5899bd8ff6c43c62f916. > > In qemu-devel email message <556dbf87.2020...@de.ibm.com>, Christian > Borntraeger writes: > > Having many guests all with a kernel/ramdisk (via -kernel) and > several null block devices will result in hangs. All hanging > guests are in partition detection code waiting for an I/O to return > so very early maybe even the first I/O. > > Reverting that commit "fixes" the hangs. > > Reverting this commit for the 2.4 release. More time is needed to > investigate and correct this patch. > > Did we ever find the root cause for hangs caused by this patch?
It was fixed by commit 53ec73e ("block: Use bdrv_drain to replace uncessary bdrv_drain_all", 2015-05-29)'s change to bdrv_set_aio_context. We never investigated the root cause, but I'd guess it's gone after the 2.4-rc bugfixes to AioContext. Paolo