[Top][All Lists]

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

Re: [Qemu-block] [PATCH v3 0/4] Bitmap clean-up patches for 2.6

From: Vladimir Sementsov-Ogievskiy
Subject: Re: [Qemu-block] [PATCH v3 0/4] Bitmap clean-up patches for 2.6
Date: Wed, 25 Nov 2015 09:57:47 +0300
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.8.0

Hmm, stop. Very bad thing (sorry, that I didn't realize it before):

This breaks my dirty bitmap migration series with its meta bitmaps. Meta bitmap is an additional HBitmap in BdrvDirtyBitmap, which tracks dirtiness of this BdrvDirtyBitmap. And it (meta bitmap) have its own granularity of course. Or we will have to maintain additional meta_gran_shift and lots of duplicated code..

If we speak about splitting granularity out of HBitmap, then the most true way should be

struct HBitmapGranuled {
  struct HBitmap *hb;
  uint32_t gran_shift;

with all supporting functions and iterators.

On 25.11.2015 07:19, Fam Zheng wrote:
v3: Split patch 2. [Vladimir]

v2: bitmap_set -> set_bit. [Congyang, Paolo, John]
     Add John Snow's rev-by with that change.

This makes a cleaner base for more dirty bitmap work. "granularity" appearing
with different representations have always been mind twisting, remove it from
HBitmap to make the interface and implementation simpler. Upon this, it is
a bit easier to add persistent dirty bitmap functionalities.

Block dirty bitmap is not unit-tested, so the removal of HBitmap test code
looks like a loss, but the overall test coverage is barely affected as we also
have various mirror, commit and backup iotest cases, and they do catch various
bugs when I wrote the patches.

Please review!


Fam Zheng (4):
   backup: Use Bitmap to replace "s->bitmap"
   block: Hide HBitmap in block dirty bitmap interface
   block: Manage granularity in BdrvDirtyBitmap
   hbitmap: Drop "granularity"

  block.c                |  79 ++++++++++++++-----
  block/backup.c         |  25 +++---
  block/mirror.c         |  14 ++--
  include/block/block.h  |   9 ++-
  include/qemu/hbitmap.h |  20 +----
  tests/test-hbitmap.c   | 206 ++++++++-----------------------------------------
  util/hbitmap.c         |  64 +++------------
  7 files changed, 135 insertions(+), 282 deletions(-)

Best regards,
* now, @virtuozzo.com instead of @parallels.com. Sorry for this inconvenience.

reply via email to

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