[Qemu-block] [PATCH v16 04/22] tests: add hbitmap iter test

2017-02-25 Thread Vladimir Sementsov-Ogievskiy
Test that hbitmap iter is resistant to bitmap resetting. Signed-off-by: Vladimir Sementsov-Ogievskiy <vsement...@virtuozzo.com> Signed-off-by: Denis V. Lunev <d...@openvz.org> Reviewed-by: Max Reitz <mre...@redhat.com> Reviewed-by: John Snow <js...@redhat.com> --- t

[Qemu-block] [PATCH v16 01/22] specs/qcow2: fix bitmap granularity qemu-specific note

2017-02-25 Thread Vladimir Sementsov-Ogievskiy
Signed-off-by: Vladimir Sementsov-Ogievskiy <vsement...@virtuozzo.com> Reviewed-by: John Snow <js...@redhat.com> --- docs/specs/qcow2.txt | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/docs/specs/qcow2.txt b/docs/specs/qcow2.txt index 80cdfd0e91..dda53

[Qemu-block] [PATCH v16 09/22] qcow2: autoloading dirty bitmaps

2017-02-25 Thread Vladimir Sementsov-Ogievskiy
Auto loading bitmaps are bitmaps in Qcow2, with the AUTO flag set. They are loaded when the image is opened and become BdrvDirtyBitmaps for the corresponding drive. Extra data in bitmaps is not supported for now. Signed-off-by: Vladimir Sementsov-Ogievskiy <vsement...@virtuozzo.com> ---

[Qemu-block] [PATCH v16 03/22] hbitmap: improve dirty iter

2017-02-25 Thread Vladimir Sementsov-Ogievskiy
Make dirty iter resistant to resetting bits in corresponding HBitmap. Signed-off-by: Vladimir Sementsov-Ogievskiy <vsement...@virtuozzo.com> Reviewed-by: Max Reitz <mre...@redhat.com> Reviewed-by: John Snow <js...@redhat.com> --- include/qemu/hbitmap.h | 26 --

Re: [Qemu-block] [PATCH 12/17] migration: add postcopy migration of dirty bitmaps

2017-02-25 Thread Vladimir Sementsov-Ogievskiy
24.02.2017 16:26, Dr. David Alan Gilbert wrote: * Vladimir Sementsov-Ogievskiy (vsement...@virtuozzo.com) wrote: Postcopy migration of dirty bitmaps. Only named dirty bitmaps, associated with root nodes and non-root named nodes are migrated. If destination qemu is already containing a dirty

[Qemu-block] [PATCH v16 19/22] iotests: test qcow2 persistent dirty bitmap

2017-02-25 Thread Vladimir Sementsov-Ogievskiy
Signed-off-by: Vladimir Sementsov-Ogievskiy <vsement...@virtuozzo.com> Reviewed-by: Max Reitz <mre...@redhat.com> Reviewed-by: John Snow <js...@redhat.com> --- tests/qemu-iotests/165 | 89 ++ tests/qemu-iotests/165.out | 5 +++

[Qemu-block] [PATCH v16 10/22] block/dirty-bitmap: add autoload field to BdrvDirtyBitmap

2017-02-25 Thread Vladimir Sementsov-Ogievskiy
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 <vsement...@virtuozzo.com> Reviewed-by: Max Reitz <mre...@redhat.com> Reviewed-by: John Snow <j

[Qemu-block] [PATCH v16 16/22] qmp: add persistent flag to block-dirty-bitmap-add

2017-02-25 Thread Vladimir Sementsov-Ogievskiy
Add optional 'persistent' flag to qmp command block-dirty-bitmap-add. Default is false. Signed-off-by: Vladimir Sementsov-Ogievskiy <vsement...@virtuozzo.com> Signed-off-by: Denis V. Lunev <d...@openvz.org> Reviewed-by: Max Reitz <mre...@redhat.com> Reviewed-by: John Snow

[Qemu-block] [PATCH v16 14/22] block: add bdrv_can_store_new_dirty_bitmap

2017-02-25 Thread Vladimir Sementsov-Ogievskiy
This will be needed to check some restrictions before making bitmap persistent in qmp-block-dirty-bitmap-add (this functionality will be added by future patch) Signed-off-by: Vladimir Sementsov-Ogievskiy <vsement...@virtuozzo.com> Reviewed-by: Max Reitz <mre...@redhat.com> Reviewed-b

[Qemu-block] [PATCH v16 20/22] block/dirty-bitmap: add bdrv_remove_persistent_dirty_bitmap

2017-02-25 Thread Vladimir Sementsov-Ogievskiy
Interface for removing persistent bitmap from its storage. Signed-off-by: Vladimir Sementsov-Ogievskiy <vsement...@virtuozzo.com> Reviewed-by: Max Reitz <mre...@redhat.com> Reviewed-by: John Snow <js...@redhat.com> --- block/dirty-bitmap.c | 18 +++

[Qemu-block] [PATCH v16 18/22] qmp: add x-debug-block-dirty-bitmap-sha256

2017-02-25 Thread Vladimir Sementsov-Ogievskiy
Signed-off-by: Vladimir Sementsov-Ogievskiy <vsement...@virtuozzo.com> Reviewed-by: Max Reitz <mre...@redhat.com> Reviewed-by: John Snow <js...@redhat.com> --- block/dirty-bitmap.c | 5 + blockdev.c | 29 + include/bl

[Qemu-block] [PATCH v16 13/22] qcow2: add persistent dirty bitmaps support

2017-02-25 Thread Vladimir Sementsov-Ogievskiy
Store persistent dirty bitmaps in qcow2 image. Signed-off-by: Vladimir Sementsov-Ogievskiy <vsement...@virtuozzo.com> --- block.c | 6 +- block/qcow2-bitmap.c | 473 +++ block/qcow2.c| 9 + block/qcow2.h|

[Qemu-block] [PATCH v16 06/22] block/dirty-bitmap: add deserialize_ones func

2017-02-25 Thread Vladimir Sementsov-Ogievskiy
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 <vsement...@virtuozzo.com> Reviewed-by: Kevin Wolf <kw...@redhat.com> Reviewed-by: J

