[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

NVDIMM sizes and DIMM hot plug

From: Milan Zamazal
Subject: NVDIMM sizes and DIMM hot plug
Date: Tue, 16 Jun 2020 16:51:10 +0200
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/26.3 (gnu/linux)


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 

The start address above is also reported within <memory> libvirt element
of the hot plugged memory, as received from QEMU:

  <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 QEMU makes the base DIMM address above.  How is
the NVDIMM memory span 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 alignment size.  Is this observation correct?  Is it
guaranteed to be stable in future QEMU versions?

Thank you,

reply via email to

[Prev in Thread] Current Thread [Next in Thread]