#include <sys/resource.h>#include <stdio.h>static__attribute__((constructor))voidbpf_rlimit_ctor(void){structrlimitrlim_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);}}