Make sure that libvirt has all vital information needed to reliably
represent configuration of guest's memory devices in case of a
migration.
This patch forbids migration in case the required slot number and module
base address are not present (failed to be loaded from qemu via
monitor).
---
src/qemu/qemu_migration.c | 14 ++++++++++++++
1 file changed, 14 insertions(+)
diff --git a/src/qemu/qemu_migration.c b/src/qemu/qemu_migration.c
index 8a8fa63..a1cc6fa 100644
--- a/src/qemu/qemu_migration.c
+++ b/src/qemu/qemu_migration.c
@@ -2018,6 +2018,20 @@ qemuMigrationIsAllowed(virQEMUDriverPtr driver, virDomainObjPtr
vm,
}
}
+ /* Verify that memory device config can be transferred reliably */
+ for (i = 0; i < def->nmems; i++) {
+ virDomainMemoryDefPtr mem = def->mems[i];
+
+ if (mem->model == VIR_DOMAIN_MEMORY_MODEL_ACPI_DIMM &&
+ mem->info.type != VIR_DOMAIN_DEVICE_ADDRESS_TYPE_ACPI_DIMM) {
+ virReportError(VIR_ERR_OPERATION_INVALID, "%s",
+ _("domain's acpi-dimm info lacks slot ID "
+ "or base address"));
+
+ return false;
+ }
+ }
+
return true;
}
--
2.2.2