case VIR_DOMAIN_DEVICE_ADDRESS_TYPE_DIMM:
virBufferAsprintf(buf, " slot='%u'", info->addr.dimm.slot);
- virBufferAsprintf(buf, " base='0x%llx'", info->addr.dimm.base);
+ if (info->addr.dimm.base)
+ virBufferAsprintf(buf, " base='0x%llx'", info->addr.dimm.base);
break;
}
VIR_FREE(tmp);
- if (!(tmp = virXMLPropString(node, "base")) ||
- virStrToLong_ullp(tmp, NULL, 16, &addr->base) < 0) {
- virReportError(VIR_ERR_XML_ERROR,
- _("invalid or missing dimm base address '%s'"),
- NULLSTR(tmp));
- goto cleanup;
+ if ((tmp = virXMLPropString(node, "base"))) {
+ if (virStrToLong_ullp(tmp, NULL, 16, &addr->base) < 0) {
+ virReportError(VIR_ERR_XML_ERROR,
+ _("invalid dimm base address '%s'"), tmp);
+ goto cleanup;
+ }
+
+ VIR_FREE(tmp);
}
- VIR_FREE(tmp);
ret = 0;
if (mem->info.type == VIR_DOMAIN_DEVICE_ADDRESS_TYPE_DIMM) {
virBufferAsprintf(&buf, ",slot=%d", mem->info.addr.dimm.slot);
- virBufferAsprintf(&buf, ",addr=%llu", mem->info.addr.dimm.base);
+ if (mem->info.addr.dimm.base)
+ virBufferAsprintf(&buf, ",addr=%llu", mem->info.addr.dimm.base);
}
break;
mem-path=/dev/hugepages2M/libvirt/qemu,size=536870912,host-nodes=1-3,\
policy=bind \
-device pc-dimm,node=0,memdev=memdimm0,id=dimm0,slot=0,addr=4294967296 \
+-object memory-backend-ram,id=memdimm1,size=536870912 \
+-device pc-dimm,node=0,memdev=memdimm1,id=dimm1,slot=2 \
-uuid c7a5fdbd-edaf-9455-926a-d65c16db1809 \
-nographic \
-nodefaults \
<name>QEMUGuest1</name>
<uuid>c7a5fdbd-edaf-9455-926a-d65c16db1809</uuid>
<maxMemory slots='16' unit='KiB'>1099511627776</maxMemory>
- <memory unit='KiB'>743423</memory>
- <currentMemory unit='KiB'>743423</currentMemory>
+ <memory unit='KiB'>7434230</memory>
+ <currentMemory unit='KiB'>7434230</currentMemory>
<vcpu placement='static' cpuset='0-1'>2</vcpu>
<os>
<type arch='i686' machine='pc'>hvm</type>
</target>
<address type='dimm' slot='0' base='0x100000000'/>
</memory>
+ <memory model='dimm'>
+ <target>
+ <size unit='KiB'>524287</size>
+ <node>0</node>
+ </target>
+ <address type='dimm' slot='2'/>
+ </memory>
</devices>
</domain>
DO_TEST("memory-hotplug-dimm", QEMU_CAPS_DEVICE_PC_DIMM, QEMU_CAPS_NUMA,
QEMU_CAPS_OBJECT_MEMORY_RAM, QEMU_CAPS_OBJECT_MEMORY_FILE);
DO_TEST("memory-hotplug-dimm-addr", QEMU_CAPS_DEVICE_PC_DIMM, QEMU_CAPS_NUMA,
- QEMU_CAPS_OBJECT_MEMORY_FILE);
+ QEMU_CAPS_OBJECT_MEMORY_RAM, QEMU_CAPS_OBJECT_MEMORY_FILE);
DO_TEST("memory-hotplug-ppc64-nonuma", QEMU_CAPS_KVM, QEMU_CAPS_DEVICE_PC_DIMM, QEMU_CAPS_NUMA,
QEMU_CAPS_OBJECT_MEMORY_RAM, QEMU_CAPS_OBJECT_MEMORY_FILE);