[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-block] [Qemu-devel] [PATCH 1/4] block: Make bdrv_drain_invoke(
Re: [Qemu-block] [Qemu-devel] [PATCH 1/4] block: Make bdrv_drain_invoke() recursive
Tue, 5 Dec 2017 09:15:31 -0600
Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.4.0
On 12/05/2017 08:54 AM, Kevin Wolf wrote:
> This change separates bdrv_drain_invoke(), which calls the BlockDriver
> drain callbacks, from bdrv_drain_recurse(). Instead, the function
> performs its own recursion now.
> One reason for this is that bdrv_drain_recurse() can be called multiple
> times bdrv_drain_recurse(),
Doesn't read right. Should the second instance be changed to 'by
itself', or is the correct meaning something else?
> but the callbacks may only be called once.
> The separation is necessary to fix this bug.
> The other reasons is that we intend to go to model where we call all
> driver callbacks first, and only then start polling. This is not fully
> achieved yet with this patch, as bdrv_drain_invoke() contains a
> BDRV_POLL_WHILE() loop for the block driver callbacks which can still
> call callbacks for any unrelated event. It's a step in this direction
> Cc: address@hidden
> Signed-off-by: Kevin Wolf <address@hidden>
> block/io.c | 14 +++++++++++---
> 1 file changed, 11 insertions(+), 3 deletions(-)
Eric Blake, Principal Software Engineer
Red Hat, Inc. +1-919-301-3266
Virtualization: qemu.org | libvirt.org
Description: OpenPGP digital signature