On 12/9/19 6:15 PM, Daniel Henrique Barboza wrote:
QEMU_CAPS_DEVICE_NVDIMM validation is now being done inside
qemuDomainDefValidateMemory().
Signed-off-by: Daniel Henrique Barboza <danielhb413(a)gmail.com>
---
src/qemu/qemu_command.c | 5 -----
src/qemu/qemu_domain.c | 10 ++++++++++
tests/qemuxml2xmltest.c | 2 +-
3 files changed, 11 insertions(+), 6 deletions(-)
diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c
index e7365ba86a..25886bf49a 100644
--- a/src/qemu/qemu_command.c
+++ b/src/qemu/qemu_command.c
@@ -7180,11 +7180,6 @@ qemuBuildMachineCommandLine(virCommandPtr cmd,
for (i = 0; i < def->nmems; i++) {
if (def->mems[i]->model == VIR_DOMAIN_MEMORY_MODEL_NVDIMM) {
- if (!virQEMUCapsGet(qemuCaps, QEMU_CAPS_DEVICE_NVDIMM)) {
- virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
- _("nvdimm isn't supported by this QEMU
binary"));
- return -1;
- }
virBufferAddLit(&buf, ",nvdimm=on");
break;
}
diff --git a/src/qemu/qemu_domain.c b/src/qemu/qemu_domain.c
index d62e13f26c..8eb0905f22 100644
--- a/src/qemu/qemu_domain.c
+++ b/src/qemu/qemu_domain.c
@@ -5021,6 +5021,7 @@ qemuDomainDefValidateMemory(const virDomainDef *def,
{
const long system_page_size = virGetSystemPageSizeKB();
const virDomainMemtune *mem = &def->mem;
+ size_t i;
if (mem->nhugepages == 0)
return 0;
@@ -5066,6 +5067,15 @@ qemuDomainDefValidateMemory(const virDomainDef *def,
return -1;
}
+ for (i = 0; i < def->nmems; i++) {
+ if (def->mems[i]->model == VIR_DOMAIN_MEMORY_MODEL_NVDIMM &&
+ !virQEMUCapsGet(qemuCaps, QEMU_CAPS_DEVICE_NVDIMM)) {
+ virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
+ _("nvdimm isn't supported by this QEMU
binary"));
+ return -1;
+ }
+ }
+
This should be added to a function like
qemuDomainDeviceDefValidateMemory called via qemuDomainDeviceDefValidate
- Cole