[PATCH 02/19] qemu: capabilities: Introduce QEMU_CAPS_MIGRATION_PARAM_BLOCK_BITMAP_MAPPING

Jiri Denemark jdenemar at redhat.com
Fri Feb 12 10:19:09 UTC 2021


On Fri, Feb 12, 2021 at 09:30:25 +0100, Peter Krempa wrote:
> On Fri, Feb 12, 2021 at 08:57:08 +0100, Jiri Denemark wrote:
> > On Thu, Feb 11, 2021 at 16:37:41 +0100, Peter Krempa wrote:
> > > The capability represents qemu's ability to setup mappings for migrating
> > > block dirty bitmaps and is based on presence of the 'transform' property
> > > of the 'block-bitmap-mapping' property of 'migrate-set-parameters' QMP
> > > command.
> > > 
> > > Signed-off-by: Peter Krempa <pkrempa at redhat.com>
> > > ---
> > >  src/qemu/qemu_capabilities.c | 2 ++
> > >  src/qemu/qemu_capabilities.h | 1 +
> > >  2 files changed, 3 insertions(+)
> > > 
> > > diff --git a/src/qemu/qemu_capabilities.c b/src/qemu/qemu_capabilities.c
> > > index ccf810ff96..38555dde98 100644
> > > --- a/src/qemu/qemu_capabilities.c
> > > +++ b/src/qemu/qemu_capabilities.c
> > > @@ -616,6 +616,7 @@ VIR_ENUM_IMPL(virQEMUCaps,
> > >                "vhost-user-blk",
> > >                "cpu-max",
> > >                "memory-backend-file.x-use-canonical-path-for-ramblock-id",
> > > +              "migration-param.block-bitmap-mapping",
> > >      );
> > > 
> > > 
> > > @@ -1549,6 +1550,7 @@ static struct virQEMUCapsStringFlags virQEMUCapsQMPSchemaQueries[] = {
> > >      { "migrate-set-parameters/arg-type/xbzrle-cache-size", QEMU_CAPS_MIGRATION_PARAM_XBZRLE_CACHE_SIZE },
> > >      { "set-numa-node/arg-type/+hmat-lb", QEMU_CAPS_NUMA_HMAT },
> > >      { "netdev_add/arg-type/+vhost-vdpa", QEMU_CAPS_NETDEV_VHOST_VDPA },
> > > +    { "migrate-set-parameters/arg-type/block-bitmap-mapping/transform", QEMU_CAPS_MIGRATION_PARAM_BLOCK_BITMAP_MAPPING },
> > >  };
> > > 
> > 
> > So how is it possible this change is not reflected in
> > tests/qemucapabilitiesdata/caps_6.0.0.x86_64.xml after the previous
> > patch updated QEMU replies? Interestingly enough, tests pass after this
> > patch so either the capability detection is not working or QEMU replies
> > do not actually contain what you're looking for here.
> 
> Oops, there's a mistake in the query string where I've missed 'bitmaps'
> subcomponent. Well actually I've already noticed this before, but
> squashed the changes to a patch that I've ultimately removed from the
> series ...
> 
> 
> diff --git a/src/qemu/qemu_capabilities.c b/src/qemu/qemu_capabilities.c
> index c7ab144a8e..0e0926d0e5 100644
> --- a/src/qemu/qemu_capabilities.c
> +++ b/src/qemu/qemu_capabilities.c
> @@ -1550,7 +1550,8 @@ static struct virQEMUCapsStringFlags virQEMUCapsQMPSchemaQueries[] = {
>      { "migrate-set-parameters/arg-type/xbzrle-cache-size", QEMU_CAPS_MIGRATION_PARAM_XBZRLE_CACHE_SIZE },
>      { "set-numa-node/arg-type/+hmat-lb", QEMU_CAPS_NUMA_HMAT },
>      { "netdev_add/arg-type/+vhost-vdpa", QEMU_CAPS_NETDEV_VHOST_VDPA },
> -    { "migrate-set-parameters/arg-type/block-bitmap-mapping/transform", QEMU_CAPS_MIGRATION_PARAM_BLOCK_BITMAP_MAPPING },
> +    { "migrate-set-parameters/arg-type/block-bitmap-mapping/bitmaps/transform",
> +      QEMU_CAPS_MIGRATION_PARAM_BLOCK_BITMAP_MAPPING },
>  };
> 
>  typedef struct _virQEMUCapsObjectTypeProps virQEMUCapsObjectTypeProps;
> diff --git a/tests/qemucapabilitiesdata/caps_6.0.0.x86_64.xml b/tests/qemucapabilitiesdata/caps_6.0.0.x86_64.xml
> index f2ec32e46b..b9a36cb71e 100644
> --- a/tests/qemucapabilitiesdata/caps_6.0.0.x86_64.xml
> +++ b/tests/qemucapabilitiesdata/caps_6.0.0.x86_64.xml
> @@ -255,6 +255,7 @@
>    <flag name='vhost-user-blk'/>
>    <flag name='cpu-max'/>
>    <flag name='memory-backend-file.x-use-canonical-path-for-ramblock-id'/>
> +  <flag name='migration-param.block-bitmap-mapping'/>
>    <version>5002050</version>
>    <kvmVersion>0</kvmVersion>
>    <microcodeVersion>43100242</microcodeVersion>

With these two hunks squashed in

Reviewed-by: Jiri Denemark <jdenemar at redhat.com>




More information about the libvir-list mailing list