From: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
To: Fam Zheng <famz@redhat.com>, qemu-devel@nongnu.org
Cc: Kevin Wolf <kwolf@redhat.com>,
pbonzini@redhat.com, jsnow@redhat.com, qemu-block@nongnu.org,
Stefan Hajnoczi <stefanha@redhat.com>
Subject: Re: [Qemu-devel] [PATCH RFC for-2.6 0/3] block: Add meta dirty bitmap for migration/persistence
Date: Mon, 7 Dec 2015 17:19:13 +0300 [thread overview]
Message-ID: <56659561.4070709@virtuozzo.com> (raw)
In-Reply-To: <1449467995-18793-1-git-send-email-famz@redhat.com>
On 07.12.2015 08:59, Fam Zheng wrote:
> Vladimir,
>
> This is what I propose to implement meta bitmap. It's implemented in the
> HBitmap level to be more efficient, and the interface slightly varies too.
What is the benefit?
Hbitmap usage:
1) BdrvDirtyBitmap - need meta
2) BackupBlockJob - doesn't need meta
3) BlockDirtyBitmapState - doesn't need meta
4) now I'm working on series for parallels format and I use HBitmap to
mark allocated/free clusters.. - doesn't need meta
5) your meta hbitmap =) - doesn't need meta..
So, what is the benefit of moving this functionality to parent class?
(Which is complicated without it)..
However, I'm not really against, except my comment to the first patch.
PS:
Actually I don't like HBitmap - BdrvDirtyBitmap..
- No implementation without granularity
I need HBitmap without granularity for my needs and have to use
granularity=0. If there was HBitmap without granularity some operations
can be faster - for example, finding next/previous/last zeros, jumping
by words not by bits..
- It is not sparse. Empty bitmap occupies lots of ram.
- different granularity units for HBitmap and BdrvDirtyBitmap
- different layers with/without granularity in hbitmap.c
- HBitmap with non-zero granularity doesn't know its size (only rounded
up to granularity)
- necessity of writing wrappers like
bdrv_dirty_bitmap_do_something(...)
{
hbitmap_do_something(...)
}
-- Yes, I understand that this is inevitably, but I just don't like it..
- BdrvDirtyBitmap is defined in block.c.. I think, it should have its
own .c file.
>
> I'd like to use these operations to make dirty bitmap persistence more
> efficient too: unchanged dirty bits don't need to be flushed to disk. So I'm
> posting this as a separate series for a common base for both sides.
>
> Posting as RFC as 2.6 dev phase is just starting, we can still tweak the
> interface and/or implementation to fit the need.
>
> Fam Zheng (3):
> HBitmap: Introduce "meta" bitmap to track bit changes
> tests: Add test code for meta bitmap
> block: Support meta dirty bitmap
>
> block.c | 46 ++++++++++++++++++++++++++++++-
> block/mirror.c | 3 +-
> blockdev.c | 3 +-
> include/block/block.h | 11 ++++++++
> include/qemu/hbitmap.h | 7 +++++
> migration/block.c | 2 +-
> tests/test-hbitmap.c | 74 ++++++++++++++++++++++++++++++++++++++++++++++++++
> util/hbitmap.c | 22 +++++++++++++++
> 8 files changed, 164 insertions(+), 4 deletions(-)
>
--
Best regards,
Vladimir
* now, @virtuozzo.com instead of @parallels.com. Sorry for this inconvenience.
next prev parent reply other threads:[~2015-12-07 14:19 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-12-07 5:59 [Qemu-devel] [PATCH RFC for-2.6 0/3] block: Add meta dirty bitmap for migration/persistence Fam Zheng
2015-12-07 5:59 ` [Qemu-devel] [PATCH RFC for-2.6 1/3] HBitmap: Introduce "meta" bitmap to track bit changes Fam Zheng
2015-12-07 13:32 ` Vladimir Sementsov-Ogievskiy
2015-12-08 1:31 ` Fam Zheng
2015-12-09 11:51 ` Vladimir Sementsov-Ogievskiy
2015-12-30 10:53 ` Vladimir Sementsov-Ogievskiy
2015-12-30 11:07 ` Fam Zheng
2015-12-30 11:26 ` Vladimir Sementsov-Ogievskiy
2016-01-21 10:58 ` Vladimir Sementsov-Ogievskiy
2016-01-22 3:10 ` Fam Zheng
2015-12-07 5:59 ` [Qemu-devel] [PATCH RFC for-2.6 2/3] tests: Add test code for meta bitmap Fam Zheng
2015-12-07 5:59 ` [Qemu-devel] [PATCH RFC for-2.6 3/3] block: Support meta dirty bitmap Fam Zheng
2015-12-07 14:19 ` Vladimir Sementsov-Ogievskiy [this message]
2015-12-08 1:42 ` [Qemu-devel] [PATCH RFC for-2.6 0/3] block: Add meta dirty bitmap for migration/persistence Fam Zheng
2015-12-09 11:46 ` Vladimir Sementsov-Ogievskiy
2015-12-07 23:47 ` John Snow
2015-12-08 1:36 ` Fam Zheng
2015-12-09 11:57 ` Vladimir Sementsov-Ogievskiy
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=56659561.4070709@virtuozzo.com \
--to=vsementsov@virtuozzo.com \
--cc=famz@redhat.com \
--cc=jsnow@redhat.com \
--cc=kwolf@redhat.com \
--cc=pbonzini@redhat.com \
--cc=qemu-block@nongnu.org \
--cc=qemu-devel@nongnu.org \
--cc=stefanha@redhat.com \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).