[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH v3 00/14] block: Move I/O throttling to BlockBac
From: |
Stefan Hajnoczi |
Subject: |
Re: [Qemu-devel] [PATCH v3 00/14] block: Move I/O throttling to BlockBackend |
Date: |
Mon, 16 May 2016 15:46:46 -0700 |
User-agent: |
Mutt/1.6.0 (2016-04-01) |
On Wed, May 11, 2016 at 03:24:11PM +0200, Kevin Wolf wrote:
> This is another feature that was "logically" part of the BlockBackend, but
> implemented as a BlockDriverState feature. It was always kept on top using
> swap_feature_fields().
>
> This series moves it to be actually implemented in the BlockBackend, removing
> another obstacle for removing bs->blk and allowing multiple BBs per BDS.
>
> Applies to block-next.
>
>
> v3:
> - Patch 5: 'block: Move throttling fields from BDS to BB'
> Fixed a few commentions still mentioning BDS instead of BB [Berto]
>
> - Patch 9: 'block: Drain throttling queue with BdrvChild'
> Documented the semantics of BdrvChildRole.drained_begin/end [Stefan]
>
> - Patch 10 (new): 'block/io: Quiesce parents between drained_begin/end'
> Fix that parent requests were allowed again too early [Stefan]
>
> - Patch 14 (was 13): 'block: Don't check throttled reqs in
> bdrv_requests_pending()'
> Explained more cases in the commit message [Berto]
>
>
> v2:
> - Rebased on top of Paolo's 'bdrv_flush_io_queue removal, shared
> LinuxAioState'
> Most notable this includes a complete rewrite of patch 9 (was 10): 'block:
> Drain throttling queue with BdrvChild'. Instead of a single drain_queue()
> callback we now have a drained_begin/end() pair.
>
> - Patch 2 (was 3): 'block: Introduce BlockBackendPublic'
> Add int dummy to yet empty struct BlockBackendPublic [Eric]
>
> - Patch 11: 'block: Remove bdrv_move_feature_fields()'
> After the rebase, the function ended up empty, we can remove it now
>
> - Patch 12: 'Revert "block: Forbid I/O throttling on nodes with
> multiple parents for 2.6"'
> This was committed to master after v1 had been posted, so this one is new as
> well. The reason for forbidding this was that patch 6 ('block: Move actual
> I/O throttling to BlockBackend') would change the behaviour of the non-BB
> parents. Now that the final behaviour is implemented, we can allow the
> setup.
>
> Kevin Wolf (14):
> block: Make sure throttled BDSes always have a BB
> block: Introduce BlockBackendPublic
> block: throttle-groups: Use BlockBackend pointers internally
> block: Convert throttle_group_get_name() to BlockBackend
> block: Move throttling fields from BDS to BB
> block: Move actual I/O throttling to BlockBackend
> block: Move I/O throttling configuration functions to BlockBackend
> block: Introduce BdrvChild.opaque
> block: Drain throttling queue with BdrvChild callback
> block/io: Quiesce parents between drained_begin/end
> block: Decouple throttling from BlockDriverState
> block: Remove bdrv_move_feature_fields()
> Revert "block: Forbid I/O throttling on nodes with multiple parents
> for 2.6"
> block: Don't check throttled reqs in bdrv_requests_pending()
>
> block.c | 58 +---------
> block/block-backend.c | 135 ++++++++++++++++++----
> block/io.c | 86 ++++----------
> block/qapi.c | 6 +-
> block/throttle-groups.c | 244
> +++++++++++++++++++++-------------------
> blockdev.c | 50 +++-----
> include/block/block.h | 4 -
> include/block/block_int.h | 35 ++----
> include/block/throttle-groups.h | 14 +--
> include/sysemu/block-backend.h | 27 +++++
> tests/test-throttle.c | 62 +++++-----
> 11 files changed, 359 insertions(+), 362 deletions(-)
I'm happy with this series modulo the typos I mentioned in replies.
signature.asc
Description: PGP signature
- [Qemu-devel] [PATCH v3 05/14] block: Move throttling fields from BDS to BB, (continued)
- [Qemu-devel] [PATCH v3 05/14] block: Move throttling fields from BDS to BB, Kevin Wolf, 2016/05/11
- [Qemu-devel] [PATCH v3 10/14] block/io: Quiesce parents between drained_begin/end, Kevin Wolf, 2016/05/11
- [Qemu-devel] [PATCH v3 11/14] block: Decouple throttling from BlockDriverState, Kevin Wolf, 2016/05/11
- [Qemu-devel] [PATCH v3 12/14] block: Remove bdrv_move_feature_fields(), Kevin Wolf, 2016/05/11
- [Qemu-devel] [PATCH v3 13/14] Revert "block: Forbid I/O throttling on nodes with multiple parents for 2.6", Kevin Wolf, 2016/05/11
- [Qemu-devel] [PATCH v3 14/14] block: Don't check throttled reqs in bdrv_requests_pending(), Kevin Wolf, 2016/05/11
- [Qemu-devel] [PATCH v3 09/14] block: Drain throttling queue with BdrvChild callback, Kevin Wolf, 2016/05/11
- [Qemu-devel] [PATCH v3 08/14] block: Introduce BdrvChild.opaque, Kevin Wolf, 2016/05/11
- Re: [Qemu-devel] [PATCH v3 00/14] block: Move I/O throttling to BlockBackend,
Stefan Hajnoczi <=