qemu_init: increase NOFILE soft limit on POSIX
commit03e471c41d8b1b6eb16c9714f387449f52fe5c1d
authorFiona Ebner <f.ebner@proxmox.com>
Mon, 18 Dec 2023 10:13:40 +0000 (18 11:13 +0100)
committerDaniel P. Berrangé <berrange@redhat.com>
Fri, 9 Feb 2024 12:47:58 +0000 (9 12:47 +0000)
tree4f14dd51f82a8a3c985b8ab9f1826e6d031f30e4
parent52ed9f455ee0063958a1b18e54cab9a427fc422f
qemu_init: increase NOFILE soft limit on POSIX

In many configurations, e.g. multiple vNICs with multiple queues or
with many Ceph OSDs, the default soft limit of 1024 is not enough.
QEMU is supposed to work fine with file descriptors >= 1024 and does
not use select() on POSIX. Bump the soft limit to the allowed hard
limit to avoid issues with the aforementioned configurations.

Of course the limit could be raised from the outside, but the man page
of systemd.exec states about 'LimitNOFILE=':

> Don't use.
> [...]
> Typically applications should increase their soft limit to the hard
> limit on their own, if they are OK with working with file
> descriptors above 1023,

If the soft limit is already the same as the hard limit, avoid the
superfluous setrlimit call. This can avoid a warning with a strict
seccomp filter blocking setrlimit if NOFILE was already raised before
executing QEMU.

Buglink: https://bugzilla.proxmox.com/show_bug.cgi?id=4507
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
Signed-off-by: Fiona Ebner <f.ebner@proxmox.com>
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
include/sysemu/os-posix.h
include/sysemu/os-win32.h
os-posix.c
system/vl.c