v2 of:
https://www.redhat.com/archives/libvir-list/2017-February/msg01229.html
How to test this feature?
$ > /tmp/nvdimm
$ truncate --size 512M /tmp/nvdimm
$ virsh edit $mydom
<memory model='nvdimm' access='shared'>
<source>
<path>/tmp/nvdimm</path>
</source>
<target>
<size unit='MiB'>512</size>
<node>0</node>
<label>
<size unit='KiB'>128</size>
</label>
</target>
<address type='dimm' slot='0'/>
</memory>
$ virsh start $mydom
$ ssh $mydom "echo \"Hello world\" > /dev/pmem0"
$ hexdump -C /tmp/nvdimm
00000000 48 65 6c 6c 6f 20 77 6f 72 6c 64 0a 00 00 00 00 |Hello world.....|
00000010 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
*
20000000
Michal Privoznik (14):
qemuBuildMemoryBackendStr: Reorder args and update comment
Introduce NVDIMM memory model
qemu: Introduce QEMU_CAPS_DEVICE_NVDIMM
qemu: Implement NVDIMM
conf: Introduce @access to <memory/>
qemu: Implement @access for <memory/> banks
qemu: Introduce label-size for NVDIMMs
security_dac: Label host side of NVDIMM
security_selinux: Label host side of NVDIMM
security: Introduce internal APIs for memdev labelling
secdrivers: Implement memdev relabel APIs
qemu_hotplug: Relabel memdev
qemu: Allow nvdimm in devices CGroups
qemu: Namespaces for NVDIMM
docs/formatdomain.html.in | 79 ++++++++---
docs/schemas/domaincommon.rng | 47 +++++--
src/conf/domain_conf.c | 131 +++++++++++++----
src/conf/domain_conf.h | 5 +
src/libvirt_private.syms | 2 +
src/qemu/qemu_alias.c | 10 +-
src/qemu/qemu_capabilities.c | 9 ++
src/qemu/qemu_capabilities.h | 1 +
src/qemu/qemu_cgroup.c | 49 +++++++
src/qemu/qemu_cgroup.h | 4 +
src/qemu/qemu_command.c | 155 +++++++++++++++------
src/qemu/qemu_command.h | 16 ++-
src/qemu/qemu_domain.c | 105 +++++++++++++-
src/qemu/qemu_domain.h | 8 ++
src/qemu/qemu_hotplug.c | 42 +++++-
src/qemu/qemu_security.c | 56 ++++++++
src/qemu/qemu_security.h | 8 ++
src/security/security_dac.c | 76 ++++++++++
src/security/security_driver.h | 9 ++
src/security/security_manager.c | 56 ++++++++
src/security/security_manager.h | 7 +
src/security/security_nop.c | 19 +++
src/security/security_selinux.c | 69 +++++++++
src/security/security_stack.c | 38 +++++
.../qemuxml2argv-memory-hotplug-nvdimm-access.args | 26 ++++
.../qemuxml2argv-memory-hotplug-nvdimm-access.xml | 56 ++++++++
.../qemuxml2argv-memory-hotplug-nvdimm-label.args | 26 ++++
.../qemuxml2argv-memory-hotplug-nvdimm-label.xml | 59 ++++++++
.../qemuxml2argv-memory-hotplug-nvdimm.args | 26 ++++
.../qemuxml2argv-memory-hotplug-nvdimm.xml | 56 ++++++++
tests/qemuxml2argvtest.c | 8 +-
...qemuxml2xmlout-memory-hotplug-nvdimm-access.xml | 1 +
.../qemuxml2xmlout-memory-hotplug-nvdimm-label.xml | 1 +
.../qemuxml2xmlout-memory-hotplug-nvdimm.xml | 1 +
tests/qemuxml2xmltest.c | 3 +
35 files changed, 1144 insertions(+), 120 deletions(-)
create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-memory-hotplug-nvdimm-access.args
create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-memory-hotplug-nvdimm-access.xml
create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-memory-hotplug-nvdimm-label.args
create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-memory-hotplug-nvdimm-label.xml
create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-memory-hotplug-nvdimm.args
create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-memory-hotplug-nvdimm.xml
create mode 120000
tests/qemuxml2xmloutdata/qemuxml2xmlout-memory-hotplug-nvdimm-access.xml
create mode 120000
tests/qemuxml2xmloutdata/qemuxml2xmlout-memory-hotplug-nvdimm-label.xml
create mode 120000 tests/qemuxml2xmloutdata/qemuxml2xmlout-memory-hotplug-nvdimm.xml
--
2.11.0