qemu-devel
[Top][All Lists]
Advanced

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

Re: [Qemu-devel] [PATCH v2 00/13] Dirty bitmap changes for migration/per


From: Vladimir Sementsov-Ogievskiy
Subject: Re: [Qemu-devel] [PATCH v2 00/13] Dirty bitmap changes for migration/persistence work
Date: Thu, 21 Jan 2016 13:41:40 +0300
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.8.0

An idea/question.

What about make some const dirty bitmap finctions really const?

bdrv_dirty_bitmap_name(BdrvDirtyBitmap *bitmap) -> bdrv_dirty_bitmap_name(const BdrvDirtyBitmap *bitmap) bdrv_dirty_bitmap_size(BdrvDirtyBitmap *bitmap) -> bdrv_dirty_bitmap_size(const BdrvDirtyBitmap *bitmap)

etc..

I don't know, may be it is not Qemu style or there are some other restrictions, but in common case strict definitions are better.. In my persistent series I've included a fix for this "[PATCH 01/17] block: fix bdrv_dirty_bitmap_granularity()", necessary for my other functions with const BdrvDirtyBitmap *bitmap.

I can add such fixes into my series (but these series are better place, I think), or, if it is bad for Qemu, I'll remove all such const's from my series.


On 20.01.2016 09:11, Fam Zheng wrote:
v2: Various changes addressing John's and Vladimir's comments:

     [02/13] typedefs: Add BdrvDirtyBitmap
             Skip HBitmapIter because we'll hide it soon. [John]
[03/13] block: Move block dirty bitmap code to separate files
     [04/13] block: Remove unused typedef of BlockDriverDirtyHandler
     [05/13] block: Hide HBitmap in block dirty bitmap interface
             Add assert in bdrv_dirty_bitmap_truncate(). [John]
             Add John's rev-by.

     [06/13] HBitmap: Introduce "meta" bitmap to track bit changes
             Caller of hbitmap_create_meta() frees it with hbitmap_free_meta().
             [John, Vladimir]

     [07/13] tests: Add test code for meta bitmap
             Add John's rev-by.

     [08/13] block: Support meta dirty bitmap
             Release the meta dirty bitmap in bdrv_release_dirty_bitmap().

     [09/13] block: Add two dirty bitmap getters
     [10/13] block: Assert that bdrv_release_dirty_bitmap succeeded
             Add John's rev-by.

     [11/13] hbitmap: serialization
             Fix comment for hbitmap_serialization_granularity() and
             hbitmap_deserialize_part(). [John]
             Document @finish in hbitmap_deserialize_zeroes more clearly.
             Fixed granularity in hbitmap_serialization_granularity().
             [Vladimir]
             Tweak the assertion in serialization_chunk. [Vladimir]
             cpu_to_leXXs -> leXX_to_cpus in hbitmap_deserialize_part.
             [Vladimir]
             Fix typo in serialization_chunk() comments. [John]

     [12/13] block: BdrvDirtyBitmap serialization interface
     [13/13] tests: Add test code for hbitmap serialization


Two major features are added to block dirty bitmap (and underlying HBitmap) in
this series: meta bitmap and serialization, together with all other supportive
patches.

Both operations are common in dirty bitmap migration and persistence: they need
to find whether and which part of the dirty bitmap in question has changed with
meta dirty bitmap, and they need to write it to the target with serialization.


Fam Zheng (11):
   backup: Use Bitmap to replace "s->bitmap"
   typedefs: Add BdrvDirtyBitmap
   block: Move block dirty bitmap code to separate files
   block: Remove unused typedef of BlockDriverDirtyHandler
   block: Hide HBitmap in block dirty bitmap interface
   HBitmap: Introduce "meta" bitmap to track bit changes
   tests: Add test code for meta bitmap
   block: Support meta dirty bitmap
   block: Add two dirty bitmap getters
   block: Assert that bdrv_release_dirty_bitmap succeeded
   tests: Add test code for hbitmap serialization

Vladimir Sementsov-Ogievskiy (2):
   hbitmap: serialization
   block: BdrvDirtyBitmap serialization interface

  block.c                      | 339 -----------------------------
  block/Makefile.objs          |   2 +-
  block/backup.c               |  25 ++-
  block/dirty-bitmap.c         | 492 +++++++++++++++++++++++++++++++++++++++++++
  block/mirror.c               |  14 +-
  include/block/block.h        |  40 +---
  include/block/dirty-bitmap.h |  71 +++++++
  include/qemu/hbitmap.h       |  95 +++++++++
  include/qemu/typedefs.h      |   2 +
  tests/test-hbitmap.c         | 255 ++++++++++++++++++++++
  util/hbitmap.c               | 201 ++++++++++++++++--
  11 files changed, 1126 insertions(+), 410 deletions(-)
  create mode 100644 block/dirty-bitmap.c
  create mode 100644 include/block/dirty-bitmap.h



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




reply via email to

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