22.01.2018 20:23, John Snow wrote:


On 01/22/2018 07:22 AM, Vladimir Sementsov-Ogievskiy wrote:
22.01.2018 12:20, Vladimir Sementsov-Ogievskiy wrote:
20.01.2018 02:30, John Snow wrote:
On 01/16/2018 07:54 AM, Vladimir Sementsov-Ogievskiy wrote:
Hi all.

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

v2: fix merge command deadlock
    add new patches: 1 and 6

Vladimir Sementsov-Ogievskiy (6):
    block: maintain persistent disabled bitmaps
    block/dirty-bitmap: add lock to bdrv_enable/disable_dirty_bitmap
    qapi: add block-dirty-bitmap-enable/disable
    qmp: transaction support for block-dirty-bitmap-enable/disable
    qapi: add block-dirty-bitmap-merge
    qapi: add disabled parameter to block-dirty-bitmap-add

   qapi/block-core.json         |  92 ++++++++++++++++++++++-
   qapi/transaction.json        |   4 +
   block/qcow2.h                |   2 +-
   include/block/dirty-bitmap.h |   3 +-
   block/dirty-bitmap.c         |  42 ++++++-----
   block/qcow2-bitmap.c         |  12 +--
   block/qcow2.c                |   2 +-
   blockdev.c                   | 169
+++++++++++++++++++++++++++++++++++++++++--
   8 files changed, 287 insertions(+), 39 deletions(-)

Fails to apply to master (b384cd95) on patch four and five. Only
contextual problems, I've patched it up and I'll review that.

(mirrored here if you want to check my rebase work:
https://github.com/jnsnow/qemu/tree/vlad-review)

Since I was full of such bad and stupid ideas last time, I'd like
someone else to look over this one for design and I'll just review it
for accuracy.

--js
Thank you for review, John!

Ok, so, I'll going to:

- take patch 1 into migration and respin it today (I hope) with test
about qcow2-based bitmap migration disabled.
- separate fixes and refactoring from here (locking + _bitmap_clear
transaction), send them separately
- than, make test for external backup and respin these series with it

changed to:

1. send patch 1/6 separately with the whole reasoning[done], as it
blocks two series, wait for accepting
2. respin postcopy series
3. finish up discussion on bitmap locking under "[PATCH v9 03/13]
block/dirty-bitmap: add _locked version of bdrv_reclaim_dirty_bitmap"
4. separate fixes and refactoring from here (locking + _bitmap_clear
transaction), send them separately
5. make test for external backup and respin these series with it

2 depends on 1
4 depends on 3
5 depends on 1 and 4

Great, thanks!

Sorry for long delay, I was ill. Now I'm returning to these plans.

--
Best regards,
Vladimir


Reply via email to