Tested with libvirt v7.2.0-381-g3c3c55be66 and
qemu-5.2.0-0.7.rc2.fc34.x86_64

S1.  Without hugepage
1.Start domain with virtio-mem device, and check the value of <memory> is
the total memory number including virtio-mem device.
# virsh start pc_test
2.  Hot plug a virtio-mem device, the values of memory & currentMemory are
refreshed accordingly.
 # cat mem.xml
    <memory model='virtio-mem'>
      <source>
        <nodemask>0</nodemask>
        <pagesize unit='KiB'>2048</pagesize>
      </source>
      <target>
        <size unit='KiB'>131072</size>
        <node>0</node>
        <block unit='KiB'>2048</block>
        <requested unit='KiB'>131072</requested>
        <actual unit='KiB'>131072</actual>
      </target>
    </memory>
#virsh attach-device pc_test mem.xml
3. Updated the requested size, and it's changed as expected from the output
of "virsh dumpxml "
# virsh update-memory-device pc_test --alias virtiomem1 --requested-size
100MiB

S2. With below hugepage configuration, tested above 3 steps again, and all
steps worked.
<memoryBacking>
 <hugepages/>
</memoryBacking>

S3. Hot plug virtio-pmem and the value of <memory> is updated accordingly.
  <memory model='virtio-pmem' access='shared'>
      <source>
        <path>/tmp/nvdimm</path>
      </source>
      <target>
        <size unit='KiB'>131072</size>
        <label>
        <size unit='KiB'>128</size>
        </label>
         </target>
    </memory>
# virsh attach-device pc_test pmem.xml
Device attached successfully
#virsh dumpxml pc_test
...

--
Tested-by Jing Qi <ji...@redhat.com>



On Fri, Apr 23, 2021 at 9:25 PM Michal Privoznik <mpriv...@redhat.com>
wrote:

> This is a rebased version of v3 I've sent about a month ago:
>
> https://listman.redhat.com/archives/libvir-list/2021-March/msg00823.html
>
> v2 here:
>
> https://listman.redhat.com/archives/libvir-list/2021-February/msg00961.html
>
> My intent is to merge these only after the upcoming release so that we
> have the biggest test window possible.
>
> diff to v2:
> - Dropped code that forbade use of virtio-mem and memballoon at the same
>   time;
> - This meant that I had to adjust memory accounting,
>   qemuDomainSetMemoryFlags() - see patches 11/15 and 12/15 which are new.
> - Fixed small nits raised by Peter in his review of v2
>
>
> Michal Prívozník (14):
>   virhostmem: Introduce virHostMemGetTHPSize()
>   qemu_process: Deduplicate code in qemuProcessNeedHugepagesPath()
>   qemu_process: Drop needless check in
>     qemuProcessNeedMemoryBackingPath()
>   qemu_capabilities: Introduce QEMU_CAPS_DEVICE_VIRTIO_MEM_PCI
>   conf: Introduce virtio-mem <memory/> model
>   qemu: Build command line for virtio-mem
>   qemu: Wire up <memory/> live update
>   qemu: Wire up MEMORY_DEVICE_SIZE_CHANGE event
>   qemu: Refresh the actual size of virtio-mem on monitor reconnect
>   qemu: Account for both memballoon and virtio-mem
>   qemuDomainSetMemoryFlags: Take virtio-mem into consideration
>   virsh: Introduce update-memory-device command
>   news: document recent virtio memory addition
>   kbase: Document virtio-mem
>
>  NEWS.rst                                      |  16 ++
>  docs/formatdomain.rst                         |  45 +++-
>  docs/kbase/index.rst                          |   4 +
>  docs/kbase/memorydevices.rst                  | 150 +++++++++++
>  docs/kbase/meson.build                        |   1 +
>  docs/manpages/virsh.rst                       |  30 +++
>  docs/schemas/domaincommon.rng                 |  16 ++
>  examples/c/misc/event-test.c                  |  17 ++
>  include/libvirt/libvirt-domain.h              |  23 ++
>  src/conf/domain_conf.c                        | 115 ++++++++-
>  src/conf/domain_conf.h                        |  15 ++
>  src/conf/domain_event.c                       |  84 +++++++
>  src/conf/domain_event.h                       |  10 +
>  src/conf/domain_validate.c                    |  39 +++
>  src/libvirt_private.syms                      |   5 +
>  src/qemu/qemu_alias.c                         |  10 +-
>  src/qemu/qemu_capabilities.c                  |   2 +
>  src/qemu/qemu_capabilities.h                  |   1 +
>  src/qemu/qemu_command.c                       |  13 +-
>  src/qemu/qemu_domain.c                        |  50 +++-
>  src/qemu/qemu_domain.h                        |   1 +
>  src/qemu/qemu_domain_address.c                |  38 ++-
>  src/qemu/qemu_driver.c                        | 233 +++++++++++++++++-
>  src/qemu/qemu_hotplug.c                       |  18 ++
>  src/qemu/qemu_hotplug.h                       |   5 +
>  src/qemu/qemu_monitor.c                       |  37 +++
>  src/qemu/qemu_monitor.h                       |  28 +++
>  src/qemu/qemu_monitor_json.c                  |  97 ++++++--
>  src/qemu/qemu_monitor_json.h                  |   5 +
>  src/qemu/qemu_process.c                       | 118 ++++++++-
>  src/qemu/qemu_validate.c                      |   8 +
>  src/remote/remote_daemon_dispatch.c           |  30 +++
>  src/remote/remote_driver.c                    |  32 +++
>  src/remote/remote_protocol.x                  |  14 +-
>  src/remote_protocol-structs                   |   7 +
>  src/security/security_apparmor.c              |   1 +
>  src/security/security_dac.c                   |   2 +
>  src/security/security_selinux.c               |   2 +
>  src/util/virhostmem.c                         |  63 +++++
>  src/util/virhostmem.h                         |   3 +
>  tests/domaincapsmock.c                        |   9 +
>  .../caps_5.1.0.x86_64.xml                     |   1 +
>  .../caps_5.2.0.x86_64.xml                     |   1 +
>  .../caps_6.0.0.x86_64.xml                     |   1 +
>  ...mory-hotplug-virtio-mem.x86_64-latest.args |  41 +++
>  .../memory-hotplug-virtio-mem.xml             |  67 +++++
>  tests/qemuxml2argvtest.c                      |   1 +
>  ...emory-hotplug-virtio-mem.x86_64-latest.xml |   1 +
>  tests/qemuxml2xmltest.c                       |   1 +
>  tools/virsh-domain.c                          | 169 +++++++++++++
>  50 files changed, 1613 insertions(+), 67 deletions(-)
>  create mode 100644 docs/kbase/memorydevices.rst
>  create mode 100644
> tests/qemuxml2argvdata/memory-hotplug-virtio-mem.x86_64-latest.args
>  create mode 100644 tests/qemuxml2argvdata/memory-hotplug-virtio-mem.xml
>  create mode 120000
> tests/qemuxml2xmloutdata/memory-hotplug-virtio-mem.x86_64-latest.xml
>
> --
> 2.26.3
>
>

-- 
Thanks & Regards,
Jing,Qi

Reply via email to