From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:45639) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aMCgb-0000G1-Hf for qemu-devel@nongnu.org; Thu, 21 Jan 2016 05:41:59 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1aMCgW-0004vh-HP for qemu-devel@nongnu.org; Thu, 21 Jan 2016 05:41:53 -0500 Message-ID: <56A0B5E4.8070003@virtuozzo.com> Date: Thu, 21 Jan 2016 13:41:40 +0300 From: Vladimir Sementsov-Ogievskiy MIME-Version: 1.0 References: <1453270306-16608-1-git-send-email-famz@redhat.com> In-Reply-To: <1453270306-16608-1-git-send-email-famz@redhat.com> Content-Type: text/plain; charset="utf-8"; format=flowed Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [PATCH v2 00/13] Dirty bitmap changes for migration/persistence work List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Fam Zheng , qemu-devel@nongnu.org Cc: Kevin Wolf , Jeff Cody , jsnow@redhat.com, qemu-block@nongnu.org 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.