On 2/12/21 11:34 AM, Peter Krempa wrote: > Bitmap's source persistence is transported over the migration stream and > the destination mirrors it. In some cases the destination might want to > persist bitmaps which are not persistent on the source (e.g. the result > of merge of bitmaps from a number of layers on the source when migrating
Sorry for not proposing this grammar tweak earlier, but s/merge of/merging/ > into a squashed image) but currently it would need to create another set > of persistent bitmaps and merge them. > > This patch adds a 'transform' property to the alias map which allows to > override the persistence of migrated bitmaps both on the source and Once again, we encounter the non-idiomatic "allows to ${VERB}"; the easiest solutions are "allows ${SUBJECT} to ${VERB}" or "allows ${VERB}ing". I'll go with the latter. > destination sides. > > Signed-off-by: Peter Krempa <pkre...@redhat.com> > --- > migration/block-dirty-bitmap.c | 30 +++++++++++++++++++++++++++--- > qapi/migration.json | 19 ++++++++++++++++++- > 2 files changed, 45 insertions(+), 4 deletions(-) > > @@ -806,7 +819,16 @@ static int dirty_bitmap_load_start(QEMUFile *f, > DBMLoadState *s) > return -EINVAL; > } > > - if (flags & DIRTY_BITMAP_MIG_START_FLAG_PERSISTENT) { > + if (s->bmap_inner && > + s->bmap_inner->has_transform && > + s->bmap_inner->transform && This leg of the conjunction is always true (if has_transform is set, transform is necessarily non-NULL). > + s->bmap_inner->transform->has_persistent) { > + persistent = s->bmap_inner->transform->persistent; > + } else { > + persistent = flags & DIRTY_BITMAP_MIG_START_FLAG_PERSISTENT; > + } > + > + if (persistent) { > bdrv_dirty_bitmap_set_persistence(s->bitmap, true); > } > > @@ -544,12 +557,16 @@ > # @alias: An alias name for migration (for example the bitmap name on > # the opposite site). > # > +# @transform: Allows to modify properties of the migrated bitmap. Allows the modification of I can make those tweaks while queuing. Reviewed-by: Eric Blake <ebl...@redhat.com> -- Eric Blake, Principal Software Engineer Red Hat, Inc. +1-919-301-3226 Virtualization: qemu.org | libvirt.org