passt: Set soft limit for number of open files to hard limit
Default value for /proc/sys/fs/nr_open is 2^20, which is more than enough: set this hard limit as current (soft) limit on start, and drop the 'ulimit -n' from the demo script. Signed-off-by: Stefano Brivio <sbrivio@redhat.com>
This commit is contained in:
parent
48ca38c606
commit
ef25cb39a9
2 changed files with 12 additions and 1 deletions
|
@ -75,7 +75,6 @@ sysctl -w net.ipv6.conf.all.forwarding=1
|
|||
ethtool -K veth_passt tx off
|
||||
ip netns exec passt ethtool -K veth_passt tx off
|
||||
ip netns exec passt sysctl -w net.ipv4.ping_group_range="0 2147483647"
|
||||
ulimit -n 300000
|
||||
|
||||
|
||||
ip netns exec passt ./passt
|
||||
|
|
12
passt.c
12
passt.c
|
@ -18,6 +18,7 @@
|
|||
#include <sys/socket.h>
|
||||
#include <sys/types.h>
|
||||
#include <sys/ioctl.h>
|
||||
#include <sys/resource.h>
|
||||
#include <sys/un.h>
|
||||
#include <ifaddrs.h>
|
||||
#include <linux/if_ether.h>
|
||||
|
@ -513,6 +514,7 @@ int main(int argc, char **argv)
|
|||
struct timespec last_time;
|
||||
struct ctx c = { 0 };
|
||||
int nfds, i, fd_unix;
|
||||
struct rlimit limit;
|
||||
|
||||
if (argc != 1)
|
||||
usage(argv[0]);
|
||||
|
@ -528,6 +530,16 @@ int main(int argc, char **argv)
|
|||
exit(EXIT_FAILURE);
|
||||
}
|
||||
|
||||
if (getrlimit(RLIMIT_NOFILE, &limit)) {
|
||||
perror("getrlimit");
|
||||
exit(EXIT_FAILURE);
|
||||
}
|
||||
limit.rlim_cur = limit.rlim_max;
|
||||
if (setrlimit(RLIMIT_NOFILE, &limit)) {
|
||||
perror("setrlimit");
|
||||
exit(EXIT_FAILURE);
|
||||
}
|
||||
|
||||
if (icmp_sock_init(&c) || tcp_sock_init(&c) || udp_sock_init(&c))
|
||||
exit(EXIT_FAILURE);
|
||||
|
||||
|
|
Loading…
Reference in a new issue