Vladimir Sementsov-Ogievskiy
56f364e6d7
block/dirty-bitmap: add bdrv_remove_persistent_dirty_bitmap
...
Interface for removing persistent bitmap from its storage.
Signed-off-by: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com >
Reviewed-by: Max Reitz <mreitz@redhat.com >
Reviewed-by: John Snow <jsnow@redhat.com >
Message-id: 20170628120530.31251-28-vsementsov@virtuozzo.com
Signed-off-by: Max Reitz <mreitz@redhat.com >
2017-07-11 17:44:59 +02:00
Vladimir Sementsov-Ogievskiy
a3b52535e8
qmp: add x-debug-block-dirty-bitmap-sha256
...
Signed-off-by: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com >
Message-id: 20170628120530.31251-26-vsementsov@virtuozzo.com
Signed-off-by: Max Reitz <mreitz@redhat.com >
2017-07-11 17:44:59 +02:00
Vladimir Sementsov-Ogievskiy
3dd10a06d1
block/dirty-bitmap: add bdrv_dirty_bitmap_next()
...
Signed-off-by: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com >
Reviewed-by: Max Reitz <mreitz@redhat.com >
Reviewed-by: John Snow <jsnow@redhat.com >
Message-id: 20170628120530.31251-19-vsementsov@virtuozzo.com
Signed-off-by: Max Reitz <mreitz@redhat.com >
2017-07-11 17:44:58 +02:00
Vladimir Sementsov-Ogievskiy
a88b179fdb
block: introduce persistent dirty bitmaps
...
New field BdrvDirtyBitmap.persistent means, that bitmap should be saved
by format driver in .bdrv_close and .bdrv_inactivate. No format driver
supports it for now.
Signed-off-by: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com >
Message-id: 20170628120530.31251-18-vsementsov@virtuozzo.com
[mreitz: Fixed indentation]
Signed-off-by: Max Reitz <mreitz@redhat.com >
2017-07-11 17:44:58 +02:00
Vladimir Sementsov-Ogievskiy
a0319aacd4
block/dirty-bitmap: add autoload field to BdrvDirtyBitmap
...
Mirror AUTO flag from Qcow2 bitmap in BdrvDirtyBitmap. This will be
needed in future, to save this flag back to Qcow2 for persistent
bitmaps.
Signed-off-by: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com >
Message-id: 20170628120530.31251-16-vsementsov@virtuozzo.com
Signed-off-by: Max Reitz <mreitz@redhat.com >
2017-07-11 17:44:58 +02:00
Vladimir Sementsov-Ogievskiy
d6883bc968
block/dirty-bitmap: add readonly field to BdrvDirtyBitmap
...
It will be needed in following commits for persistent bitmaps.
If bitmap is loaded from read-only storage (and we can't mark it
"in use" in this storage) corresponding BdrvDirtyBitmap should be
read-only.
Signed-off-by: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com >
Message-id: 20170628120530.31251-11-vsementsov@virtuozzo.com
Signed-off-by: Max Reitz <mreitz@redhat.com >
2017-07-11 17:44:58 +02:00
Vladimir Sementsov-Ogievskiy
6bdc8b719a
block/dirty-bitmap: add deserialize_ones func
...
Add bdrv_dirty_bitmap_deserialize_ones() function, which is needed for
qcow2 bitmap loading, to handle unallocated bitmap parts, marked as
all-ones.
Signed-off-by: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com >
Reviewed-by: Kevin Wolf <kwolf@redhat.com >
Reviewed-by: John Snow <jsnow@redhat.com >
Message-id: 20170628120530.31251-7-vsementsov@virtuozzo.com
Signed-off-by: Max Reitz <mreitz@redhat.com >
2017-07-11 17:44:57 +02:00
Vladimir Sementsov-Ogievskiy
ba06ff1a5c
block: fix bdrv_dirty_bitmap_granularity signature
...
Make getter signature const-correct. This allows other functions with
const dirty bitmap parameter use bdrv_dirty_bitmap_granularity().
Signed-off-by: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com >
Reviewed-by: Eric Blake <eblake@redhat.com >
Reviewed-by: John Snow <jsnow@redhat.com >
Reviewed-by: Kevin Wolf <kwolf@redhat.com >
Message-id: 20170628120530.31251-6-vsementsov@virtuozzo.com
Signed-off-by: Max Reitz <mreitz@redhat.com >
2017-07-11 17:44:57 +02:00
Paolo Bonzini
b64bd51efa
block: protect modification of dirty bitmaps with a mutex
...
Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com >
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com >
Message-Id: <20170605123908.18777-17-pbonzini@redhat.com >
Signed-off-by: Fam Zheng <famz@redhat.com >
2017-06-16 07:55:00 +08:00
Fam Zheng
6d3f4049ba
block: More operations for meta dirty bitmap
...
Callers can create an iterator of meta bitmap with
bdrv_dirty_meta_iter_new(), then use the bdrv_dirty_iter_* operations on
it. Meta iterators are also counted by bitmap->active_iterators.
Also add a couple of functions to retrieve granularity and count.
Signed-off-by: Fam Zheng <famz@redhat.com >
Reviewed-by: Max Reitz <mreitz@redhat.com >
Signed-off-by: John Snow <jsnow@redhat.com >
Message-id: 1476395910-8697-11-git-send-email-jsnow@redhat.com
Signed-off-by: Max Reitz <mreitz@redhat.com >
2016-10-24 17:56:07 +02:00
Vladimir Sementsov-Ogievskiy
882c36f590
block: BdrvDirtyBitmap serialization interface
...
Several functions to provide necessary access to BdrvDirtyBitmap for
block-migration.c
Signed-off-by: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com >
[Add the "finish" parameters. - Fam]
Signed-off-by: Fam Zheng <famz@redhat.com >
Reviewed-by: John Snow <jsnow@redhat.com >
Reviewed-by: Max Reitz <mreitz@redhat.com >
Signed-off-by: John Snow <jsnow@redhat.com >
Message-id: 1476395910-8697-9-git-send-email-jsnow@redhat.com
Signed-off-by: Max Reitz <mreitz@redhat.com >
2016-10-24 17:56:07 +02:00
Fam Zheng
15891fac7d
block: Add two dirty bitmap getters
...
For dirty bitmap users to get the size and the name of a
BdrvDirtyBitmap.
Signed-off-by: Fam Zheng <famz@redhat.com >
Reviewed-by: John Snow <jsnow@redhat.com >
Reviewed-by: Max Reitz <mreitz@redhat.com >
Signed-off-by: John Snow <jsnow@redhat.com >
Message-id: 1476395910-8697-6-git-send-email-jsnow@redhat.com
Signed-off-by: Max Reitz <mreitz@redhat.com >
2016-10-24 17:56:07 +02:00
Fam Zheng
fb933437de
block: Support meta dirty bitmap
...
The added group of operations enables tracking of the changed bits in
the dirty bitmap.
Signed-off-by: Fam Zheng <famz@redhat.com >
Reviewed-by: Max Reitz <mreitz@redhat.com >
Signed-off-by: John Snow <jsnow@redhat.com >
Message-id: 1476395910-8697-5-git-send-email-jsnow@redhat.com
Signed-off-by: Max Reitz <mreitz@redhat.com >
2016-10-24 17:56:07 +02:00
Fam Zheng
dc162c8e4f
block: Hide HBitmap in block dirty bitmap interface
...
HBitmap is an implementation detail of block dirty bitmap that should be hidden
from users. Introduce a BdrvDirtyBitmapIter to encapsulate the underlying
HBitmapIter.
A small difference in the interface is, before, an HBitmapIter is initialized
in place, now the new BdrvDirtyBitmapIter must be dynamically allocated because
the structure definition is in block/dirty-bitmap.c.
Two current users are converted too.
Signed-off-by: Fam Zheng <famz@redhat.com >
Reviewed-by: Max Reitz <mreitz@redhat.com >
Signed-off-by: John Snow <jsnow@redhat.com >
Message-id: 1476395910-8697-2-git-send-email-jsnow@redhat.com
Signed-off-by: Max Reitz <mreitz@redhat.com >
2016-10-24 17:56:07 +02:00
Denis V. Lunev
6d07859926
dirty-bitmap: operate with int64_t amount
...
Underlying HBitmap operates even with uint64_t. Thus this change is safe.
This would be useful f.e. to mark entire bitmap dirty in one call.
Signed-off-by: Denis V. Lunev <den@openvz.org >
Reviewed-by: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com >
Reviewed-by: Eric Blake <eblake@redhat.com >
Reviewed-by: John Snow <jsnow@redhat.com >
Reviewed-by: Fam Zheng <famz@redhat.com >
Message-id: 1468503209-19498-2-git-send-email-den@openvz.org
CC: Stefan Hajnoczi <stefanha@redhat.com >
CC: Kevin Wolf <kwolf@redhat.com >
CC: Max Reitz <mreitz@redhat.com >
CC: Jeff Cody <jcody@redhat.com >
Signed-off-by: Jeff Cody <jcody@redhat.com >
2016-07-19 16:54:46 -04:00
Fam Zheng
ebab225910
block: Move block dirty bitmap code to separate files
...
The only code change is making bdrv_dirty_bitmap_truncate public. It is
used in block.c.
Also two long lines (bdrv_get_dirty) are wrapped.
Signed-off-by: Fam Zheng <famz@redhat.com >
Reviewed-by: John Snow <jsnow@redhat.com >
Message-id: 1457412306-18940-5-git-send-email-famz@redhat.com
Signed-off-by: Max Reitz <mreitz@redhat.com >
2016-03-14 17:35:05 +01:00