#include <signal.h>
 #include <linux/bpf.h>
 #include <string.h>
+#include <sys/resource.h>
 
 #include "libbpf.h"
 #include "bpf_load.h"
 
 int main(int ac, char **argv)
 {
+       struct rlimit r = {1024*1024, RLIM_INFINITY};
        char filename[256];
        long key, next_key, value;
        FILE *f;
 
        snprintf(filename, sizeof(filename), "%s_kern.o", argv[0]);
 
+       if (setrlimit(RLIMIT_MEMLOCK, &r)) {
+               perror("setrlimit(RLIMIT_MEMLOCK)");
+               return 1;
+       }
+
        signal(SIGINT, int_exit);
 
        /* start 'ping' in the background to have some kfree_skb events */
 
 #include <stdbool.h>
 #include <string.h>
 #include <linux/bpf.h>
+#include <sys/resource.h>
 
 #include "libbpf.h"
 #include "bpf_load.h"
 
 int main(int ac, char **argv)
 {
+       struct rlimit r = {1024*1024, RLIM_INFINITY};
        char filename[256];
        int i;
 
        snprintf(filename, sizeof(filename), "%s_kern.o", argv[0]);
 
+       if (setrlimit(RLIMIT_MEMLOCK, &r)) {
+               perror("setrlimit(RLIMIT_MEMLOCK)");
+               return 1;
+       }
+
        if (load_bpf_file(filename)) {
                printf("%s", bpf_log_buf);
                return 1;
 
 #include <string.h>
 #include <time.h>
 #include <linux/bpf.h>
+#include <sys/resource.h>
+
 #include "libbpf.h"
 #include "bpf_load.h"
 
 
 int main(int ac, char **argv)
 {
+       struct rlimit r = {RLIM_INFINITY, RLIM_INFINITY};
        char filename[256];
        int i;
 
        snprintf(filename, sizeof(filename), "%s_kern.o", argv[0]);
 
+       if (setrlimit(RLIMIT_MEMLOCK, &r)) {
+               perror("setrlimit(RLIMIT_MEMLOCK, RLIM_INFINITY)");
+               return 1;
+       }
+
        if (load_bpf_file(filename)) {
                printf("%s", bpf_log_buf);
                return 1;