samples/bpf: adjust rlimit RLIMIT_MEMLOCK for traceex2, tracex3 and tracex4

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>
This commit is contained in:
Jesper Dangaard Brouer 2017-05-02 14:31:50 +02:00 committed by David S. Miller
parent 89c9fea3c8
commit 55de170382
3 changed files with 22 additions and 0 deletions

View File

@ -4,6 +4,7 @@
#include <signal.h> #include <signal.h>
#include <linux/bpf.h> #include <linux/bpf.h>
#include <string.h> #include <string.h>
#include <sys/resource.h>
#include "libbpf.h" #include "libbpf.h"
#include "bpf_load.h" #include "bpf_load.h"
@ -112,6 +113,7 @@ static void int_exit(int sig)
int main(int ac, char **argv) int main(int ac, char **argv)
{ {
struct rlimit r = {1024*1024, RLIM_INFINITY};
char filename[256]; char filename[256];
long key, next_key, value; long key, next_key, value;
FILE *f; FILE *f;
@ -119,6 +121,11 @@ int main(int ac, char **argv)
snprintf(filename, sizeof(filename), "%s_kern.o", argv[0]); snprintf(filename, sizeof(filename), "%s_kern.o", argv[0]);
if (setrlimit(RLIMIT_MEMLOCK, &r)) {
perror("setrlimit(RLIMIT_MEMLOCK)");
return 1;
}
signal(SIGINT, int_exit); signal(SIGINT, int_exit);
/* start 'ping' in the background to have some kfree_skb events */ /* start 'ping' in the background to have some kfree_skb events */

View File

@ -11,6 +11,7 @@
#include <stdbool.h> #include <stdbool.h>
#include <string.h> #include <string.h>
#include <linux/bpf.h> #include <linux/bpf.h>
#include <sys/resource.h>
#include "libbpf.h" #include "libbpf.h"
#include "bpf_load.h" #include "bpf_load.h"
@ -112,11 +113,17 @@ static void print_hist(int fd)
int main(int ac, char **argv) int main(int ac, char **argv)
{ {
struct rlimit r = {1024*1024, RLIM_INFINITY};
char filename[256]; char filename[256];
int i; int i;
snprintf(filename, sizeof(filename), "%s_kern.o", argv[0]); 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)) { if (load_bpf_file(filename)) {
printf("%s", bpf_log_buf); printf("%s", bpf_log_buf);
return 1; return 1;

View File

@ -12,6 +12,8 @@
#include <string.h> #include <string.h>
#include <time.h> #include <time.h>
#include <linux/bpf.h> #include <linux/bpf.h>
#include <sys/resource.h>
#include "libbpf.h" #include "libbpf.h"
#include "bpf_load.h" #include "bpf_load.h"
@ -50,11 +52,17 @@ static void print_old_objects(int fd)
int main(int ac, char **argv) int main(int ac, char **argv)
{ {
struct rlimit r = {RLIM_INFINITY, RLIM_INFINITY};
char filename[256]; char filename[256];
int i; int i;
snprintf(filename, sizeof(filename), "%s_kern.o", argv[0]); 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)) { if (load_bpf_file(filename)) {
printf("%s", bpf_log_buf); printf("%s", bpf_log_buf);
return 1; return 1;