[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH 1/4] block: Make bdrv_drain_invoke() recursive
From: |
Eric Blake |
Subject: |
Re: [Qemu-devel] [PATCH 1/4] block: Make bdrv_drain_invoke() recursive |
Date: |
Tue, 5 Dec 2017 09:15:31 -0600 |
User-agent: |
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
s/reasons/reason/
> 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
> anyway.
>
> 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
signature.asc
Description: OpenPGP digital signature