[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH 01/18] iothread: release iothread around aio_pol
From: |
Paolo Bonzini |
Subject: |
Re: [Qemu-devel] [PATCH 01/18] iothread: release iothread around aio_poll |
Date: |
Mon, 28 Sep 2015 12:14:24 +0200 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.2.0 |
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 <address@hidden>
> 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 <address@hidden>, 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