[libvirt] [PATCH v2 3/3] virQEMUDriverDomainABIStability: Check for memoryBacking

Peter Krempa pkrempa at redhat.com
Thu May 25 13:29:35 UTC 2017


On Wed, May 24, 2017 at 16:06:56 +0100, Daniel Berrange wrote:
> On Wed, May 24, 2017 at 04:45:57PM +0200, Michal Privoznik wrote:
> > https://bugzilla.redhat.com/show_bug.cgi?id=1450349
> > 
> > Problem is, qemu fails to load guest memory image if these
> > attribute change on migration/restore from an image.
> 
> [snip]
> 
> > diff --git a/src/qemu/qemu_domain.c b/src/qemu/qemu_domain.c
> > index 35fd79de8..c1ff8ca8a 100644
> > --- a/src/qemu/qemu_domain.c
> > +++ b/src/qemu/qemu_domain.c
> > @@ -5797,6 +5797,46 @@ qemuDomainUpdateMemoryDeviceInfo(virQEMUDriverPtr driver,
> >  }
> >  
> >  
> > +static bool
> > +qemuDomainABIStabilityCheck(const virDomainDef *src,
> > +                            const virDomainDef *dst)
> > +{
> > +    if (src->mem.source != dst->mem.source) {
> > +        virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
> > +                       _("Target memoryBacking source '%s' doesn't "
> > +                         "match source memoryBacking source'%s'"),
> > +                       virDomainMemorySourceTypeToString(dst->mem.source),
> > +                       virDomainMemorySourceTypeToString(src->mem.source));
> > +        return false;
> > +    }
> > +
> > +    if (src->mem.access != dst->mem.access) {
> > +        virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
> > +                       _("Target memoryBacking access '%s' doesn't "
> > +                         "match access memoryBacking access'%s'"),
> > +                       virDomainMemoryAccessTypeToString(dst->mem.access),
> > +                       virDomainMemoryAccessTypeToString(src->mem.access));
> > +        return false;
> > +    }
> > +
> > +    if (src->mem.allocation != dst->mem.allocation) {
> > +        virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
> > +                       _("Target memoryBacking allocation '%s' doesn't "
> > +                         "match allocation memoryBacking allocation'%s'"),
> > +                       virDomainMemoryAllocationTypeToString(dst->mem.allocation),
> > +                       virDomainMemoryAllocationTypeToString(src->mem.allocation));
> > +        return false;
> > +    }
> 
> 
> Do we really need to blacklist all of these changes. I can understand that
> changing the memory source would affect migration ABI, as it causes us to
> use the memory backend command line config differently.
> 
> Assuming that matches though, I'm sceptical that changing 'access' or
> 'allocation' affects ABI.

If it does, a comment should state when it's required. (e.g. access may
need to be checked, since shared access may force usage of
memory-backend-file).

Allocation is indeed weird.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 833 bytes
Desc: not available
URL: <http://listman.redhat.com/archives/libvir-list/attachments/20170525/01939d09/attachment-0001.sig>


More information about the libvir-list mailing list