qemu-devel
[Top][All Lists]
Advanced

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

Re: Adjustments of NVDIMM devices and future data safety


From: Liu, Jingqi
Subject: Re: Adjustments of NVDIMM devices and future data safety
Date: Sat, 8 May 2021 15:30:15 +0800
User-agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:68.0) Gecko/20100101 Thunderbird/68.11.0

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 ?

Thanks,

Jingqi




reply via email to

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