Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

bpf: samples: Do not touch RLIMIT_MEMLOCK

Since bpf is not using rlimit memlock for the memory accounting
and control, do not change the limit in sample applications.

Signed-off-by: Roman Gushchin <guro@fb.com>
Signed-off-by: Alexei Starovoitov <ast@kernel.org>
Acked-by: Song Liu <songliubraving@fb.com>
Link: https://lore.kernel.org/bpf/20201201215900.3569844-35-guro@fb.com

authored by

Roman Gushchin and committed by
Alexei Starovoitov
5b0764b2 3ac1f01b

-133
-6
samples/bpf/map_perf_test_user.c
··· 421 421 422 422 int main(int argc, char **argv) 423 423 { 424 - struct rlimit r = {RLIM_INFINITY, RLIM_INFINITY}; 425 424 int nr_cpus = sysconf(_SC_NPROCESSORS_ONLN); 426 425 struct bpf_link *links[8]; 427 426 struct bpf_program *prog; ··· 428 429 struct bpf_map *map; 429 430 char filename[256]; 430 431 int i = 0; 431 - 432 - if (setrlimit(RLIMIT_MEMLOCK, &r)) { 433 - perror("setrlimit(RLIMIT_MEMLOCK)"); 434 - return 1; 435 - } 436 432 437 433 if (argc > 1) 438 434 test_flags = atoi(argv[1]) ? : test_flags;
-6
samples/bpf/offwaketime_user.c
··· 95 95 96 96 int main(int argc, char **argv) 97 97 { 98 - struct rlimit r = {RLIM_INFINITY, RLIM_INFINITY}; 99 98 struct bpf_object *obj = NULL; 100 99 struct bpf_link *links[2]; 101 100 struct bpf_program *prog; 102 101 int delay = 1, i = 0; 103 102 char filename[256]; 104 - 105 - if (setrlimit(RLIMIT_MEMLOCK, &r)) { 106 - perror("setrlimit(RLIMIT_MEMLOCK)"); 107 - return 1; 108 - } 109 103 110 104 if (load_kallsyms()) { 111 105 printf("failed to process /proc/kallsyms\n");
-2
samples/bpf/sockex2_user.c
··· 16 16 17 17 int main(int ac, char **argv) 18 18 { 19 - struct rlimit r = {RLIM_INFINITY, RLIM_INFINITY}; 20 19 struct bpf_object *obj; 21 20 int map_fd, prog_fd; 22 21 char filename[256]; ··· 23 24 FILE *f; 24 25 25 26 snprintf(filename, sizeof(filename), "%s_kern.o", argv[0]); 26 - setrlimit(RLIMIT_MEMLOCK, &r); 27 27 28 28 if (bpf_prog_load(filename, BPF_PROG_TYPE_SOCKET_FILTER, 29 29 &obj, &prog_fd))
-2
samples/bpf/sockex3_user.c
··· 26 26 int main(int argc, char **argv) 27 27 { 28 28 int i, sock, key, fd, main_prog_fd, jmp_table_fd, hash_map_fd; 29 - struct rlimit r = {RLIM_INFINITY, RLIM_INFINITY}; 30 29 struct bpf_program *prog; 31 30 struct bpf_object *obj; 32 31 const char *section; ··· 33 34 FILE *f; 34 35 35 36 snprintf(filename, sizeof(filename), "%s_kern.o", argv[0]); 36 - setrlimit(RLIMIT_MEMLOCK, &r); 37 37 38 38 obj = bpf_object__open_file(filename, NULL); 39 39 if (libbpf_get_error(obj)) {
-6
samples/bpf/spintest_user.c
··· 10 10 11 11 int main(int ac, char **argv) 12 12 { 13 - struct rlimit r = {RLIM_INFINITY, RLIM_INFINITY}; 14 13 char filename[256], symbol[256]; 15 14 struct bpf_object *obj = NULL; 16 15 struct bpf_link *links[20]; ··· 18 19 int map_fd, i, j = 0; 19 20 const char *section; 20 21 struct ksym *sym; 21 - 22 - if (setrlimit(RLIMIT_MEMLOCK, &r)) { 23 - perror("setrlimit(RLIMIT_MEMLOCK)"); 24 - return 1; 25 - } 26 22 27 23 if (load_kallsyms()) { 28 24 printf("failed to process /proc/kallsyms\n");
-2
samples/bpf/syscall_tp_user.c
··· 115 115 116 116 int main(int argc, char **argv) 117 117 { 118 - struct rlimit r = {RLIM_INFINITY, RLIM_INFINITY}; 119 118 int opt, num_progs = 1; 120 119 char filename[256]; 121 120 ··· 130 131 } 131 132 } 132 133 133 - setrlimit(RLIMIT_MEMLOCK, &r); 134 134 snprintf(filename, sizeof(filename), "%s_kern.o", argv[0]); 135 135 136 136 return test(filename, num_progs);
-6
samples/bpf/task_fd_query_user.c
··· 310 310 311 311 int main(int argc, char **argv) 312 312 { 313 - struct rlimit r = {RLIM_INFINITY, RLIM_INFINITY}; 314 313 extern char __executable_start; 315 314 char filename[256], buf[256]; 316 315 __u64 uprobe_file_offset; 317 316 struct bpf_program *prog; 318 317 struct bpf_object *obj; 319 318 int i = 0, err = -1; 320 - 321 - if (setrlimit(RLIMIT_MEMLOCK, &r)) { 322 - perror("setrlimit(RLIMIT_MEMLOCK)"); 323 - return err; 324 - } 325 319 326 320 if (load_kallsyms()) { 327 321 printf("failed to process /proc/kallsyms\n");
-3
samples/bpf/test_lru_dist.c
··· 489 489 490 490 int main(int argc, char **argv) 491 491 { 492 - struct rlimit r = {RLIM_INFINITY, RLIM_INFINITY}; 493 492 int map_flags[] = {0, BPF_F_NO_COMMON_LRU}; 494 493 const char *dist_file; 495 494 int nr_tasks = 1; ··· 506 507 nr_tasks = atoi(argv[3]); 507 508 508 509 setbuf(stdout, NULL); 509 - 510 - assert(!setrlimit(RLIMIT_MEMLOCK, &r)); 511 510 512 511 srand(time(NULL)); 513 512
-6
samples/bpf/test_map_in_map_user.c
··· 114 114 115 115 int main(int argc, char **argv) 116 116 { 117 - struct rlimit r = {RLIM_INFINITY, RLIM_INFINITY}; 118 117 struct bpf_link *link = NULL; 119 118 struct bpf_program *prog; 120 119 struct bpf_object *obj; 121 120 char filename[256]; 122 - 123 - if (setrlimit(RLIMIT_MEMLOCK, &r)) { 124 - perror("setrlimit(RLIMIT_MEMLOCK)"); 125 - return 1; 126 - } 127 121 128 122 snprintf(filename, sizeof(filename), "%s_kern.o", argv[0]); 129 123 obj = bpf_object__open_file(filename, NULL);
-2
samples/bpf/test_overhead_user.c
··· 162 162 163 163 int main(int argc, char **argv) 164 164 { 165 - struct rlimit r = {RLIM_INFINITY, RLIM_INFINITY}; 166 165 int num_cpu = sysconf(_SC_NPROCESSORS_ONLN); 167 166 int test_flags = ~0; 168 167 char filename[256]; 169 168 int err = 0; 170 169 171 - setrlimit(RLIMIT_MEMLOCK, &r); 172 170 173 171 if (argc > 1) 174 172 test_flags = atoi(argv[1]) ? : test_flags;
-2
samples/bpf/trace_event_user.c
··· 294 294 295 295 int main(int argc, char **argv) 296 296 { 297 - struct rlimit r = {RLIM_INFINITY, RLIM_INFINITY}; 298 297 struct bpf_object *obj = NULL; 299 298 char filename[256]; 300 299 int error = 1; 301 300 302 301 snprintf(filename, sizeof(filename), "%s_kern.o", argv[0]); 303 - setrlimit(RLIMIT_MEMLOCK, &r); 304 302 305 303 signal(SIGINT, err_exit); 306 304 signal(SIGTERM, err_exit);
-6
samples/bpf/tracex2_user.c
··· 116 116 117 117 int main(int ac, char **argv) 118 118 { 119 - struct rlimit r = {RLIM_INFINITY, RLIM_INFINITY}; 120 119 long key, next_key, value; 121 120 struct bpf_link *links[2]; 122 121 struct bpf_program *prog; ··· 123 124 char filename[256]; 124 125 int i, j = 0; 125 126 FILE *f; 126 - 127 - if (setrlimit(RLIMIT_MEMLOCK, &r)) { 128 - perror("setrlimit(RLIMIT_MEMLOCK)"); 129 - return 1; 130 - } 131 127 132 128 snprintf(filename, sizeof(filename), "%s_kern.o", argv[0]); 133 129 obj = bpf_object__open_file(filename, NULL);
-6
samples/bpf/tracex3_user.c
··· 107 107 108 108 int main(int ac, char **argv) 109 109 { 110 - struct rlimit r = {RLIM_INFINITY, RLIM_INFINITY}; 111 110 struct bpf_link *links[2]; 112 111 struct bpf_program *prog; 113 112 struct bpf_object *obj; ··· 124 125 " -t text only\n"); 125 126 return 1; 126 127 } 127 - } 128 - 129 - if (setrlimit(RLIMIT_MEMLOCK, &r)) { 130 - perror("setrlimit(RLIMIT_MEMLOCK)"); 131 - return 1; 132 128 } 133 129 134 130 snprintf(filename, sizeof(filename), "%s_kern.o", argv[0]);
-6
samples/bpf/tracex4_user.c
··· 48 48 49 49 int main(int ac, char **argv) 50 50 { 51 - struct rlimit r = {RLIM_INFINITY, RLIM_INFINITY}; 52 51 struct bpf_link *links[2]; 53 52 struct bpf_program *prog; 54 53 struct bpf_object *obj; 55 54 char filename[256]; 56 55 int map_fd, i, j = 0; 57 - 58 - if (setrlimit(RLIMIT_MEMLOCK, &r)) { 59 - perror("setrlimit(RLIMIT_MEMLOCK, RLIM_INFINITY)"); 60 - return 1; 61 - } 62 56 63 57 snprintf(filename, sizeof(filename), "%s_kern.o", argv[0]); 64 58 obj = bpf_object__open_file(filename, NULL);
-3
samples/bpf/tracex5_user.c
··· 34 34 35 35 int main(int ac, char **argv) 36 36 { 37 - struct rlimit r = {RLIM_INFINITY, RLIM_INFINITY}; 38 37 struct bpf_link *link = NULL; 39 38 struct bpf_program *prog; 40 39 struct bpf_object *obj; ··· 41 42 const char *section; 42 43 char filename[256]; 43 44 FILE *f; 44 - 45 - setrlimit(RLIMIT_MEMLOCK, &r); 46 45 47 46 snprintf(filename, sizeof(filename), "%s_kern.o", argv[0]); 48 47 obj = bpf_object__open_file(filename, NULL);
-3
samples/bpf/tracex6_user.c
··· 175 175 176 176 int main(int argc, char **argv) 177 177 { 178 - struct rlimit r = {RLIM_INFINITY, RLIM_INFINITY}; 179 178 struct bpf_link *links[2]; 180 179 struct bpf_program *prog; 181 180 struct bpf_object *obj; 182 181 char filename[256]; 183 182 int i = 0; 184 - 185 - setrlimit(RLIMIT_MEMLOCK, &r); 186 183 187 184 snprintf(filename, sizeof(filename), "%s_kern.o", argv[0]); 188 185 obj = bpf_object__open_file(filename, NULL);
-6
samples/bpf/xdp1_user.c
··· 79 79 80 80 int main(int argc, char **argv) 81 81 { 82 - struct rlimit r = {RLIM_INFINITY, RLIM_INFINITY}; 83 82 struct bpf_prog_load_attr prog_load_attr = { 84 83 .prog_type = BPF_PROG_TYPE_XDP, 85 84 }; ··· 113 114 114 115 if (optind == argc) { 115 116 usage(basename(argv[0])); 116 - return 1; 117 - } 118 - 119 - if (setrlimit(RLIMIT_MEMLOCK, &r)) { 120 - perror("setrlimit(RLIMIT_MEMLOCK)"); 121 117 return 1; 122 118 } 123 119
-6
samples/bpf/xdp_adjust_tail_user.c
··· 82 82 83 83 int main(int argc, char **argv) 84 84 { 85 - struct rlimit r = {RLIM_INFINITY, RLIM_INFINITY}; 86 85 struct bpf_prog_load_attr prog_load_attr = { 87 86 .prog_type = BPF_PROG_TYPE_XDP, 88 87 }; ··· 140 141 usage(argv[0]); 141 142 return 1; 142 143 } 143 - } 144 - 145 - if (setrlimit(RLIMIT_MEMLOCK, &r)) { 146 - perror("setrlimit(RLIMIT_MEMLOCK, RLIM_INFINITY)"); 147 - return 1; 148 144 } 149 145 150 146 if (!ifindex) {
-5
samples/bpf/xdp_monitor_user.c
··· 687 687 688 688 int main(int argc, char **argv) 689 689 { 690 - struct rlimit r = {RLIM_INFINITY, RLIM_INFINITY}; 691 690 struct bpf_program *prog; 692 691 int longindex = 0, opt; 693 692 int ret = EXIT_FAILURE; ··· 718 719 } 719 720 720 721 snprintf(filename, sizeof(filename), "%s_kern.o", argv[0]); 721 - if (setrlimit(RLIMIT_MEMLOCK, &r)) { 722 - perror("setrlimit(RLIMIT_MEMLOCK)"); 723 - return ret; 724 - } 725 722 726 723 /* Remove tracepoint program when program is interrupted or killed */ 727 724 signal(SIGINT, int_exit);
-6
samples/bpf/xdp_redirect_cpu_user.c
··· 765 765 766 766 int main(int argc, char **argv) 767 767 { 768 - struct rlimit r = {RLIM_INFINITY, RLIM_INFINITY}; 769 768 char *prog_name = "xdp_cpu_map5_lb_hash_ip_pairs"; 770 769 char *mprog_filename = "xdp_redirect_kern.o"; 771 770 char *redir_interface = NULL, *redir_map = NULL; ··· 802 803 803 804 snprintf(filename, sizeof(filename), "%s_kern.o", argv[0]); 804 805 prog_load_attr.file = filename; 805 - 806 - if (setrlimit(RLIMIT_MEMLOCK, &r)) { 807 - perror("setrlimit(RLIMIT_MEMLOCK)"); 808 - return 1; 809 - } 810 806 811 807 if (bpf_prog_load_xattr(&prog_load_attr, &obj, &prog_fd)) 812 808 return err;
-6
samples/bpf/xdp_redirect_map_user.c
··· 96 96 97 97 int main(int argc, char **argv) 98 98 { 99 - struct rlimit r = {RLIM_INFINITY, RLIM_INFINITY}; 100 99 struct bpf_prog_load_attr prog_load_attr = { 101 100 .prog_type = BPF_PROG_TYPE_XDP, 102 101 }; ··· 131 132 132 133 if (optind == argc) { 133 134 printf("usage: %s <IFNAME|IFINDEX>_IN <IFNAME|IFINDEX>_OUT\n", argv[0]); 134 - return 1; 135 - } 136 - 137 - if (setrlimit(RLIMIT_MEMLOCK, &r)) { 138 - perror("setrlimit(RLIMIT_MEMLOCK)"); 139 135 return 1; 140 136 } 141 137
-6
samples/bpf/xdp_redirect_user.c
··· 97 97 98 98 int main(int argc, char **argv) 99 99 { 100 - struct rlimit r = {RLIM_INFINITY, RLIM_INFINITY}; 101 100 struct bpf_prog_load_attr prog_load_attr = { 102 101 .prog_type = BPF_PROG_TYPE_XDP, 103 102 }; ··· 132 133 133 134 if (optind == argc) { 134 135 printf("usage: %s <IFNAME|IFINDEX>_IN <IFNAME|IFINDEX>_OUT\n", argv[0]); 135 - return 1; 136 - } 137 - 138 - if (setrlimit(RLIMIT_MEMLOCK, &r)) { 139 - perror("setrlimit(RLIMIT_MEMLOCK)"); 140 136 return 1; 141 137 } 142 138
-6
samples/bpf/xdp_router_ipv4_user.c
··· 625 625 626 626 int main(int ac, char **argv) 627 627 { 628 - struct rlimit r = {RLIM_INFINITY, RLIM_INFINITY}; 629 628 struct bpf_prog_load_attr prog_load_attr = { 630 629 .prog_type = BPF_PROG_TYPE_XDP, 631 630 }; ··· 666 667 667 668 if (optind == ac) { 668 669 usage(basename(argv[0])); 669 - return 1; 670 - } 671 - 672 - if (setrlimit(RLIMIT_MEMLOCK, &r)) { 673 - perror("setrlimit(RLIMIT_MEMLOCK)"); 674 670 return 1; 675 671 } 676 672
-6
samples/bpf/xdp_rxq_info_user.c
··· 450 450 int main(int argc, char **argv) 451 451 { 452 452 __u32 cfg_options= NO_TOUCH ; /* Default: Don't touch packet memory */ 453 - struct rlimit r = {RLIM_INFINITY, RLIM_INFINITY}; 454 453 struct bpf_prog_load_attr prog_load_attr = { 455 454 .prog_type = BPF_PROG_TYPE_XDP, 456 455 }; ··· 472 473 473 474 snprintf(filename, sizeof(filename), "%s_kern.o", argv[0]); 474 475 prog_load_attr.file = filename; 475 - 476 - if (setrlimit(RLIMIT_MEMLOCK, &r)) { 477 - perror("setrlimit(RLIMIT_MEMLOCK)"); 478 - return 1; 479 - } 480 476 481 477 if (bpf_prog_load_xattr(&prog_load_attr, &obj, &prog_fd)) 482 478 return EXIT_FAIL;
-6
samples/bpf/xdp_sample_pkts_user.c
··· 109 109 110 110 int main(int argc, char **argv) 111 111 { 112 - struct rlimit r = {RLIM_INFINITY, RLIM_INFINITY}; 113 112 struct bpf_prog_load_attr prog_load_attr = { 114 113 .prog_type = BPF_PROG_TYPE_XDP, 115 114 }; ··· 139 140 140 141 if (optind == argc) { 141 142 usage(basename(argv[0])); 142 - return 1; 143 - } 144 - 145 - if (setrlimit(RLIMIT_MEMLOCK, &r)) { 146 - perror("setrlimit(RLIMIT_MEMLOCK)"); 147 143 return 1; 148 144 } 149 145
-6
samples/bpf/xdp_tx_iptunnel_user.c
··· 155 155 struct bpf_prog_load_attr prog_load_attr = { 156 156 .prog_type = BPF_PROG_TYPE_XDP, 157 157 }; 158 - struct rlimit r = {RLIM_INFINITY, RLIM_INFINITY}; 159 158 int min_port = 0, max_port = 0, vip2tnl_map_fd; 160 159 const char *optstr = "i:a:p:s:d:m:T:P:FSNh"; 161 160 unsigned char opt_flags[256] = {}; ··· 251 252 usage(argv[0]); 252 253 return 1; 253 254 } 254 - } 255 - 256 - if (setrlimit(RLIMIT_MEMLOCK, &r)) { 257 - perror("setrlimit(RLIMIT_MEMLOCK, RLIM_INFINITY)"); 258 - return 1; 259 255 } 260 256 261 257 if (!ifindex) {
-7
samples/bpf/xdpsock_user.c
··· 1489 1489 1490 1490 int main(int argc, char **argv) 1491 1491 { 1492 - struct rlimit r = {RLIM_INFINITY, RLIM_INFINITY}; 1493 1492 bool rx = false, tx = false; 1494 1493 struct xsk_umem_info *umem; 1495 1494 struct bpf_object *obj; ··· 1497 1498 void *bufs; 1498 1499 1499 1500 parse_command_line(argc, argv); 1500 - 1501 - if (setrlimit(RLIMIT_MEMLOCK, &r)) { 1502 - fprintf(stderr, "ERROR: setrlimit(RLIMIT_MEMLOCK) \"%s\"\n", 1503 - strerror(errno)); 1504 - exit(EXIT_FAILURE); 1505 - } 1506 1501 1507 1502 if (opt_num_xsks > 1) 1508 1503 load_xdp_program(argv, &obj);