
On Mon, Aug 1, 2016 at 4:10 PM, Michal Privoznik <mprivozn@redhat.com> wrote:
NVDIMM was introduced to qemu in v2.6.0-rc0~248^2~25. So it's been a while since then.
It's not the next big thing, but it is very interesting feature enabling higher performance as reading/writing to the module (and subsequently to the file on the host) does not require a VMEXIT. It can be used to access host files directly bypassing page cache whilst doing so.
How to test the feature? 1) you need PMEM enabled kernel: CONFIG_LIBNVDIMM=y CONFIG_BLK_DEV_PMEM=m CONFIG_ACPI_NFIT=m
2) Create a file in the host: truncate -s 512M /tmp/nvdimm
3) Add the following to the domain XML:
<memory model='nvdimm' memAccess='shared'> <source> <path>/tmp/nvdimm</path> </source> <target> <size unit='KiB'>523264</size> <node>0</node> </target> </memory>
The "nvdimm" device also has a label-size property. This determines the size of the Namespace Label area described in: http://pmem.io/documents/NVDIMM_Namespace_Spec.pdf By default no Namespace Label area is reserved in the file. If the user specifies label-size then the memory at the end of the file is used as the Namespace Label area. It is necessary to expose label-size so users can choose whether or not to have a Namespace Label area. I have CCed Guangrong Xiao who authored the QEMU patches. Stefan