[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH v2 11/17] block-backend: Decrease in_flight only

From: Paolo Bonzini
Subject: Re: [Qemu-devel] [PATCH v2 11/17] block-backend: Decrease in_flight only after callback
Date: Mon, 17 Sep 2018 14:38:00 +0200
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.9.1

On 17/09/2018 13:48, Kevin Wolf wrote:
> Am 14.09.2018 um 19:38 hat Paolo Bonzini geschrieben:
>> On 14/09/2018 19:14, Kevin Wolf wrote:
>>>> As you mention, you could have a nested aio_poll() in the main thread,
>>>> for example invoked from a bottom half, but in that case I'd rather
>>>> track the caller that is creating the bottom half and see if it lacks a
>>>> bdrv_ref/bdrv_unref (or perhaps it's even higher in the tree that is
>>>> missing).
>>> I went back to the commit where I first added the patch (it already
>>> contained the ref/unref pair) and tried if I could reproduce a bug with
>>> the pair removed. I couldn't.
>>> I'm starting to think that maybe I was just overly cautious with the
>>> ref/unref. I may have confused the nested aio_poll() crash with a
>>> different situation. I've dealt with so many crashes and hangs while
>>> working on this series that it's quite possible.
>> Are you going to drop the patch hen?
> I think I can drop the ref/unref pair, but not the whole patch (whose
> main point is reordering dec_in_flight vs. the AIO callback).

You're right, though I think I did that on purpose back in the day.
IIRC it was related to bdrv_drain, which might never complete if called
from an AIO callback.


reply via email to

[Prev in Thread] Current Thread [Next in Thread]