NVDIMM sizes and DIMM hot plug
Milan Zamazal
mzamazal at redhat.com
Tue Jun 16 11:22:33 UTC 2020
Daniel P. Berrangé <berrange at redhat.com> writes:
> On Tue, Jun 16, 2020 at 12:54:29PM +0200, Milan Zamazal wrote:
>> 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.
>
> Libvirt doesn't ever assign a "base" address value itself. We just
> start QEMU, and then fill in the XML "base" with the value that QEMU
> has assigned.
I see, then I'll ask about it on the QEMU list.
>> Additionally, when adjusting maxMemory due to NVDIMM presence, should I
>> increase it by the specified NVDIMM <size> or a different value?
>
> IIRC, maxMemory has to allow for the sum of the basic RAM amount, plus
> RAM intended to be used for all possible future (NV)DIMMS that will be
> hotplugged.
OK.
Thanks,
Milan
More information about the libvirt-users
mailing list