Hi, I've found out that NVDIMM size and label size matter for regular (non-NV) DIMM hot plug. If the NVDIMM is not aligned correctly, the guest OS will not accept the hot plugged memory and will complain with messages such as Block size [0x8000000] unaligned hotplug range: start 0x225000000, size 0x10000000 The start address above is also reported within <memory> element of the hot plugged memory in the domain XML: <address type='dimm' slot='1' base='0x225000000'/> Apparently, in order to make memory hot plug working in the guest OS, the inserted memory must be aligned to the platform memory alignment (128 MB on x86_64). I'd like to clarify, how libvirt makes the DIMM address above. How is the NVDIMM memory range determined? According to my experiments, it seems the NVDIMM specified <size> is taken, NVDIMM <label> size is subtracted from it and the resulting value is reduced to the nearest multiple of NVDIMM <alignsize>. Is this observation correct? Is it guaranteed to be stable in future versions? I need to determine the right NVDIMM size to make the subsequent memory modules correctly aligned and then I can't change the NVDIMM size, to not damage data stored in the NVDIMM. Additionally, when adjusting maxMemory due to NVDIMM presence, should I increase it by the specified NVDIMM <size> or a different value? Thank you, Milan