[Qemu-block] [PATCH v16 00/22] qcow2: persistent dirty bitmaps

2017-02-25 Thread Vladimir Sementsov-Ogievskiy
nvz.org/users/vsementsov/repos/qemu/browse?at=refs%2Ftags%2Fqcow2-bitmap-v6 based on block-next (https://github.com/XanClic/qemu/commits/block-next) There are a lot of changes, reorderings and additions in comparement with v5. One principal thing: now bitmaps are removed from image after loading

[Qemu-block] [PATCH v16 08/22] qcow2: add bitmaps extension

2017-02-25 Thread Vladimir Sementsov-Ogievskiy
-by: Vladimir Sementsov-Ogievskiy <vsement...@virtuozzo.com> --- block/Makefile.objs| 2 +- block/qcow2-bitmap.c | 439 + block/qcow2-refcount.c | 6 + block/qcow2.c | 124 +- block/qcow2.h | 27 +++ 5

[Qemu-block] [PATCH v16 22/22] qmp: block-dirty-bitmap-remove: remove persistent

2017-02-25 Thread Vladimir Sementsov-Ogievskiy
Remove persistent bitmap from the storage on block-dirty-bitmap-remove. Signed-off-by: Vladimir Sementsov-Ogievskiy <vsement...@virtuozzo.com> Reviewed-by: Max Reitz <mre...@redhat.com> Reviewed-by: John Snow <js...@redhat.com> --- blockdev.c | 10 ++ 1 file chan

[Qemu-block] [PATCH v16 05/22] block: fix bdrv_dirty_bitmap_granularity signature

2017-02-25 Thread Vladimir Sementsov-Ogievskiy
d-off-by: Vladimir Sementsov-Ogievskiy <vsement...@virtuozzo.com> --- block/dirty-bitmap.c | 2 +- include/block/dirty-bitmap.h | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/block/dirty-bitmap.c b/block/dirty-bitmap.c index 519737c8d3..186941cfc3 100644 --- a/block/di

[Qemu-block] [PATCH v16 21/22] qcow2: add .bdrv_remove_persistent_dirty_bitmap

2017-02-25 Thread Vladimir Sementsov-Ogievskiy
Realize .bdrv_remove_persistent_dirty_bitmap interface. Signed-off-by: Vladimir Sementsov-Ogievskiy <vsement...@virtuozzo.com> Reviewed-by: Max Reitz <mre...@redhat.com> Reviewed-by: John Snow <js...@redhat.com> --- block/qcow2-bitmap.c | 41

[Qemu-block] [PATCH v16 15/22] qcow2: add .bdrv_can_store_new_dirty_bitmap

2017-02-25 Thread Vladimir Sementsov-Ogievskiy
Realize .bdrv_can_store_new_dirty_bitmap interface. Signed-off-by: Vladimir Sementsov-Ogievskiy <vsement...@virtuozzo.com> Reviewed-by: John Snow <js...@redhat.com> --- block/qcow2-bitmap.c | 51 +++ block/qcow2.c| 2 ++ b

[Qemu-block] [PATCH 0/4] some migration bugs

2017-02-25 Thread Vladimir Sementsov-Ogievskiy
- looks like it should be a separate run-state, not only bdrv-flag. Situation with migration state, which is global, but is set/reset/changed in not controlled manner is not very good too.. Vladimir Sementsov-Ogievskiy (4): iotests: add migration corner cases test qmp-cont: invalidate

[Qemu-block] [PATCH 4/4] migration: fix use-after-free of to_dst_file

2017-02-25 Thread Vladimir Sementsov-Ogievskiy
hmp_savevm calls qemu_savevm_state(f), which sets to_dst_file=f in global migration state. Then hmp_savevm closes f (g_free called). Next access to to_dst_file in migration state (for example, qmp_migrate_set_speed) will use it after it was freed. Signed-off-by: Vladimir Sementsov-Ogievskiy

[Qemu-block] [PATCH 1/4] iotests: add migration corner cases test

2017-02-25 Thread Vladimir Sementsov-Ogievskiy
Signed-off-by: Vladimir Sementsov-Ogievskiy <vsement...@virtuozzo.com> --- tests/qemu-iotests/175 | 71 ++ tests/qemu-iotests/175.out | 5 tests/qemu-iotests/group | 1 + 3 files changed, 77 insertions(+) create mode 100644 test

[Qemu-block] [PATCH 2/4] qmp-cont: invalidate on RUN_STATE_PRELAUNCH

2017-02-25 Thread Vladimir Sementsov-Ogievskiy
ned-off-by: Vladimir Sementsov-Ogievskiy <vsement...@virtuozzo.com> --- qmp.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/qmp.c b/qmp.c index dfaabac1a6..e61795d033 100644 --- a/qmp.c +++ b/qmp.c @@ -198,7 +198,8 @@ void qmp_cont(Error **errp) /* Continuing af

[Qemu-block] [PATCH 3/4] savevm: fix savevm after migration

2017-02-25 Thread Vladimir Sementsov-Ogievskiy
After migration all drives are inactive and savevm will fail with qemu-kvm: block/io.c:1406: bdrv_co_do_pwritev: Assertion `!(bs->open_flags & 0x0800)' failed. Signed-off-by: Vladimir Sementsov-Ogievskiy <vsement...@virtuozzo.com> --- block/snapshot.c | 3 ++- migration/

Re: [Qemu-block] [PATCH v15 08/25] block: introduce auto-loading bitmaps

2017-02-17 Thread Vladimir Sementsov-Ogievskiy
17.02.2017 17:24, Kevin Wolf wrote: Am 17.02.2017 um 14:48 hat Denis V. Lunev geschrieben: On 02/17/2017 04:34 PM, Kevin Wolf wrote: Am 17.02.2017 um 14:22 hat Denis V. Lunev geschrieben: But for sure this is bad from the downtime point of view. On migrate you will have to write to the image

[Qemu-block] [PATCH 18/25] qmp: add x-debug-block-dirty-bitmap-sha256

2017-02-14 Thread Vladimir Sementsov-Ogievskiy
Signed-off-by: Vladimir Sementsov-Ogievskiy <vsement...@virtuozzo.com> Reviewed-by: Max Reitz <mre...@redhat.com> --- block/dirty-bitmap.c | 5 + blockdev.c | 29 + include/block/dirty-bitmap.h | 2 ++ include/qemu/hbitmap.

[Qemu-block] [PATCH 02/25] specs/qcow2: do not use wording 'bitmap header'

2017-02-14 Thread Vladimir Sementsov-Ogievskiy
Sementsov-Ogievskiy <vsement...@virtuozzo.com> Reviewed-by: Eric Blake <ebl...@redhat.com> Reviewed-by: John Snow <js...@redhat.com> --- docs/specs/qcow2.txt | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/docs/specs/qcow2.txt b/docs/specs/qcow2.txt index dda53

[Qemu-block] [PATCH 13/25] qcow2: add .bdrv_store_persistent_dirty_bitmaps()

2017-02-14 Thread Vladimir Sementsov-Ogievskiy
Realize block bitmap storing interface, to allow qcow2 images store persistent bitmaps. Signed-off-by: Vladimir Sementsov-Ogievskiy <vsement...@virtuozzo.com> Reviewed-by: Max Reitz <mre...@redhat.com> --- block/qcow2-bitmap.c | 487 ++

[Qemu-block] [PATCH v14 00/24] qcow2: persistent dirty bitmaps

2017-02-14 Thread Vladimir Sementsov-Ogievskiy
om/XanClic/qemu/commits/block-next) There are a lot of changes, reorderings and additions in comparement with v5. One principal thing: now bitmaps are removed from image after loading instead of marking them in_use. It is simpler and we do not need to store superfluous data. Also, we are no more intereste

Re: [Qemu-block] [Qemu-devel] [PATCH 09/24] qcow2: add .bdrv_load_autoloading_dirty_bitmaps

2017-02-14 Thread Vladimir Sementsov-Ogievskiy
11.02.2017 01:51, John Snow wrote: On 02/03/2017 04:40 AM, Vladimir Sementsov-Ogievskiy wrote: Auto loading bitmaps are bitmaps in Qcow2, with the AUTO flag set. They are loaded when the image is opened and become BdrvDirtyBitmaps for the corresponding drive. Extra data in bitmaps

Re: [Qemu-block] [Qemu-devel] [PATCH 11/24] block: introduce persistent dirty bitmaps

2017-02-14 Thread Vladimir Sementsov-Ogievskiy
11.02.2017 02:20, John Snow wrote: On 02/03/2017 04:40 AM, Vladimir Sementsov-Ogievskiy wrote: New field BdrvDirtyBitmap.persistent means, that bitmap should be saved on bdrv_close, using format driver. Format driver should maintain bitmap storing. Signed-off-by: Vladimir Sementsov-Ogievskiy

[Qemu-block] [PATCH 20/25] qcow2-refcount: rename inc_refcounts() and make it public

2017-02-14 Thread Vladimir Sementsov-Ogievskiy
This is needed for the following patch, which will introduce refcounts checking for qcow2 bitmaps. Signed-off-by: Vladimir Sementsov-Ogievskiy <vsement...@virtuozzo.com> Reviewed-by: Max Reitz <mre...@redhat.com> --- block/qcow2-ref

[Qemu-block] [PATCH 08/25] block: introduce auto-loading bitmaps

2017-02-14 Thread Vladimir Sementsov-Ogievskiy
Auto loading bitmaps are bitmaps stored in the disk image, which should be loaded when the image is opened and become BdrvDirtyBitmaps for the corresponding drive. Signed-off-by: Vladimir Sementsov-Ogievskiy <vsement...@virtuozzo.com> Reviewed-by: John Snow <js...@redhat.com> Revi

[Qemu-block] [PATCH 19/25] iotests: test qcow2 persistent dirty bitmap

2017-02-14 Thread Vladimir Sementsov-Ogievskiy
Signed-off-by: Vladimir Sementsov-Ogievskiy <vsement...@virtuozzo.com> Reviewed-by: Max Reitz <mre...@redhat.com> --- tests/qemu-iotests/165 | 89 ++ tests/qemu-iotests/165.out | 5 +++ tests/qemu-iotests/group | 1 + 3 files

[Qemu-block] [PATCH 10/25] block/dirty-bitmap: add autoload field to BdrvDirtyBitmap

2017-02-14 Thread Vladimir Sementsov-Ogievskiy
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 <vsement...@virtuozzo.com> Reviewed-by: Max Reitz <mre...@redhat.com> Reviewed-by: John Snow <j

[Qemu-block] [PATCH 24/25] qmp: block-dirty-bitmap-remove: remove persistent

2017-02-14 Thread Vladimir Sementsov-Ogievskiy
Remove persistent bitmap from the storage on block-dirty-bitmap-remove. Signed-off-by: Vladimir Sementsov-Ogievskiy <vsement...@virtuozzo.com> Reviewed-by: Max Reitz <mre...@redhat.com> --- blockdev.c | 10 ++ 1 file changed, 10 insertions(+) diff --git a/blockdev.c b/bloc

[Qemu-block] [PATCH 07/25] qcow2: add bitmaps extension

2017-02-14 Thread Vladimir Sementsov-Ogievskiy
Add bitmap extension as specified in docs/specs/qcow2.txt. For now, just mirror extension header into Qcow2 state and check constraints. For now, disable image resize if it has bitmaps. It will be fixed later. Signed-off-by: Vladimir Sementsov-Ogievskiy <vsement...@virtuozzo.com> Re

[Qemu-block] [PATCH 25/25] qcow2-bitmap: improve check_constraints_on_bitmap

2017-02-14 Thread Vladimir Sementsov-Ogievskiy
Add detailed error messages. Signed-off-by: Vladimir Sementsov-Ogievskiy <vsement...@virtuozzo.com> --- block/qcow2-bitmap.c | 63 ++-- 1 file changed, 41 insertions(+), 22 deletions(-) diff --git a/block/qcow2-bitmap.c b/block/qcow2-bi

[Qemu-block] [PATCH 12/25] block/dirty-bitmap: add bdrv_dirty_bitmap_next()

2017-02-14 Thread Vladimir Sementsov-Ogievskiy
Signed-off-by: Vladimir Sementsov-Ogievskiy <vsement...@virtuozzo.com> Reviewed-by: Max Reitz <mre...@redhat.com> Reviewed-by: John Snow <js...@redhat.com> --- block/dirty-bitmap.c | 7 +++ include/block/dirty-bitmap.h | 3 +++ 2 files changed, 10 insertions(+)

[Qemu-block] [PATCH 17/25] qmp: add autoload parameter to block-dirty-bitmap-add

2017-02-14 Thread Vladimir Sementsov-Ogievskiy
Optional. Default is false. Signed-off-by: Vladimir Sementsov-Ogievskiy <vsement...@virtuozzo.com> Signed-off-by: Denis V. Lunev <d...@openvz.org> Reviewed-by: Max Reitz <mre...@redhat.com> --- blockdev.c | 18 -- qapi/block-core.json | 6 +- 2

[Qemu-block] [PATCH 23/25] qcow2: add .bdrv_remove_persistent_dirty_bitmap

2017-02-14 Thread Vladimir Sementsov-Ogievskiy
Realize .bdrv_remove_persistent_dirty_bitmap interface. Signed-off-by: Vladimir Sementsov-Ogievskiy <vsement...@virtuozzo.com> Reviewed-by: Max Reitz <mre...@redhat.com> --- block/qcow2-bitmap.c | 41 + block/qcow2.c| 1 + b

[Qemu-block] [PATCH 04/25] tests: add hbitmap iter test

2017-02-14 Thread Vladimir Sementsov-Ogievskiy
Test that hbitmap iter is resistant to bitmap resetting. Signed-off-by: Vladimir Sementsov-Ogievskiy <vsement...@virtuozzo.com> Signed-off-by: Denis V. Lunev <d...@openvz.org> Reviewed-by: Max Reitz <mre...@redhat.com> Reviewed-by: John Snow <js...@redhat.com> --- t

[Qemu-block] [PATCH 03/25] hbitmap: improve dirty iter

2017-02-14 Thread Vladimir Sementsov-Ogievskiy
Make dirty iter resistant to resetting bits in corresponding HBitmap. Signed-off-by: Vladimir Sementsov-Ogievskiy <vsement...@virtuozzo.com> Reviewed-by: Max Reitz <mre...@redhat.com> Reviewed-by: John Snow <js...@redhat.com> --- include/qemu/hbitmap.h | 26 --

[Qemu-block] [PATCH 16/25] qmp: add persistent flag to block-dirty-bitmap-add

2017-02-14 Thread Vladimir Sementsov-Ogievskiy
Add optional 'persistent' flag to qmp command block-dirty-bitmap-add. Default is false. Signed-off-by: Vladimir Sementsov-Ogievskiy <vsement...@virtuozzo.com> Signed-off-by: Denis V. Lunev <d...@openvz.org> Reviewed-by: Max Reitz <mre...@redhat.com> --- blockde

[Qemu-block] [PATCH 09/25] qcow2: add .bdrv_load_autoloading_dirty_bitmaps

2017-02-14 Thread Vladimir Sementsov-Ogievskiy
Auto loading bitmaps are bitmaps in Qcow2, with the AUTO flag set. They are loaded when the image is opened and become BdrvDirtyBitmaps for the corresponding drive. Extra data in bitmaps is not supported for now. Signed-off-by: Vladimir Sementsov-Ogievskiy <vsement...@virtuozzo.com> Re

Re: [Qemu-block] [Qemu-devel] [PATCH 13/24] qcow2: add .bdrv_store_persistent_dirty_bitmaps()

2017-02-14 Thread Vladimir Sementsov-Ogievskiy
14.02.2017 03:38, John Snow wrote: On 02/03/2017 04:40 AM, Vladimir Sementsov-Ogievskiy wrote: Realize block bitmap storing interface, to allow qcow2 images store persistent bitmaps. Signed-off-by: Vladimir Sementsov-Ogievskiy <vsement...@virtuozzo.com> Reviewed-by: Max Reit

[Qemu-block] [PATCH 11/25] block: introduce persistent dirty bitmaps

2017-02-14 Thread Vladimir Sementsov-Ogievskiy
New field BdrvDirtyBitmap.persistent means, that bitmap should be saved on bdrv_close, using format driver. Format driver should maintain bitmap storing. Signed-off-by: Vladimir Sementsov-Ogievskiy <vsement...@virtuozzo.com> Reviewed-by: Max Reitz <mre...@redhat.com> Reviewed-by: J

[Qemu-block] [PATCH 15/25] qcow2: add .bdrv_can_store_new_dirty_bitmap

2017-02-14 Thread Vladimir Sementsov-Ogievskiy
Realize .bdrv_can_store_new_dirty_bitmap interface. Signed-off-by: Vladimir Sementsov-Ogievskiy <vsement...@virtuozzo.com> Reviewed-by: Max Reitz <mre...@redhat.com> --- block/qcow2-bitmap.c | 40 block/qcow2.c| 1 + block/qcow2.h

[Qemu-block] [PATCH 05/25] block: fix bdrv_dirty_bitmap_granularity signature

2017-02-14 Thread Vladimir Sementsov-Ogievskiy
d-off-by: Vladimir Sementsov-Ogievskiy <vsement...@virtuozzo.com> --- block/dirty-bitmap.c | 2 +- include/block/dirty-bitmap.h | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/block/dirty-bitmap.c b/block/dirty-bitmap.c index 519737c..186941c 100644 --- a/block/dirty-bi

[Qemu-block] [PATCH 01/25] specs/qcow2: fix bitmap granularity qemu-specific note

2017-02-14 Thread Vladimir Sementsov-Ogievskiy
Signed-off-by: Vladimir Sementsov-Ogievskiy <vsement...@virtuozzo.com> Reviewed-by: John Snow <js...@redhat.com> --- docs/specs/qcow2.txt | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/docs/specs/qcow2.txt b/docs/specs/qcow2.txt index 80cdfd0..dda53dd 10064

[Qemu-block] [PATCH 14/25] block: add bdrv_can_store_new_dirty_bitmap

2017-02-14 Thread Vladimir Sementsov-Ogievskiy
This will be needed to check some restrictions before making bitmap persistent in qmp-block-dirty-bitmap-add (this functionality will be added by future patch) Signed-off-by: Vladimir Sementsov-Ogievskiy <vsement...@virtuozzo.com> Reviewed-by: Max Reitz <mre...@redhat.com>

[Qemu-block] [PATCH 22/25] block/dirty-bitmap: add bdrv_remove_persistent_dirty_bitmap

2017-02-14 Thread Vladimir Sementsov-Ogievskiy
Interface for removing persistent bitmap from its storage. Signed-off-by: Vladimir Sementsov-Ogievskiy <vsement...@virtuozzo.com> Reviewed-by: Max Reitz <mre...@redhat.com> --- block/dirty-bitmap.c | 18 ++ include/block/block_int.h| 3 +++ include

[Qemu-block] [PATCH 06/25] block/dirty-bitmap: add deserialize_ones func

2017-02-14 Thread Vladimir Sementsov-Ogievskiy
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 <vsement...@virtuozzo.com> Reviewed-by: Kevin Wolf <kw...@redhat.com> Reviewed-by: J

[Qemu-block] [PATCH 21/25] qcow2-bitmap: refcounts

2017-02-14 Thread Vladimir Sementsov-Ogievskiy
Calculate refcounts for qcow2 bitmaps. It is needed for qcow2's qemu-img check implementation. Signed-off-by: Vladimir Sementsov-Ogievskiy <vsement...@virtuozzo.com> Reviewed-by: Max Reitz <mre...@redhat.com> --- block/qcow2-bit

[Qemu-block] [PATCH v15 15/25] qcow2: add .bdrv_can_store_new_dirty_bitmap

2017-02-15 Thread Vladimir Sementsov-Ogievskiy
Realize .bdrv_can_store_new_dirty_bitmap interface. Signed-off-by: Vladimir Sementsov-Ogievskiy <vsement...@virtuozzo.com> --- block/qcow2-bitmap.c | 52 block/qcow2.c| 1 + block/qcow2.h| 4 3 files chang

[Qemu-block] [PATCH v15 24/25] qmp: block-dirty-bitmap-remove: remove persistent

2017-02-15 Thread Vladimir Sementsov-Ogievskiy
Remove persistent bitmap from the storage on block-dirty-bitmap-remove. Signed-off-by: Vladimir Sementsov-Ogievskiy <vsement...@virtuozzo.com> Reviewed-by: Max Reitz <mre...@redhat.com> Reviewed-by: John Snow <js...@redhat.com> --- blockdev.c | 10 ++ 1 file chan

[Qemu-block] [PATCH v15 06/25] block/dirty-bitmap: add deserialize_ones func

2017-02-15 Thread Vladimir Sementsov-Ogievskiy
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 <vsement...@virtuozzo.com> Reviewed-by: Kevin Wolf <kw...@redhat.com> Reviewed-by: J

[Qemu-block] [PATCH v15 25/25] qcow2-bitmap: improve check_constraints_on_bitmap

2017-02-15 Thread Vladimir Sementsov-Ogievskiy
Add detailed error messages. Signed-off-by: Vladimir Sementsov-Ogievskiy <vsement...@virtuozzo.com> --- block/qcow2-bitmap.c | 48 ++-- 1 file changed, 34 insertions(+), 14 deletions(-) diff --git a/block/qcow2-bitmap.c b/block/qcow2-bitmap.c

[Qemu-block] [PATCH v15 04/25] tests: add hbitmap iter test

2017-02-15 Thread Vladimir Sementsov-Ogievskiy
Test that hbitmap iter is resistant to bitmap resetting. Signed-off-by: Vladimir Sementsov-Ogievskiy <vsement...@virtuozzo.com> Signed-off-by: Denis V. Lunev <d...@openvz.org> Reviewed-by: Max Reitz <mre...@redhat.com> Reviewed-by: John Snow <js...@redhat.com> --- t

[Qemu-block] [PATCH v15 07/25] qcow2: add bitmaps extension

2017-02-15 Thread Vladimir Sementsov-Ogievskiy
Add bitmap extension as specified in docs/specs/qcow2.txt. For now, just mirror extension header into Qcow2 state and check constraints. For now, disable image resize if it has bitmaps. It will be fixed later. Signed-off-by: Vladimir Sementsov-Ogievskiy <vsement...@virtuozzo.com> Re

[Qemu-block] [PATCH v15 09/25] qcow2: add .bdrv_load_autoloading_dirty_bitmaps

2017-02-15 Thread Vladimir Sementsov-Ogievskiy
Auto loading bitmaps are bitmaps in Qcow2, with the AUTO flag set. They are loaded when the image is opened and become BdrvDirtyBitmaps for the corresponding drive. Extra data in bitmaps is not supported for now. Signed-off-by: Vladimir Sementsov-Ogievskiy <vsement...@virtuozzo.com> Re

[Qemu-block] [PATCH v15 12/25] block/dirty-bitmap: add bdrv_dirty_bitmap_next()

2017-02-15 Thread Vladimir Sementsov-Ogievskiy
Signed-off-by: Vladimir Sementsov-Ogievskiy <vsement...@virtuozzo.com> Reviewed-by: Max Reitz <mre...@redhat.com> Reviewed-by: John Snow <js...@redhat.com> --- block/dirty-bitmap.c | 7 +++ include/block/dirty-bitmap.h | 3 +++ 2 files changed, 10 insertions(+)

[Qemu-block] [PATCH v15 22/25] block/dirty-bitmap: add bdrv_remove_persistent_dirty_bitmap

2017-02-15 Thread Vladimir Sementsov-Ogievskiy
Interface for removing persistent bitmap from its storage. Signed-off-by: Vladimir Sementsov-Ogievskiy <vsement...@virtuozzo.com> Reviewed-by: Max Reitz <mre...@redhat.com> Reviewed-by: John Snow <js...@redhat.com> --- block/dirty-bitmap.c | 18 +++

[Qemu-block] [PATCH v15 02/25] specs/qcow2: do not use wording 'bitmap header'

2017-02-15 Thread Vladimir Sementsov-Ogievskiy
Sementsov-Ogievskiy <vsement...@virtuozzo.com> Reviewed-by: Eric Blake <ebl...@redhat.com> Reviewed-by: John Snow <js...@redhat.com> --- docs/specs/qcow2.txt | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/docs/specs/qcow2.txt b/docs/specs/qcow2.txt index dda53

[Qemu-block] [PATCH v15 18/25] qmp: add x-debug-block-dirty-bitmap-sha256

2017-02-15 Thread Vladimir Sementsov-Ogievskiy
Signed-off-by: Vladimir Sementsov-Ogievskiy <vsement...@virtuozzo.com> Reviewed-by: Max Reitz <mre...@redhat.com> Reviewed-by: John Snow <js...@redhat.com> --- block/dirty-bitmap.c | 5 + blockdev.c | 29 + include/bl

[Qemu-block] [PATCH v15 19/25] iotests: test qcow2 persistent dirty bitmap

2017-02-15 Thread Vladimir Sementsov-Ogievskiy
Signed-off-by: Vladimir Sementsov-Ogievskiy <vsement...@virtuozzo.com> Reviewed-by: Max Reitz <mre...@redhat.com> Reviewed-by: John Snow <js...@redhat.com> --- tests/qemu-iotests/165 | 89 ++ tests/qemu-iotests/165.out | 5 +++

[Qemu-block] [PATCH v15 10/25] block/dirty-bitmap: add autoload field to BdrvDirtyBitmap

2017-02-15 Thread Vladimir Sementsov-Ogievskiy
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 <vsement...@virtuozzo.com> Reviewed-by: Max Reitz <mre...@redhat.com> Reviewed-by: John Snow <j

[Qemu-block] [PATCH v15 13/25] qcow2: add .bdrv_store_persistent_dirty_bitmaps()

2017-02-15 Thread Vladimir Sementsov-Ogievskiy
Realize block bitmap storing interface, to allow qcow2 images store persistent bitmaps. Signed-off-by: Vladimir Sementsov-Ogievskiy <vsement...@virtuozzo.com> Reviewed-by: Max Reitz <mre...@redhat.com> Reviewed-by: John Snow <js...@redhat.com> --- block/qc

[Qemu-block] [PATCH v15 00/25] qcow2: persistent dirty bitmaps

2017-02-15 Thread Vladimir Sementsov-Ogievskiy
/block-next) There are a lot of changes, reorderings and additions in comparement with v5. One principal thing: now bitmaps are removed from image after loading instead of marking them in_use. It is simpler and we do not need to store superfluous data. Also, we are no more interested in command line inter

[Qemu-block] [PATCH v15 01/25] specs/qcow2: fix bitmap granularity qemu-specific note

2017-02-15 Thread Vladimir Sementsov-Ogievskiy
Signed-off-by: Vladimir Sementsov-Ogievskiy <vsement...@virtuozzo.com> Reviewed-by: John Snow <js...@redhat.com> --- docs/specs/qcow2.txt | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/docs/specs/qcow2.txt b/docs/specs/qcow2.txt index 80cdfd0..dda53dd 10064

[Qemu-block] [PATCH v15 21/25] qcow2-bitmap: refcounts

2017-02-15 Thread Vladimir Sementsov-Ogievskiy
Calculate refcounts for qcow2 bitmaps. It is needed for qcow2's qemu-img check implementation. Signed-off-by: Vladimir Sementsov-Ogievskiy <vsement...@virtuozzo.com> Reviewed-by: Max Reitz <mre...@redhat.com> Reviewed-by: John Snow <js...@redhat.com> --- block/qco

[Qemu-block] [PATCH v15 23/25] qcow2: add .bdrv_remove_persistent_dirty_bitmap

2017-02-15 Thread Vladimir Sementsov-Ogievskiy
Realize .bdrv_remove_persistent_dirty_bitmap interface. Signed-off-by: Vladimir Sementsov-Ogievskiy <vsement...@virtuozzo.com> Reviewed-by: Max Reitz <mre...@redhat.com> Reviewed-by: John Snow <js...@redhat.com> --- block/qcow2-bitmap.c | 41

[Qemu-block] [PATCH v15 05/25] block: fix bdrv_dirty_bitmap_granularity signature

2017-02-15 Thread Vladimir Sementsov-Ogievskiy
d-off-by: Vladimir Sementsov-Ogievskiy <vsement...@virtuozzo.com> --- block/dirty-bitmap.c | 2 +- include/block/dirty-bitmap.h | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/block/dirty-bitmap.c b/block/dirty-bitmap.c index 519737c..186941c 100644 --- a/block/dirty-bi

Re: [Qemu-block] [PATCH v2] backup: allow target without .bdrv_get_info

2017-02-15 Thread Vladimir Sementsov-Ogievskiy
15.02.2017 14:33, Fam Zheng wrote: On Wed, 02/15 14:09, Vladimir Sementsov-Ogievskiy wrote: Currently backup to nbd target is broken, as nbd doesn't have .bdrv_get_info realization. Signed-off-by: Vladimir Sementsov-Ogievskiy <vsement...@virtuozzo.com> --- v2: add WARNING === Since

Re: [Qemu-block] [PATCH v2] backup: allow target without .bdrv_get_info

2017-02-15 Thread Vladimir Sementsov-Ogievskiy
15.02.2017 14:09, Vladimir Sementsov-Ogievskiy wrote: Currently backup to nbd target is broken, as nbd doesn't have .bdrv_get_info realization. Signed-off-by: Vladimir Sementsov-Ogievskiy <vsement...@virtuozzo.com> --- v2: add WARNING === Since commit

[Qemu-block] [PATCH v15 20/25] qcow2-refcount: rename inc_refcounts() and make it public

2017-02-15 Thread Vladimir Sementsov-Ogievskiy
This is needed for the following patch, which will introduce refcounts checking for qcow2 bitmaps. Signed-off-by: Vladimir Sementsov-Ogievskiy <vsement...@virtuozzo.com> Reviewed-by: Max Reitz <mre...@redhat.com> Reviewed-by: John Snow <js...@redhat.com> --- block/qco

[Qemu-block] [PATCH v15 03/25] hbitmap: improve dirty iter

2017-02-15 Thread Vladimir Sementsov-Ogievskiy
Make dirty iter resistant to resetting bits in corresponding HBitmap. Signed-off-by: Vladimir Sementsov-Ogievskiy <vsement...@virtuozzo.com> Reviewed-by: Max Reitz <mre...@redhat.com> Reviewed-by: John Snow <js...@redhat.com> --- include/qemu/hbitmap.h | 26 --

[Qemu-block] [PATCH v15 08/25] block: introduce auto-loading bitmaps

2017-02-15 Thread Vladimir Sementsov-Ogievskiy
Auto loading bitmaps are bitmaps stored in the disk image, which should be loaded when the image is opened and become BdrvDirtyBitmaps for the corresponding drive. Signed-off-by: Vladimir Sementsov-Ogievskiy <vsement...@virtuozzo.com> Reviewed-by: John Snow <js...@redhat.com> Revi

[Qemu-block] [PATCH v15 11/25] block: introduce persistent dirty bitmaps

2017-02-15 Thread Vladimir Sementsov-Ogievskiy
New field BdrvDirtyBitmap.persistent means, that bitmap should be saved on bdrv_close, using format driver. Format driver should maintain bitmap storing. Signed-off-by: Vladimir Sementsov-Ogievskiy <vsement...@virtuozzo.com> Reviewed-by: Max Reitz <mre...@redhat.com> Reviewed-by: J

[Qemu-block] [PATCH v15 14/25] block: add bdrv_can_store_new_dirty_bitmap

2017-02-15 Thread Vladimir Sementsov-Ogievskiy
This will be needed to check some restrictions before making bitmap persistent in qmp-block-dirty-bitmap-add (this functionality will be added by future patch) Signed-off-by: Vladimir Sementsov-Ogievskiy <vsement...@virtuozzo.com> Reviewed-by: Max Reitz <mre...@redhat.com> Reviewed-b

[Qemu-block] [PATCH v15 17/25] qmp: add autoload parameter to block-dirty-bitmap-add

2017-02-15 Thread Vladimir Sementsov-Ogievskiy
Optional. Default is false. Signed-off-by: Vladimir Sementsov-Ogievskiy <vsement...@virtuozzo.com> Signed-off-by: Denis V. Lunev <d...@openvz.org> Reviewed-by: Max Reitz <mre...@redhat.com> Reviewed-by: John Snow <js...@redhat.com> --- blockdev.c | 18 ++

[Qemu-block] [PATCH v2] backup: allow target without .bdrv_get_info

2017-02-15 Thread Vladimir Sementsov-Ogievskiy
Currently backup to nbd target is broken, as nbd doesn't have .bdrv_get_info realization. Signed-off-by: Vladimir Sementsov-Ogievskiy <vsement...@virtuozzo.com> --- v2: add WARNING === Since commit commit 4c9bca7e39a6e07ad02c1dcde3478363344ec60b Author: John Snow <js...@redhat.

[Qemu-block] [PATCH] backup: allow target without .bdrv_get_info

2017-02-14 Thread Vladimir Sementsov-Ogievskiy
Currently backup to nbd target is broken, as nbd doesn't have .bdrv_get_info realization. Signed-off-by: Vladimir Sementsov-Ogievskiy <vsement...@virtuozzo.com> --- Hi all! Since commit commit 4c9bca7e39a6e07ad02c1dcde3478363344ec60b Author: John Snow <js...@redhat.com> Date: T

[Qemu-block] [PATCH v6 00/17] Dirty bitmaps postcopy migration

2017-02-13 Thread Vladimir Sementsov-Ogievskiy
rations if bitmap data is small, possibly this should be reimplemented) Vladimir Sementsov-Ogievskiy (17): migration: add has_postcopy savevm handler migration: fix ram_save_pending migration: split common postcopy out of ram postcopy migration: introduce postcopy-o

[Qemu-block] [PATCH 12/17] migration: add postcopy migration of dirty bitmaps

2017-02-13 Thread Vladimir Sementsov-Ogievskiy
the migration will be done, otherwise the error will be generated. If destination qemu doesn't contain such bitmap it will be created. Signed-off-by: Vladimir Sementsov-Ogievskiy <vsement...@virtuozzo.com> --- include/migration/block.h | 1 + include/migration/migration.h | 4 + mig

[Qemu-block] [PATCH 04/17] migration: introduce postcopy-only pending

2017-02-13 Thread Vladimir Sementsov-Ogievskiy
There would be savevm states (dirty-bitmap) which can migrate only in postcopy stage. The corresponding pending is introduced here. Signed-off-by: Vladimir Sementsov-Ogievskiy <vsement...@virtuozzo.com> Reviewed-by: Juan Quintela <quint...@redhat.com> --- include/migration/vm

[Qemu-block] [PATCH 08/17] block/dirty-bitmap: add bdrv_dirty_bitmap_release_successor

2017-02-13 Thread Vladimir Sementsov-Ogievskiy
To just release successor and unfreeze bitmap without any additional work. Signed-off-by: Vladimir Sementsov-Ogievskiy <vsement...@virtuozzo.com> Signed-off-by: Denis V. Lunev <d...@openvz.org> Reviewed-by: Max Reitz <mre...@redhat.com> --- block/dirty-bitmap.c | 10 +

[Qemu-block] [PATCH 07/17] qapi: add dirty-bitmaps migration capability

2017-02-13 Thread Vladimir Sementsov-Ogievskiy
Signed-off-by: Vladimir Sementsov-Ogievskiy <vsement...@virtuozzo.com> Reviewed-by: John Snow <js...@redhat.com> Reviewed-by: Eric Blake <ebl...@redhat.com> Reviewed-by: Juan Quintela <quint...@redhat.com> --- include/migration/migration.h | 1 + migration/migration.c

[Qemu-block] [PATCH 01/17] migration: add has_postcopy savevm handler

2017-02-13 Thread Vladimir Sementsov-Ogievskiy
. This patch add separate has_postcopy handler to specify behaviour of savevm state. Signed-off-by: Vladimir Sementsov-Ogievskiy <vsement...@virtuozzo.com> Reviewed-by: Juan Quintela <quint...@redhat.com> --- include/migration/vmstate.h | 1 + migration/ram.c | 6 +

[Qemu-block] [PATCH 03/17] migration: split common postcopy out of ram postcopy

2017-02-13 Thread Vladimir Sementsov-Ogievskiy
Split common postcopy staff from ram postcopy staff. Signed-off-by: Vladimir Sementsov-Ogievskiy <vsement...@virtuozzo.com> Reviewed-by: Juan Quintela <quint...@redhat.com> --- include/migration/migration.h | 1 + migration/migration.c | 39 --

[Qemu-block] [PATCH 13/17] iotests: add add_incoming_migration to VM class

2017-02-13 Thread Vladimir Sementsov-Ogievskiy
Signed-off-by: Vladimir Sementsov-Ogievskiy <vsement...@virtuozzo.com> Reviewed-by: John Snow <js...@redhat.com> --- tests/qemu-iotests/iotests.py | 6 ++ 1 file changed, 6 insertions(+) diff --git a/tests/qemu-iotests/iotests.py b/tests/qemu-iotests/iotests.py index bec8eb4..f5

[Qemu-block] [PATCH 06/17] block: add bdrv_dirty_bitmap_enable_successor()

2017-02-13 Thread Vladimir Sementsov-Ogievskiy
Enabling bitmap successor is necessary to enable successors of bitmaps being migrated before target vm start. Signed-off-by: Vladimir Sementsov-Ogievskiy <vsement...@virtuozzo.com> Reviewed-by: Max Reitz <mre...@redhat.com> --- block/dirty-bitmap.c | 5 + include/block/di

[Qemu-block] [PATCH 15/17] iotests: add default node-name

2017-02-13 Thread Vladimir Sementsov-Ogievskiy
When testing migration, auto-generated by qemu node-names differs in source and destination qemu and migration fails. After this patch, auto-generated by iotest nodenames will be the same. Signed-off-by: Vladimir Sementsov-Ogievskiy <vsement...@virtuozzo.com> Reviewed-by: Max Reit

[Qemu-block] [PATCH 16/17] iotests: add dirty bitmap migration test

2017-02-13 Thread Vladimir Sementsov-Ogievskiy
The test starts two vms (vm_a, vm_b), create dirty bitmap in the first one, do several writes to corresponding device and then migrate vm_a to vm_b with dirty bitmaps. Signed-off-by: Vladimir Sementsov-Ogievskiy <vsement...@virtuozzo.com> Reviewed-by: Max Reitz <mre...@redhat.com> ---

[Qemu-block] [PATCH 02/17] migration: fix ram_save_pending

2017-02-13 Thread Vladimir Sementsov-Ogievskiy
Fill postcopy-able pending only if ram postcopy is enabled. It is necessary because of there will be other postcopy-able states and when ram postcopy is disabled, it should not spoil common postcopy related pending. Signed-off-by: Vladimir Sementsov-Ogievskiy <vsement...@virtuozzo.com> Re

[Qemu-block] [PATCH 17/17] iotests: add dirty bitmap postcopy test

2017-02-13 Thread Vladimir Sementsov-Ogievskiy
. Signed-off-by: Vladimir Sementsov-Ogievskiy <vsement...@virtuozzo.com> Reviewed-by: Max Reitz <mre...@redhat.com> --- tests/qemu-iotests/169| 74 +-- tests/qemu-iotests/169.out| 4 +-- tests/qemu-iotests/iotests.py | 7 +++- 3 f

[Qemu-block] [PATCH 05/17] block: add bdrv_next_dirty_bitmap()

2017-02-13 Thread Vladimir Sementsov-Ogievskiy
Like bdrv_next() - bdrv_next_dirty_bitmap() is a function to provide access to private dirty bitmaps list. Signed-off-by: Vladimir Sementsov-Ogievskiy <vsement...@virtuozzo.com> Reviewed-by: John Snow <js...@redhat.com> --- block/dirty-bitmap.c | 10 ++ include

[Qemu-block] [PATCH 09/17] migration: include migrate_dirty_bitmaps in migrate_postcopy

2017-02-13 Thread Vladimir Sementsov-Ogievskiy
Enable postcopy if dirty bitmap migration is endabled. Signed-off-by: Vladimir Sementsov-Ogievskiy <vsement...@virtuozzo.com> Reviewed-by: Juan Quintela <quint...@redhat.com> --- migration/migration.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/migration/m

[Qemu-block] [PATCH 14/17] qmp: add x-debug-block-dirty-bitmap-sha256

2017-02-13 Thread Vladimir Sementsov-Ogievskiy
Signed-off-by: Vladimir Sementsov-Ogievskiy <vsement...@virtuozzo.com> Reviewed-by: Max Reitz <mre...@redhat.com> --- block/dirty-bitmap.c | 5 + blockdev.c | 29 + include/block/dirty-bitmap.h | 2 ++ include/qemu/hbitmap.

[Qemu-block] [PATCH 10/17] migration/qemu-file: add qemu_put_counted_string()

2017-02-13 Thread Vladimir Sementsov-Ogievskiy
Add function opposite to qemu_get_counted_string. qemu_put_counted_string puts one-byte length of the string (string should not be longer than 255 characters), and then it puts the string, without last zero byte. Signed-off-by: Vladimir Sementsov-Ogievskiy <vsement...@virtuozzo.com> Re

<    1   2   3   4   5   6   7   8   9   10   >