[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH RFC v2 3/5] qmp: expose block-dirty-bitmap-populate
From: |
Eric Blake |
Subject: |
Re: [PATCH RFC v2 3/5] qmp: expose block-dirty-bitmap-populate |
Date: |
Mon, 18 May 2020 16:10:25 -0500 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.7.0 |
On 5/13/20 10:49 PM, John Snow wrote:
This is a new job-creating command.
Signed-off-by: John Snow <address@hidden>
---
qapi/block-core.json | 18 +++++++++++
qapi/transaction.json | 2 ++
blockdev.c | 74 +++++++++++++++++++++++++++++++++++++++++++
3 files changed, 94 insertions(+)
diff --git a/qapi/block-core.json b/qapi/block-core.json
index 0fb527a9a1..f7cae77fc9 100644
--- a/qapi/block-core.json
+++ b/qapi/block-core.json
@@ -2250,6 +2250,24 @@
'*auto-finalize': 'bool',
'*auto-dismiss': 'bool' } }
+##
+# @block-dirty-bitmap-populate:
+#
+# Creates a new job that writes a pattern into a dirty bitmap.
+#
+# Since: 5.0
5.1
+++ b/qapi/transaction.json
@@ -50,6 +50,7 @@
# - @block-dirty-bitmap-enable: since 4.0
# - @block-dirty-bitmap-disable: since 4.0
# - @block-dirty-bitmap-merge: since 4.0
+# - @block-dirty-bitmap-populate: since 5.0
ditto
+++ b/blockdev.c
@@ -2233,6 +2233,63 @@ static void
block_dirty_bitmap_remove_commit(BlkActionState *common)
bdrv_release_dirty_bitmap(state->bitmap);
}
+static void block_dirty_bitmap_populate_prepare(BlkActionState *common,
+ Error **errp)
+{
+ BlockJobActionState *state = DO_UPCAST(BlockJobActionState, common,
common);
+ BlockDirtyBitmapPopulate *bitpop;
+ BlockDriverState *bs;
+ AioContext *aio_context;
+ BdrvDirtyBitmap *bmap = NULL;
+ int job_flags = JOB_DEFAULT;
+
+ assert(common->action->type == \
+ TRANSACTION_ACTION_KIND_BLOCK_DIRTY_BITMAP_POPULATE);
\ is not necessary here.
+ bitpop = common->action->u.block_dirty_bitmap_populate.data;
+
+ bmap = block_dirty_bitmap_lookup(bitpop->node, bitpop->name, &bs, errp);
+ if (!bmap) {
+ return;
+ }
So the bitmap has to already exist, and we are just merging into it,
correct?
Otherwise looks good.
--
Eric Blake, Principal Software Engineer
Red Hat, Inc. +1-919-301-3226
Virtualization: qemu.org | libvirt.org
- [PATCH RFC v2 0/5] block: add block-dirty-bitmap-populate job, John Snow, 2020/05/13
- [PATCH RFC v2 1/5] block: add bitmap-populate job, John Snow, 2020/05/13
- [PATCH RFC v2 2/5] blockdev: combine DriveBackupState and BlockdevBackupState, John Snow, 2020/05/13
- [PATCH RFC v2 3/5] qmp: expose block-dirty-bitmap-populate, John Snow, 2020/05/13
- Re: [PATCH RFC v2 3/5] qmp: expose block-dirty-bitmap-populate,
Eric Blake <=
- [PATCH RFC v2 4/5] iotests: move bitmap helpers into their own file, John Snow, 2020/05/13
- [PATCH RFC v2 5/5] iotests: add 287 for block-dirty-bitmap-populate, John Snow, 2020/05/13
- Re: [PATCH RFC v2 0/5] block: add block-dirty-bitmap-populate job, Peter Krempa, 2020/05/18