mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2025-03-07 17:28:15 +00:00
conf: ABI: Split up and improve vcpu info ABI checking
Extract the checking code into a separate function and prepare the infrastructure for checking the new structure type.
This commit is contained in:
parent
4e86838d89
commit
24a7beea5a
@ -17549,6 +17549,35 @@ virDomainMemoryDefCheckABIStability(virDomainMemoryDefPtr src,
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
static bool
|
||||||
|
virDomainDefVcpuCheckAbiStability(virDomainDefPtr src,
|
||||||
|
virDomainDefPtr dst)
|
||||||
|
{
|
||||||
|
size_t i;
|
||||||
|
|
||||||
|
if (src->maxvcpus != dst->maxvcpus) {
|
||||||
|
virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
|
||||||
|
_("Target domain vCPU max %zu does not match source %zu"),
|
||||||
|
dst->maxvcpus, src->maxvcpus);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
for (i = 0; i < src->maxvcpus; i++) {
|
||||||
|
virDomainVcpuInfoPtr svcpu = &src->vcpus[i];
|
||||||
|
virDomainVcpuInfoPtr dvcpu = &dst->vcpus[i];
|
||||||
|
|
||||||
|
if (svcpu->online != dvcpu->online) {
|
||||||
|
virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
|
||||||
|
_("State of vCPU '%zu' differs between source and "
|
||||||
|
"destination definitions"), i);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/* This compares two configurations and looks for any differences
|
/* This compares two configurations and looks for any differences
|
||||||
* which will affect the guest ABI. This is primarily to allow
|
* which will affect the guest ABI. This is primarily to allow
|
||||||
* validation of custom XML config passed in during migration
|
* validation of custom XML config passed in during migration
|
||||||
@ -17622,18 +17651,8 @@ virDomainDefCheckABIStability(virDomainDefPtr src,
|
|||||||
goto error;
|
goto error;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (virDomainDefGetVcpus(src) != virDomainDefGetVcpus(dst)) {
|
if (!virDomainDefVcpuCheckAbiStability(src, dst))
|
||||||
virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
|
|
||||||
_("Target domain vCPU count %d does not match source %d"),
|
|
||||||
virDomainDefGetVcpus(dst), virDomainDefGetVcpus(src));
|
|
||||||
goto error;
|
goto error;
|
||||||
}
|
|
||||||
if (virDomainDefGetVcpusMax(src) != virDomainDefGetVcpusMax(dst)) {
|
|
||||||
virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
|
|
||||||
_("Target domain vCPU max %d does not match source %d"),
|
|
||||||
virDomainDefGetVcpusMax(dst), virDomainDefGetVcpusMax(src));
|
|
||||||
goto error;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (src->iothreads != dst->iothreads) {
|
if (src->iothreads != dst->iothreads) {
|
||||||
virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
|
virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user