Memory locking limit and zero-copy migrations

Fangge Jin fjin at redhat.com
Fri Aug 19 02:35:56 UTC 2022


On Fri, Aug 19, 2022 at 4:08 AM Milan Zamazal <mzamazal at redhat.com> wrote:

> > Not sure whether you already know this, but I had a hard time
> > differentiating the two concepts:
> > 1. memlock hard limit(shown by prlimit): the hard limit for locked host
> > memory
> > 2. memtune hard limit(memtune->hard_limit): the hard limit for in-use
> host
> > memory, this memory can be swapped out.
>
> No, I didn't know it, thank you for pointing this out.  Indeed, 2. is
> what both the libvirt and kernel documentation seem to say, although not
> so clearly.
>
> But when I add <memtune> with <hard_limit> to the domain XML and then
> start the VM, I can see the limit shown by `prlimit -l' is increased
> accordingly.  This is good for my use case, but does it match what you
> say about the two concepts?

memtune->hard_limit(hard limit of in-use memory) actually takes effect via
cgroup,
you can check the value by:
# virsh memtune uefi1
hard_limit     : 134217728
soft_limit     : unlimited
swap_hard_limit: unlimited
# cat
/sys/fs/cgroup/memory/machine.slice/machine-qemu\\x2d6\\x2duefi1.scope/libvirt/memory.limit_in_bytes

137438953472

When vm starts with memtune->hard_limit set in domain XML, memlock hard
limit(
hard_limit of locked memory, shown by 'prlimit -l')will be set to the value
of
memtune->hard_limit. This's probably because memlock hard limit must be
less
than memtune->hard_limit.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://listman.redhat.com/archives/libvirt-users/attachments/20220819/279ad941/attachment.htm>


More information about the libvirt-users mailing list