Hi libvirt experts, This is the RFC for updating NVDIMM support in libvirt. QEMU has supported four more properties which libvirt has not introduced yet, including 'align', 'pmem', 'nvdimm-persistences' and 'unarmed'. The 'align' property allows users to specify the proper alignment. The previous alignment can only be 4K because QEMU use pagesize as alignment. But some backends may require alignments different from the pagesize. The 'pmem' property allows users to specify whether the backend storage of memory-backend-file is a real persistent memory. Then QEMU will know if it needs to guarrantee the write persistence to the vNVDIMM backend. The 'nvdimm-persistence' property allows users to set platform-supported features about NVDIMM data persistence of a guest. The 'unarmed' property allows users to mark vNVDIMM read-only. Only the device DAX on the real NVDIMM can guarantee the guest write persistence, so it's suggested to set 'unarmed' option to 'on' and then vNVDIMM device will be marked as read-only. Libvirt introduces 'alignsize', 'pmem', 'persistence' and 'unarmed' config elements into xml corresponding to 'align', 'pmem', 'nvdimm-persistence' and 'unarmed' properties in QEMU, and update xml parsing, formating and qemu command-line generating process for NVDIMM. Thanks, Zhong, Luyao Luyao Zhong (3): xml: introduce more config elements for NVDIMM memory xml: update xml parsing and formating about NVDIMM memory qemu: update qemu command-line generating for NVDIMM memory docs/formatdomain.html.in | 98 +++++++++++++++--- docs/schemas/domaincommon.rng | 31 +++++- src/conf/domain_conf.c | 115 +++++++++++++++++++-- src/conf/domain_conf.h | 14 +++ src/libvirt_private.syms | 2 + src/qemu/qemu_command.c | 25 +++++ .../memory-hotplug-nvdimm-align.args | 31 ++++++ .../memory-hotplug-nvdimm-align.xml | 58 +++++++++++ .../memory-hotplug-nvdimm-persistence.args | 31 ++++++ .../memory-hotplug-nvdimm-persistence.xml | 58 +++++++++++ .../memory-hotplug-nvdimm-pmem.args | 31 ++++++ .../memory-hotplug-nvdimm-pmem.xml | 58 +++++++++++ .../memory-hotplug-nvdimm-unarmed.args | 31 ++++++ .../memory-hotplug-nvdimm-unarmed.xml | 58 +++++++++++ tests/qemuxml2argvtest.c | 12 +++ .../memory-hotplug-nvdimm-align.xml | 1 + .../memory-hotplug-nvdimm-persistence.xml | 1 + .../memory-hotplug-nvdimm-pmem.xml | 1 + .../memory-hotplug-nvdimm-unarmed.xml | 1 + tests/qemuxml2xmltest.c | 4 + 20 files changed, 636 insertions(+), 25 deletions(-) create mode 100644 tests/qemuxml2argvdata/memory-hotplug-nvdimm-align.args create mode 100644 tests/qemuxml2argvdata/memory-hotplug-nvdimm-align.xml create mode 100644 tests/qemuxml2argvdata/memory-hotplug-nvdimm-persistence.args create mode 100644 tests/qemuxml2argvdata/memory-hotplug-nvdimm-persistence.xml create mode 100644 tests/qemuxml2argvdata/memory-hotplug-nvdimm-pmem.args create mode 100644 tests/qemuxml2argvdata/memory-hotplug-nvdimm-pmem.xml create mode 100644 tests/qemuxml2argvdata/memory-hotplug-nvdimm-unarmed.args create mode 100644 tests/qemuxml2argvdata/memory-hotplug-nvdimm-unarmed.xml create mode 120000 tests/qemuxml2xmloutdata/memory-hotplug-nvdimm-align.xml create mode 120000 tests/qemuxml2xmloutdata/memory-hotplug-nvdimm-persistence.xml create mode 120000 tests/qemuxml2xmloutdata/memory-hotplug-nvdimm-pmem.xml create mode 120000 tests/qemuxml2xmloutdata/memory-hotplug-nvdimm-unarmed.xml -- 2.7.4 -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list