[libvirt] [PATCH v3 00/17] Introduce NVDIMM support

Michal Privoznik posted 17 patches 123 weeks ago
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/libvirt tags/patchew/cover.1489075458.git.mprivozn@redhat.com
docs/formatdomain.html.in                          |  83 ++++++++--
docs/schemas/domaincommon.rng                      |  47 ++++--
src/conf/domain_conf.c                             | 146 +++++++++++++----
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                            | 172 +++++++++++++--------
src/qemu/qemu_command.h                            |  15 +-
src/qemu/qemu_domain.c                             | 113 +++++++++++++-
src/qemu/qemu_domain.h                             |   8 +
src/qemu/qemu_hotplug.c                            |  40 ++++-
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, 1164 insertions(+), 141 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

[libvirt] [PATCH v3 00/17] Introduce NVDIMM support

Posted by Michal Privoznik 123 weeks ago
NVDIMMs are new type of ultra fast storage that's plugged into DIMM slot and
can hold the stored info throughout reboots. After all, NV stands for
non-volatile. In virtualization world, this has an awesome advantage - less
VM_EXITs on 'disk' IO.

https://nvdimm.wiki.kernel.org/

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


diff to v2:
    - John's review points worked in
    - Couple of more patches to clean up qemuBuildMemoryBackendStr


Michal Privoznik (17):
  qemuBuildMemoryBackendStr: Don't overwrite @force
  qemuBuildMemoryBackendStr: Check for @memAccess properly
  qemuBuildMemoryBackendStr: Pass virDomainMemoryDefPtr
  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                          |  83 ++++++++--
 docs/schemas/domaincommon.rng                      |  47 ++++--
 src/conf/domain_conf.c                             | 146 +++++++++++++----
 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                            | 172 +++++++++++++--------
 src/qemu/qemu_command.h                            |  15 +-
 src/qemu/qemu_domain.c                             | 113 +++++++++++++-
 src/qemu/qemu_domain.h                             |   8 +
 src/qemu/qemu_hotplug.c                            |  40 ++++-
 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, 1164 insertions(+), 141 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

--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list