samples/bpf: adjust rlimit RLIMIT_MEMLOCK for traceex2, tracex3 and tracex4
authorJesper Dangaard Brouer <brouer@redhat.com>
Tue, 2 May 2017 12:31:50 +0000 (14:31 +0200)
committerDavid S. Miller <davem@davemloft.net>
Wed, 3 May 2017 13:30:23 +0000 (09:30 -0400)
Needed to adjust max locked memory RLIMIT_MEMLOCK for testing these bpf samples
as these are using more and larger maps than can fit in distro default 64Kbytes limit.

Signed-off-by: Jesper Dangaard Brouer <brouer@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
samples/bpf/tracex2_user.c
samples/bpf/tracex3_user.c
samples/bpf/tracex4_user.c

index ded9804c503418c9ed46b1ffa677455720e33a7b..7fee0f1ba9a313baf2d233b3bf705994c183755e 100644 (file)
@@ -4,6 +4,7 @@
 #include <signal.h>
 #include <linux/bpf.h>
 #include <string.h>
+#include <sys/resource.h>
 
 #include "libbpf.h"
 #include "bpf_load.h"
@@ -112,6 +113,7 @@ static void int_exit(int sig)
 
 int main(int ac, char **argv)
 {
+       struct rlimit r = {1024*1024, RLIM_INFINITY};
        char filename[256];
        long key, next_key, value;
        FILE *f;
@@ -119,6 +121,11 @@ int main(int ac, char **argv)
 
        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 */
index 8f7d199d59459cf16520b62a0ef12dcb7e6f6c04..fe372239d5054c44a7dcb70f05530aa19eb3cfc9 100644 (file)
@@ -11,6 +11,7 @@
 #include <stdbool.h>
 #include <string.h>
 #include <linux/bpf.h>
+#include <sys/resource.h>
 
 #include "libbpf.h"
 #include "bpf_load.h"
@@ -112,11 +113,17 @@ static void print_hist(int fd)
 
 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;
index 03449f773cb1f4da6b1e42c272cc1c83da36074f..22c644f1f4c378db2877e94977dcfdd5df87118a 100644 (file)
@@ -12,6 +12,8 @@
 #include <string.h>
 #include <time.h>
 #include <linux/bpf.h>
+#include <sys/resource.h>
+
 #include "libbpf.h"
 #include "bpf_load.h"
 
@@ -50,11 +52,17 @@ static void print_old_objects(int fd)
 
 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;