forked from Qortal/Brooklyn
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
28 lines
907 B
28 lines
907 B
#include <sys/resource.h> |
|
#include <stdio.h> |
|
|
|
static __attribute__((constructor)) void bpf_rlimit_ctor(void) |
|
{ |
|
struct rlimit rlim_old, rlim_new = { |
|
.rlim_cur = RLIM_INFINITY, |
|
.rlim_max = RLIM_INFINITY, |
|
}; |
|
|
|
getrlimit(RLIMIT_MEMLOCK, &rlim_old); |
|
/* For the sake of running the test cases, we temporarily |
|
* set rlimit to infinity in order for kernel to focus on |
|
* errors from actual test cases and not getting noise |
|
* from hitting memlock limits. The limit is on per-process |
|
* basis and not a global one, hence destructor not really |
|
* needed here. |
|
*/ |
|
if (setrlimit(RLIMIT_MEMLOCK, &rlim_new) < 0) { |
|
perror("Unable to lift memlock rlimit"); |
|
/* Trying out lower limit, but expect potential test |
|
* case failures from this! |
|
*/ |
|
rlim_new.rlim_cur = rlim_old.rlim_cur + (1UL << 20); |
|
rlim_new.rlim_max = rlim_old.rlim_max + (1UL << 20); |
|
setrlimit(RLIMIT_MEMLOCK, &rlim_new); |
|
} |
|
}
|
|
|