[libvirt] [RFC 0/3] update NVDIMM support

Luyao Zhong luyao.zhong at intel.com
Wed Oct 17 02:21:42 UTC 2018


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




More information about the libvir-list mailing list