[PATCH v3 00/17] Introduce NVDIMM support

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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@xxxxxxxxxx
https://www.redhat.com/mailman/listinfo/libvir-list



[Index of Archives]     [Virt Tools]     [Libvirt Users]     [Lib OS Info]     [Fedora Users]     [Fedora Desktop]     [Fedora SELinux]     [Big List of Linux Books]     [Yosemite News]     [KDE Users]     [Fedora Tools]
  Powered by Linux