"Liu, Jingqi" <jingqi....@intel.com> writes: > Hi Milan, > > On 4/30/2021 8:18 PM, Milan Zamazal wrote: >> Hi, >> >> I work on NVDIMM support in oVirt/RHV, I think other virtualization >> management software built on top of QEMU may have similar concerns. >> >> When a virtual NVDIMM device size is specified, it's not necessarily the >> eventual NVDIMM device size visible to the guest OS. As seen in >> https://github.com/qemu/qemu/blob/v6.0.0/hw/mem/nvdimm.c#L117, QEMU >> makes some adjustments (other adjustments are performed by libvirt but >> that's a topic for a different forum): >> >> - NVDIMM label size is subtracted from the NVDIMM size. >> >> - NVDIMM label is pointed to a certain memory region. >> >> - The remaining NVDIMM size is aligned down. >> >> There are some related potential problems: >> >> - If the alignment rules change in a future QEMU version, it may result >> in a different device size visible to the guest (even if the requested >> size remains the same) and cause trouble there up to data loss. >> >> - If the layout on the backing device changes, e.g. a label placement, >> then the stored data may become corrupt or inaccessible. >> >> - I'm not sure about the current QEMU version, but at least in previous >> QEMU versions, the resulting size is important for memory hot plug. >> The NVDIMM alignment size is smaller than the required regular memory >> DIMM placement alignment. If a VM contains an NVDIMM with the >> resulting size not matching the DIMM placement requirements and a >> memory hot plug is attempted then the hot plug fails because the DIMM >> is mapped next to the end of the NVDIMM region, which is not >> DIMM-aligned. > > Can you explain the details and give an example of how to reproduce > this issue ?
I rechecked it with current QEMU and several different NVDIMM device sizes and I can no longer reproduce the issue. So hopefully it's no longer present. Regards, Milan