1
0
mirror of https://gitlab.com/libvirt/libvirt.git synced 2025-03-20 06:50:22 +03:00

util: tell users that memory locking ulimit is too low for BPF

If running libvirtd via systemd, it gets a 64 MB memlock limit, but if
running from the shell it will only get 64 KB on a Fedora 33 system.
The latter low limit causes any attempt to use BPF to fail and it is
not obvious why.

This improves the error message thus:

  # virsh -c lxc:/// start sh
error: Failed to start domain 'sh'
error: internal error: guest failed to start: Failure in libvirt_lxc startup: failed to initialize device BPF map; locked memory limit for libvirtd probably needs to be raised: Operation not permitted

Reviewed-by: Pavel Hrdina <phrdina@redhat.com>
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
This commit is contained in:
Daniel P. Berrangé 2021-03-16 17:04:24 +00:00
parent 695bdb3841
commit fa56310e18

View File

@ -443,9 +443,17 @@ virCgroupV2DevicesCreateMap(size_t size)
sizeof(uint32_t), size);
if (mapfd < 0) {
virReportSystemError(errno, "%s",
_("failed to initialize device BPF map"));
return -1;
if (errno == EPERM) {
virReportSystemError(errno, "%s",
_("failed to initialize device BPF map; "
"locked memory limit for libvirtd probably "
"needs to be raised"));
return -1;
} else {
virReportSystemError(errno, "%s",
_("failed to initialize device BPF map"));
return -1;
}
}
return mapfd;