[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-block] [Qemu-devel] [PATCH 15/18] qapi: add md5 checksum of la
From: |
Daniel P. Berrange |
Subject: |
Re: [Qemu-block] [Qemu-devel] [PATCH 15/18] qapi: add md5 checksum of last dirty bitmap level to query-block |
Date: |
Tue, 16 Aug 2016 11:37:28 +0100 |
User-agent: |
Mutt/1.6.2 (2016-07-01) |
On Tue, Aug 16, 2016 at 01:26:12PM +0300, Vladimir Sementsov-Ogievskiy wrote:
> Reviewed-by: John Snow <address@hidden>
> Signed-off-by: Vladimir Sementsov-Ogievskiy <address@hidden>
> ---
> block/dirty-bitmap.c | 1 +
> include/qemu/hbitmap.h | 8 ++++++++
> qapi/block-core.json | 5 ++++-
> util/hbitmap.c | 8 ++++++++
> 4 files changed, 21 insertions(+), 1 deletion(-)
>
> diff --git a/block/dirty-bitmap.c b/block/dirty-bitmap.c
> index 32aa6eb..f895fce 100644
> --- a/block/dirty-bitmap.c
> +++ b/block/dirty-bitmap.c
> @@ -365,6 +365,7 @@ BlockDirtyInfoList
> *bdrv_query_dirty_bitmaps(BlockDriverState *bs)
> info->has_name = !!bm->name;
> info->name = g_strdup(bm->name);
> info->status = bdrv_dirty_bitmap_status(bm);
> + info->md5 = hbitmap_md5(bm->bitmap);
> entry->value = info;
> *plist = entry;
> plist = &entry->next;
> diff --git a/include/qemu/hbitmap.h b/include/qemu/hbitmap.h
> index eb46475..8d4f836 100644
> --- a/include/qemu/hbitmap.h
> +++ b/include/qemu/hbitmap.h
> @@ -225,6 +225,14 @@ void hbitmap_deserialize_zeroes(HBitmap *hb, uint64_t
> start, uint64_t count,
> void hbitmap_deserialize_finish(HBitmap *hb);
>
> /**
> + * hbitmap_md5:
> + * @bitmap: HBitmap to operate on.
> + *
> + * Returns md5 checksum of the last level.
> + */
> +char *hbitmap_md5(const HBitmap *bitmap);
> +
> +/**
> * hbitmap_free:
> * @hb: HBitmap to operate on.
> *
> diff --git a/qapi/block-core.json b/qapi/block-core.json
> index 2bbc027..5642a8a 100644
> --- a/qapi/block-core.json
> +++ b/qapi/block-core.json
> @@ -419,11 +419,14 @@
> #
> # @status: current status of the dirty bitmap (since 2.4)
> #
> +# @md5: md5 checksum (as a hexadecimal string) of the last bitmap level
> +# (since 2.6)
> +#
> # Since: 1.3
> ##
> { 'struct': 'BlockDirtyInfo',
> 'data': {'*name': 'str', 'count': 'int', 'granularity': 'uint32',
> - 'status': 'DirtyBitmapStatus'} }
> + 'status': 'DirtyBitmapStatus', 'md5': 'str'} }
>
> ##
> # @BlockInfo:
> diff --git a/util/hbitmap.c b/util/hbitmap.c
> index 6a13c12..4afb3d5 100644
> --- a/util/hbitmap.c
> +++ b/util/hbitmap.c
> @@ -669,3 +669,11 @@ void hbitmap_free_meta(HBitmap *hb)
> hbitmap_free(hb->meta);
> hb->meta = NULL;
> }
> +
> +char *hbitmap_md5(const HBitmap *bitmap)
> +{
> + uint64_t size =
> + MAX((bitmap->size + BITS_PER_LONG - 1) >> BITS_PER_LEVEL, 1);
> + const guchar *data = (const guchar *)bitmap->levels[HBITMAP_LEVELS - 1];
> + return g_compute_checksum_for_data(G_CHECKSUM_MD5, data, size);
> +}
Please use one of the qcrypto_hash_* functions, not GChecksum directly,
as this ensures we use the hash impls that have been through crypto
certification when needed by people shipping QEM.
Regards,
Daniel
--
|: http://berrange.com -o- http://www.flickr.com/photos/dberrange/ :|
|: http://libvirt.org -o- http://virt-manager.org :|
|: http://autobuild.org -o- http://search.cpan.org/~danberr/ :|
|: http://entangle-photo.org -o- http://live.gnome.org/gtk-vnc :|
- Re: [Qemu-block] [Qemu-devel] [PATCH 17/18] iotests: add dirty bitmap migration test 169, (continued)
- [Qemu-block] [PATCH 06/18] block: add bdrv_dirty_bitmap_enable_successor(), Vladimir Sementsov-Ogievskiy, 2016/08/16
- [Qemu-block] [PATCH 08/18] block/dirty-bitmap: add bdrv_dirty_bitmap_release_successor, Vladimir Sementsov-Ogievskiy, 2016/08/16
- [Qemu-block] [PATCH 10/18] migration/qemu-file: add qemu_put_counted_string(), Vladimir Sementsov-Ogievskiy, 2016/08/16
- [Qemu-block] [PATCH 11/18] migration: add is_active_iterate handler, Vladimir Sementsov-Ogievskiy, 2016/08/16
- [Qemu-block] [PATCH 03/18] migration: split common postcopy out of ram postcopy, Vladimir Sementsov-Ogievskiy, 2016/08/16
- [Qemu-block] [PATCH 01/18] migration: add has_postcopy savevm handler, Vladimir Sementsov-Ogievskiy, 2016/08/16
- [Qemu-block] [PATCH 05/18] block: add bdrv_next_dirty_bitmap(), Vladimir Sementsov-Ogievskiy, 2016/08/16
- [Qemu-block] [PATCH 15/18] qapi: add md5 checksum of last dirty bitmap level to query-block, Vladimir Sementsov-Ogievskiy, 2016/08/16
- Re: [Qemu-block] [Qemu-devel] [PATCH 15/18] qapi: add md5 checksum of last dirty bitmap level to query-block,
Daniel P. Berrange <=
- [Qemu-block] [PATCH 18/18] iotests: add dirty bitmap postcopy test, Vladimir Sementsov-Ogievskiy, 2016/08/16
- [Qemu-block] [PATCH 12/18] migration: add postcopy migration of dirty bitmaps, Vladimir Sementsov-Ogievskiy, 2016/08/16
- [Qemu-block] [PATCH 14/18] iotests: add add_incoming_migration to VM class, Vladimir Sementsov-Ogievskiy, 2016/08/16
- [Qemu-block] [PATCH 02/18] migration: fix ram_save_pending, Vladimir Sementsov-Ogievskiy, 2016/08/16
- [Qemu-block] [PATCH 16/18] iotests: add default node-name, Vladimir Sementsov-Ogievskiy, 2016/08/16
- [Qemu-block] [PATCH 04/18] migration: introduce postcopy-only pending, Vladimir Sementsov-Ogievskiy, 2016/08/16
- [Qemu-block] [PATCH 09/18] migration: include migrate_dirty_bitmaps in migrate_postcopy, Vladimir Sementsov-Ogievskiy, 2016/08/16