Hide Forgot
Description of problem: When do RDMA migration with rdma-pin-all, the memory hard limit has to be high enough for both guest memory and memory consumed by QEMU, but also setting the limit too high( close to host memory size) may result in QEMU being killed. We should document this to let the user know. Just like this section in doc file formatdomain.html: Memory Backing->locked locked When set and supported by the hypervisor, memory pages belonging to the domain will be locked in host's memory and the host will not be allowed to swap them out. For QEMU/KVM this requires hard_limit memory tuning element to be used and set to the maximum memory configured for the domain plus any memory consumed by the QEMU process itself. Beware of setting the memory limit too high (and thus allowing the domain to lock most of the host's memory). Doing so may be dangerous to both the domain and the host itself since the host's kernel may run out of memory.
See also: https://bugzilla.redhat.com/show_bug.cgi?id=1046833
Fixed upstream by commit 4e116e9dad24ae28558070efdddbdee0d651f56a Refs: v2.5.0-rc1-4-g4e116e9da Author: Jiri Denemark <jdenemar> AuthorDate: Thu Nov 24 16:32:19 2016 +0100 Commit: Jiri Denemark <jdenemar> CommitDate: Tue Nov 29 16:48:03 2016 +0100 Enhance documentation of virDomainMigrateFlags The enhanced documentation of VIR_MIGRATE_RDMA_PIN_ALL fixes https://bugzilla.redhat.com/show_bug.cgi?id=1373783 Signed-off-by: Jiri Denemark <jdenemar>
For end users, it's not very convenient to check the information in code file, I suggest that the comments to be added in documents such as /usr/share/doc/libvirt-docs-2.5.0/html/formatdomain.html(hard_limit) or migration.html.
The API docs is the right place for someone who wants to use the API, but you're right it's not easily visible to a user. I guess virsh man page would be the right place.
Fixed upstream by commit 440838472d860224a94a77ca1f2c100df6c3ca77 Refs: v3.7.0-83-g440838472d Author: Jiri Denemark <jdenemar> AuthorDate: Fri Sep 8 21:31:29 2017 +0200 Commit: Jiri Denemark <jdenemar> CommitDate: Mon Sep 18 10:30:47 2017 +0200 virsh: Enhance documentation of --rdma-pin-all option https://bugzilla.redhat.com/show_bug.cgi?id=1373783 Signed-off-by: Jiri Denemark <jdenemar> Reviewed-by: Pavel Hrdina <phrdina>
Can reproduce with libvirt-3.2.0-14.el7_4.2.x86_64. Steps to reproduce: # man virsh ... migrate [--live] [--offline] [--direct] [--p2p [--tunnelled]] [--persistent] [--undefinesource] [--suspend] [--copy-storage-all] [--copy-storage-inc] [--change-protection] [--unsafe] [--verbose] [--rdma-pin-all] ... ... --rdma-pin-all can be used with RDMA migration (i.e., when migrateuri starts with rdma://) to tell the hypervisor to pin all domain's memory at once before migration starts rather than letting it pin memory pages as needed. ... Verify this bug with libvirt-3.8.0-1.el7.x86_64. Steps to verify: # man virsh ... migrate [--live] [--offline] [--direct] [--p2p [--tunnelled]] [--persistent] [--undefinesource] [--suspend] [--copy-storage-all] [--copy-storage-inc] [--change-protection] [--unsafe] [--verbose] [--rdma-pin-all] ... ... --rdma-pin-all can be used with RDMA migration (i.e., when migrateuri starts with rdma://) to tell the hypervisor to pin all domain's memory at once before migration starts rather than letting it pin memory pages as needed. For QEMU/KVM this requires hard_limit memory tuning element (in the domain XML) to be used and set to the maximum memory configured for the domain plus any memory consumed by the QEMU process itself. Beware of setting the memory limit too high (and thus allowing the domain to lock most of the host's memory). Doing so may be dangerous to both the domain and the host itself since the host's kernel may run out of memory. Mark this bug as verified.
Since the problem described in this bug report should be resolved in a recent advisory, it has been closed with a resolution of ERRATA. For information on the advisory, and where to find the updated files, follow the link below. If the solution does not work for you, open a new bug report. https://access.redhat.com/errata/RHEA-2018:0704