[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Qemu-block] [2.4 PATCH v3 00/19] block: transactionless incremental bac

From: John Snow
Subject: [Qemu-block] [2.4 PATCH v3 00/19] block: transactionless incremental backup series
Date: Fri, 13 Mar 2015 14:30:00 -0400

What will life be like after this series gets committed upstream?
Where do we go from here?

This patchset enables the in-memory part of the incremental backup
feature, without transactional support.

Support for transactions was separated into a separate series which
is also now available on-list. Getting this portion of the series
committed will help stabilize work on bitmap persistence and bitmap

Thanks to Fam Zheng for the original versions of this patchset.


01: Removed enabled/disabled modes information.
    Elaborated on events that can occur during error cases.
04: Added an AioContext out parameter to block_dirty_bitmap_lookup.
06: NEW:
    Cache the array lengths for hbitmap.
07: hbitmap_merge now uses the cached array lengths.
11: block-dirty-bitmap-clear is edited for the new block_dirty_bitmap_lookup.
12: Removed the "disabled" status, leaving just "Frozen."
15: Moved bdrv_truncate_dirty_bitmap to be static local
    Inlined dirty_bitmap_truncate function.
    Removed size[] caching into new patch (06, above)
    hbitmap_truncate now keeps correct bit population count
    hbitmap_truncate now uses hbitmap_reset BEFORE the truncate,
        to avoid tricky out-of-bounds usages.
    Remove g_realloc_n call that is not available in glib 2.12 (or 2.22)
    Renamed "truncate" to "shrink" to make that more clear
        to people who aren't me (at last count: 7+ billion)
16 NEW:
   hbitmap_truncate tests.

[----] : patches are identical
[####] : number of functional differences between upstream/downstream patch
[down] : patch is downstream-only
The flags [FC] indicate (F)unctional and (C)ontextual differences, respectively

001/19:[0014] [FC] 'docs: incremental backup documentation'
002/19:[----] [--] 'qapi: Add optional field "name" to block dirty bitmap'
003/19:[----] [--] 'qmp: Ensure consistent granularity type'
004/19:[0012] [FC] 'qmp: Add block-dirty-bitmap-add and 
005/19:[----] [--] 'block: Introduce bdrv_dirty_bitmap_granularity()'
006/19:[down] 'hbitmap: cache array lengths'
007/19:[0005] [FC] 'hbitmap: add hbitmap_merge'
008/19:[----] [--] 'block: Add bitmap disabled status'
009/19:[----] [-C] 'block: Add bitmap successors'
010/19:[----] [--] 'qmp: Add support of "dirty-bitmap" sync mode for 
011/19:[0007] [FC] 'qmp: add block-dirty-bitmap-clear'
012/19:[down] 'qmp: Add dirty bitmap status field in query-block'
013/19:[----] [--] 'block: add BdrvDirtyBitmap documentation'
014/19:[----] [--] 'block: Ensure consistent bitmap function prototypes'
015/19:[0070] [FC] 'block: Resize bitmaps on bdrv_truncate'
016/19:[down] 'hbitmap: truncate tests'
017/19:[----] [-C] 'iotests: add invalid input incremental backup tests'
018/19:[----] [--] 'iotests: add simple incremental backup case'
019/19:[----] [--] 'iotests: add incremental backup failure recovery test'


01: Added a new opening blurb.
    Adjusted codeblock indentations to be 4 spaces instead of 3,
    so it works as MD or GFMD.
    Adjusted errors explanation.
    Make visual separations between json data and shell commands
    Eliminate any ligering single quotes

07: Remember that memset takes bytes, not n_items ...


 - Removed Transactions, to be added later.
 - Removed Transaction tests, as above.

01: Indentation fixes.
    Removed enable/disable documentation.
    Added a note that transactions aren't implemented yet.
    Removed my needless commas
    Added error case documentation.

07: QMP enable/disable commands are deleted.

14: Some comments concerning assertions.
    Scrub re-alloc memory if we expand the array.
    Do not attempt to scrub memory if fix_count is 0

Changes made with Reviews kept:

02: Since 2.4
04: Since 2.4
    Demingled the QMP command documentation.
08: Additions to what was qmp_block_dirty_enable/disable
    are no longer present as those function no longer exist.
09: Since 2.4
10: Since 2.4
    Demingled QMP command documentation.
11: Since 2.4
15: Test 112 --> 124
17: Number of tests altered. (Only 4, now.)

Fam Zheng (1):
  qapi: Add optional field "name" to block dirty bitmap

John Snow (18):
  docs: incremental backup documentation
  qmp: Ensure consistent granularity type
  qmp: Add block-dirty-bitmap-add and block-dirty-bitmap-remove
  block: Introduce bdrv_dirty_bitmap_granularity()
  hbitmap: cache array lengths
  hbitmap: add hbitmap_merge
  block: Add bitmap disabled status
  block: Add bitmap successors
  qmp: Add support of "dirty-bitmap" sync mode for drive-backup
  qmp: add block-dirty-bitmap-clear
  qmp: Add dirty bitmap status field in query-block
  block: add BdrvDirtyBitmap documentation
  block: Ensure consistent bitmap function prototypes
  block: Resize bitmaps on bdrv_truncate
  hbitmap: truncate tests
  iotests: add invalid input incremental backup tests
  iotests: add simple incremental backup case
  iotests: add incremental backup failure recovery test

 block.c                       | 243 +++++++++++++++++++++++++++++++--
 block/backup.c                | 149 ++++++++++++++++----
 block/mirror.c                |  46 +++----
 blockdev.c                    | 161 +++++++++++++++++++++-
 docs/bitmaps.md               | 311 ++++++++++++++++++++++++++++++++++++++++++
 hmp.c                         |   3 +-
 include/block/block.h         |  33 ++++-
 include/block/block_int.h     |   4 +-
 include/qemu/hbitmap.h        |  21 +++
 migration/block.c             |   9 +-
 qapi/block-core.json          |  90 +++++++++++-
 qmp-commands.hx               |  92 ++++++++++++-
 tests/qemu-iotests/124        | 266 ++++++++++++++++++++++++++++++++++++
 tests/qemu-iotests/124.out    |   5 +
 tests/qemu-iotests/group      |   1 +
 tests/qemu-iotests/iotests.py |   6 +-
 tests/test-hbitmap.c          | 247 +++++++++++++++++++++++++++++++++
 util/hbitmap.c                |  85 ++++++++++++
 18 files changed, 1682 insertions(+), 90 deletions(-)
 create mode 100644 docs/bitmaps.md
 create mode 100644 tests/qemu-iotests/124
 create mode 100644 tests/qemu-iotests/124.out


reply via email to

[Prev in Thread] Current Thread [Next in Thread]