From: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
To: Fam Zheng <famz@redhat.com>, qemu-devel@nongnu.org
Cc: Kevin Wolf <kwolf@redhat.com>, Jeff Cody <jcody@redhat.com>,
jsnow@redhat.com, qemu-block@nongnu.org
Subject: Re: [Qemu-devel] [PATCH v2 00/13] Dirty bitmap changes for migration/persistence work
Date: Thu, 21 Jan 2016 13:41:40 +0300 [thread overview]
Message-ID: <56A0B5E4.8070003@virtuozzo.com> (raw)
In-Reply-To: <1453270306-16608-1-git-send-email-famz@redhat.com>
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.
next prev parent reply other threads:[~2016-01-21 10:41 UTC|newest]
Thread overview: 42+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-01-20 6:11 [Qemu-devel] [PATCH v2 00/13] Dirty bitmap changes for migration/persistence work Fam Zheng
2016-01-20 6:11 ` [Qemu-devel] [PATCH v2 01/13] backup: Use Bitmap to replace "s->bitmap" Fam Zheng
2016-01-20 6:11 ` [Qemu-devel] [PATCH v2 02/13] typedefs: Add BdrvDirtyBitmap Fam Zheng
2016-01-20 16:56 ` Eric Blake
2016-01-21 3:05 ` Fam Zheng
2016-01-25 20:37 ` John Snow
2016-01-20 6:11 ` [Qemu-devel] [PATCH v2 03/13] block: Move block dirty bitmap code to separate files Fam Zheng
2016-01-22 9:13 ` Vladimir Sementsov-Ogievskiy
2016-01-20 6:11 ` [Qemu-devel] [PATCH v2 04/13] block: Remove unused typedef of BlockDriverDirtyHandler Fam Zheng
2016-01-20 6:11 ` [Qemu-devel] [PATCH v2 05/13] block: Hide HBitmap in block dirty bitmap interface Fam Zheng
2016-01-26 16:02 ` Vladimir Sementsov-Ogievskiy
2016-02-27 8:30 ` Fam Zheng
2016-01-20 6:11 ` [Qemu-devel] [PATCH v2 06/13] HBitmap: Introduce "meta" bitmap to track bit changes Fam Zheng
2016-01-25 22:02 ` John Snow
2016-01-20 6:11 ` [Qemu-devel] [PATCH v2 07/13] tests: Add test code for meta bitmap Fam Zheng
2016-01-20 6:11 ` [Qemu-devel] [PATCH v2 08/13] block: Support meta dirty bitmap Fam Zheng
2016-01-22 11:34 ` Vladimir Sementsov-Ogievskiy
2016-01-26 4:31 ` Fam Zheng
2016-01-22 11:58 ` Vladimir Sementsov-Ogievskiy
2016-01-22 12:05 ` Vladimir Sementsov-Ogievskiy
2016-01-26 6:25 ` Fam Zheng
2016-01-26 7:49 ` Vladimir Sementsov-Ogievskiy
2016-01-26 8:23 ` Fam Zheng
2016-01-25 22:16 ` John Snow
2016-01-20 6:11 ` [Qemu-devel] [PATCH v2 09/13] block: Add two dirty bitmap getters Fam Zheng
2016-01-22 11:45 ` Vladimir Sementsov-Ogievskiy
2016-01-26 4:19 ` Fam Zheng
2016-01-20 6:11 ` [Qemu-devel] [PATCH v2 10/13] block: Assert that bdrv_release_dirty_bitmap succeeded Fam Zheng
2016-01-20 6:11 ` [Qemu-devel] [PATCH v2 11/13] hbitmap: serialization Fam Zheng
2016-01-26 17:01 ` John Snow
2016-02-27 8:55 ` Fam Zheng
2016-01-20 6:11 ` [Qemu-devel] [PATCH v2 12/13] block: BdrvDirtyBitmap serialization interface Fam Zheng
2016-01-26 17:07 ` John Snow
2016-01-20 6:11 ` [Qemu-devel] [PATCH v2 13/13] tests: Add test code for hbitmap serialization Fam Zheng
2016-01-26 17:10 ` John Snow
2016-01-20 16:13 ` [Qemu-devel] [PATCH v2 00/13] Dirty bitmap changes for migration/persistence work Vladimir Sementsov-Ogievskiy
2016-01-22 12:07 ` Vladimir Sementsov-Ogievskiy
2016-01-21 10:41 ` Vladimir Sementsov-Ogievskiy [this message]
2016-01-21 13:03 ` Fam Zheng
2016-01-26 7:26 ` [Qemu-devel] [PATCH v2 14/13] block: More operations for meta dirty bitmap Fam Zheng
2016-01-27 14:57 ` Vladimir Sementsov-Ogievskiy
2016-02-27 8:35 ` Fam Zheng
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=56A0B5E4.8070003@virtuozzo.com \
--to=vsementsov@virtuozzo.com \
--cc=famz@redhat.com \
--cc=jcody@redhat.com \
--cc=jsnow@redhat.com \
--cc=kwolf@redhat.com \
--cc=qemu-block@nongnu.org \
--cc=qemu-devel@nongnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.