qemu-block
[Top][All Lists]
Advanced

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

Re: [Qemu-block] [PATCH v4 0/9] block: Fixes for bdrv_drain


From: Stefan Hajnoczi
Subject: Re: [Qemu-block] [PATCH v4 0/9] block: Fixes for bdrv_drain
Date: Mon, 9 Nov 2015 16:50:51 +0000
User-agent: Mutt/1.5.23 (2015-06-09)

On Mon, Nov 09, 2015 at 06:16:45PM +0800, Fam Zheng wrote:
> v4: Don't miss children's children. [Paolo]
> 
> v3: Don't reuse coroutine in bdrv_aio_ioctl. [Stefan]
>     Recursely call .bdrv_drain callback only. [Stefan, Paolo]
>     Added Kevin's reviewed-by in other patches.
> 
> v2: Add Kevin's reviewed-by in patches 1, 2, 5-7, 9.
>     Address Kevin's reviewing comments which are:
>     - Explicit "ret = 0" before out label in patch 3.
>     - Add missing qemu_aio_unref() in patch 4.
>     - Recurse into all children in bdrv_drain in patch 8.
> 
> Previously bdrv_drain and bdrv_drain_all don't handle ioctl, flush and discard
> requests (which are fundamentally the same as read and write requests that
> change disk state).  Forgetting such requests leaves us in risk of violating
> the invariant that bdrv_drain() callers rely on - all asynchronous requests
> must have completed after bdrv_drain returns.
> 
> Enrich the tracked request types, and add tracked_request_begin/end pairs to
> all three code paths. As a prerequisite, ioctl code is moved into coroutine
> too.
> 
> The last two patches take care of QED's "need check" timer, so that after
> bdrv_drain returns, the driver is in a consistent state.
> 
> Fam
> 
> 
> Fam Zheng (9):
>   block: Add more types for tracked request
>   block: Track flush requests
>   block: Track discard requests
>   iscsi: Emulate commands in iscsi_aio_ioctl as iscsi_ioctl
>   block: Add ioctl parameter fields to BlockRequest
>   block: Emulate bdrv_ioctl with bdrv_aio_ioctl and track both
>   block: Drop BlockDriver.bdrv_ioctl
>   block: Introduce BlockDriver.bdrv_drain callback
>   qed: Implement .bdrv_drain
> 
>  block/io.c                | 150 
> +++++++++++++++++++++++++++++++++++++++-------
>  block/iscsi.c             |  73 +++++++++++-----------
>  block/qed.c               |  13 ++++
>  block/raw-posix.c         |   8 ---
>  block/raw_bsd.c           |   6 --
>  include/block/block.h     |  16 +++--
>  include/block/block_int.h |  17 +++++-
>  7 files changed, 208 insertions(+), 75 deletions(-)
> 
> -- 
> 2.4.3
> 

Thanks, applied to my block tree:
https://github.com/stefanha/qemu/commits/block

Stefan

Attachment: signature.asc
Description: PGP signature


reply via email to

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