This is NOT the final version of this patch series, but I'm posting it
to revive conversation on the topic while fixing it to compile on top
of meson changes.
v3 was:https://lists.gnu.org/archive/html/qemu-devel/2020-06/msg06258.html
001/5:[0025] [FC] 'block: add bitmap-populate job'
002/5:[----] [--] 'blockdev: combine DriveBackupState and BlockdevBackupState'
003/5:[0004] [FC] 'qmp: expose block-dirty-bitmap-populate'
004/5:[----] [--] 'iotests: move bitmap helpers into their own file'
005/5:[----] [-C] 'iotests: add 298 for block-dirty-bitmap-populate'
I'm still trying to find the right QAPI contract (affects patch 1 and
3 for the qapi, and 5 for invoking the command in iotests), but right
now, I'm leaning towards:
{ "execute": "block-dirty-bitmap-populate", "arguments": {
"job-id": "job0", "node": "target_node", "name": "target_bitmap",
"sources": [ { "pattern": "allocation", "node": "from_node" } ] } }
which allows expansion into multiple sources, so that we can combine a
populate action with a bitmap merge rather than having to do those as
separate commands, like:
{ "execute": "block-dirty-bitmap-populate", "arguments": {
"job-id": "job0", "node": "target_node", "name": "target_bitmap",
"sources": [ { "pattern": "allocation", "node": "from_node" },
{ "pattern": "bitmap", "node": "from_node",
"bitmap": "from_bitmap" } ] } }