[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-block] [PATCH v3 10/14] block/io: Quiesce parents between drai
From: |
Stefan Hajnoczi |
Subject: |
Re: [Qemu-block] [PATCH v3 10/14] block/io: Quiesce parents between drained_begin/end |
Date: |
Mon, 16 May 2016 15:46:20 -0700 |
User-agent: |
Mutt/1.6.0 (2016-04-01) |
On Wed, May 11, 2016 at 03:24:21PM +0200, Kevin Wolf wrote:
> So far, bdrv_parent_drained_begin/end() was called for the duration of
> the actual bdrv_drain() at the beginning of a drained section, but we
> really should keep parents quiesced until the end of the drained
> section.
>
> This does not actually change behaviour at this point because the only
> user of the .drained_begin/end BdrvChildRole callback is I/O throttling,
> which already doesn't send any new requests after flushing its queue in
> .drained_being. The patch merely removes a trap for future users.
s/being/begin/
>
> Reported-by: Stefan Hajnoczi <address@hidden>
> Signed-off-by: Kevin Wolf <address@hidden>
> ---
> block/io.c | 3 +++
> 1 file changed, 3 insertions(+)
>
> diff --git a/block/io.c b/block/io.c
> index 7c213ec..23abbc5 100644
> --- a/block/io.c
> +++ b/block/io.c
> @@ -2749,11 +2749,14 @@ void bdrv_drained_begin(BlockDriverState *bs)
> if (!bs->quiesce_counter++) {
> aio_disable_external(bdrv_get_aio_context(bs));
> }
> + bdrv_parent_drained_begin(bs);
> bdrv_drain(bs);
> }
>
> void bdrv_drained_end(BlockDriverState *bs)
> {
> + bdrv_parent_drained_end(bs);
> +
> assert(bs->quiesce_counter > 0);
> if (--bs->quiesce_counter > 0) {
> return;
> --
> 1.8.3.1
>
signature.asc
Description: PGP signature
- [Qemu-block] [PATCH v3 04/14] block: Convert throttle_group_get_name() to BlockBackend, (continued)
- [Qemu-block] [PATCH v3 04/14] block: Convert throttle_group_get_name() to BlockBackend, Kevin Wolf, 2016/05/11
- [Qemu-block] [PATCH v3 03/14] block: throttle-groups: Use BlockBackend pointers internally, Kevin Wolf, 2016/05/11
- [Qemu-block] [PATCH v3 05/14] block: Move throttling fields from BDS to BB, Kevin Wolf, 2016/05/11
- [Qemu-block] [PATCH v3 07/14] block: Move I/O throttling configuration functions to BlockBackend, Kevin Wolf, 2016/05/11
- [Qemu-block] [PATCH v3 09/14] block: Drain throttling queue with BdrvChild callback, Kevin Wolf, 2016/05/11
- [Qemu-block] [PATCH v3 08/14] block: Introduce BdrvChild.opaque, Kevin Wolf, 2016/05/11
- [Qemu-block] [PATCH v3 12/14] block: Remove bdrv_move_feature_fields(), Kevin Wolf, 2016/05/11
- [Qemu-block] [PATCH v3 11/14] block: Decouple throttling from BlockDriverState, Kevin Wolf, 2016/05/11
- [Qemu-block] [PATCH v3 10/14] block/io: Quiesce parents between drained_begin/end, Kevin Wolf, 2016/05/11
- Re: [Qemu-block] [PATCH v3 10/14] block/io: Quiesce parents between drained_begin/end,
Stefan Hajnoczi <=
- [Qemu-block] [PATCH v3 14/14] block: Don't check throttled reqs in bdrv_requests_pending(), Kevin Wolf, 2016/05/11
- [Qemu-block] [PATCH v3 13/14] Revert "block: Forbid I/O throttling on nodes with multiple parents for 2.6", Kevin Wolf, 2016/05/11
- Re: [Qemu-block] [PATCH v3 00/14] block: Move I/O throttling to BlockBackend, Stefan Hajnoczi, 2016/05/16