On 06/06/2018 02:24 PM, John Snow wrote: > This is largely the same series that Vladimir sent in January, but at > the time I was unsure of if we'd want these commands or not in QEMU. > > After discussing with Virtuozzo their plans for a checkpoint-like API > implemented primarily in libvirt, I agree that these commands are at > least tentatively useful. > > Eric Blake is currently writing a counter-proposal and demo API to show > to Virtuozzo on libvirt's development list. Check in these QMP commands > with the experimental prefix 'x-' for now so that it can be used for > prototyping. > > Once the design for the libvirt API looks reasonably final I will > remove the 'x-' prefixes, or, if we wind up not using these particular > commands I will delete them entirely. > > v4: > - Reinstated Vladimir's authorship credit on all patches > - Switched 2.12 to 3.0 > - Edited doc to clarify failure mode for merge (Jeff) > - Removed !bs check where applicable (Jeff) > > v3: > - Drop patch one (already merged) > - Minor phrasing adjustments to documentation > - Removed &state->bs argument to bitmap lookup for enable/disable > - Added x- prefix to all three commands and to add's new argument. > > Vladimir's original cover letter is below: > > There are three qmp commands, needed to implement external backup API. > > Using these three commands, client may do all needed bitmap management by > hand: > > on backup start we need to do a transaction: > {disable old bitmap, create new bitmap} > > on backup success: > drop old bitmap > > on backup fail: > enable old bitmap > merge new bitmap to old bitmap > drop new bitmap > > Vladimir Sementsov-Ogievskiy (5): > block/dirty-bitmap: add lock to bdrv_enable/disable_dirty_bitmap > qapi: add x-block-dirty-bitmap-enable/disable > qmp: transaction support for x-block-dirty-bitmap-enable/disable > qapi: add x-block-dirty-bitmap-merge > qapi: add disabled parameter to block-dirty-bitmap-add > > block/dirty-bitmap.c | 24 ++++++- > blockdev.c | 163 > ++++++++++++++++++++++++++++++++++++++++++- > include/block/dirty-bitmap.h | 3 +- > qapi/block-core.json | 86 ++++++++++++++++++++++- > qapi/transaction.json | 4 ++ > 5 files changed, 275 insertions(+), 5 deletions(-) > Hmm, I sorta-maybe have jurisdiction on this, but it touches more blockdev.c and qapi/block-core.json than it does block/dirty-bitmap.c. I'm gonna send a PR for this and if I was wrong about that, Kevin, just veto the PR thread. --js