Skip to content

Commit b25acda

Browse files
laoaranakryiko
authored andcommitted
samples/bpf: Use libbpf 1.0 API mode instead of RLIMIT_MEMLOCK
We have switched to memcg-based memory accouting and thus the rlimit is not needed any more. LIBBPF_STRICT_AUTO_RLIMIT_MEMLOCK was introduced in libbpf for backward compatibility, so we can use it instead now. This patch also removes the useless header sys/resource.h from many files in samples/bpf. Signed-off-by: Yafang Shao <[email protected]> Signed-off-by: Andrii Nakryiko <[email protected]> Link: https://lore.kernel.org/bpf/[email protected]
1 parent d252a4a commit b25acda

31 files changed

+7
-42
lines changed

samples/bpf/cpustat_user.c

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,6 @@
1313
#include <sys/types.h>
1414
#include <sys/stat.h>
1515
#include <sys/time.h>
16-
#include <sys/resource.h>
1716
#include <sys/wait.h>
1817

1918
#include <bpf/bpf.h>

samples/bpf/hbm.c

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,6 @@
3434
#include <stdio.h>
3535
#include <stdlib.h>
3636
#include <assert.h>
37-
#include <sys/resource.h>
3837
#include <sys/time.h>
3938
#include <unistd.h>
4039
#include <errno.h>
@@ -46,7 +45,6 @@
4645
#include <bpf/bpf.h>
4746
#include <getopt.h>
4847

49-
#include "bpf_rlimit.h"
5048
#include "cgroup_helpers.h"
5149
#include "hbm.h"
5250
#include "bpf_util.h"
@@ -510,5 +508,8 @@ int main(int argc, char **argv)
510508
prog = argv[optind];
511509
printf("HBM prog: %s\n", prog != NULL ? prog : "NULL");
512510

511+
/* Use libbpf 1.0 API mode */
512+
libbpf_set_strict_mode(LIBBPF_STRICT_ALL);
513+
513514
return run_bpf_prog(prog, cg_id);
514515
}

samples/bpf/ibumad_user.c

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,6 @@
1919
#include <sys/types.h>
2020
#include <limits.h>
2121

22-
#include <sys/resource.h>
2322
#include <getopt.h>
2423
#include <net/if.h>
2524

samples/bpf/map_perf_test_user.c

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,6 @@
1313
#include <signal.h>
1414
#include <string.h>
1515
#include <time.h>
16-
#include <sys/resource.h>
1716
#include <arpa/inet.h>
1817
#include <errno.h>
1918

samples/bpf/offwaketime_user.c

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@
88
#include <linux/perf_event.h>
99
#include <errno.h>
1010
#include <stdbool.h>
11-
#include <sys/resource.h>
1211
#include <bpf/libbpf.h>
1312
#include <bpf/bpf.h>
1413
#include "trace_helpers.h"

samples/bpf/sockex2_user.c

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@
77
#include "sock_example.h"
88
#include <unistd.h>
99
#include <arpa/inet.h>
10-
#include <sys/resource.h>
1110

1211
struct pair {
1312
__u64 packets;

samples/bpf/sockex3_user.c

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@
66
#include "sock_example.h"
77
#include <unistd.h>
88
#include <arpa/inet.h>
9-
#include <sys/resource.h>
109

1110
struct flow_key_record {
1211
__be32 src;

samples/bpf/spintest_user.c

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@
33
#include <unistd.h>
44
#include <string.h>
55
#include <assert.h>
6-
#include <sys/resource.h>
76
#include <bpf/libbpf.h>
87
#include <bpf/bpf.h>
98
#include "trace_helpers.h"

samples/bpf/syscall_tp_user.c

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@
88
#include <string.h>
99
#include <linux/perf_event.h>
1010
#include <errno.h>
11-
#include <sys/resource.h>
1211
#include <bpf/libbpf.h>
1312
#include <bpf/bpf.h>
1413

samples/bpf/task_fd_query_user.c

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@
1010
#include <fcntl.h>
1111
#include <linux/bpf.h>
1212
#include <sys/ioctl.h>
13-
#include <sys/resource.h>
1413
#include <sys/types.h>
1514
#include <sys/stat.h>
1615
#include <linux/perf_event.h>

samples/bpf/test_lru_dist.c

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,6 @@
1313
#include <sched.h>
1414
#include <sys/wait.h>
1515
#include <sys/stat.h>
16-
#include <sys/resource.h>
1716
#include <fcntl.h>
1817
#include <stdlib.h>
1918
#include <time.h>

samples/bpf/test_map_in_map_user.c

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@
22
/*
33
* Copyright (c) 2017 Facebook
44
*/
5-
#include <sys/resource.h>
65
#include <sys/socket.h>
76
#include <arpa/inet.h>
87
#include <stdint.h>

samples/bpf/test_overhead_user.c

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,6 @@
1616
#include <linux/bpf.h>
1717
#include <string.h>
1818
#include <time.h>
19-
#include <sys/resource.h>
2019
#include <bpf/bpf.h>
2120
#include <bpf/libbpf.h>
2221

samples/bpf/tracex2_user.c

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@
44
#include <stdlib.h>
55
#include <signal.h>
66
#include <string.h>
7-
#include <sys/resource.h>
87

98
#include <bpf/bpf.h>
109
#include <bpf/libbpf.h>

samples/bpf/tracex3_user.c

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@
77
#include <unistd.h>
88
#include <stdbool.h>
99
#include <string.h>
10-
#include <sys/resource.h>
1110

1211
#include <bpf/bpf.h>
1312
#include <bpf/libbpf.h>

samples/bpf/tracex4_user.c

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@
88
#include <stdbool.h>
99
#include <string.h>
1010
#include <time.h>
11-
#include <sys/resource.h>
1211

1312
#include <bpf/bpf.h>
1413
#include <bpf/libbpf.h>

samples/bpf/tracex5_user.c

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@
77
#include <sys/prctl.h>
88
#include <bpf/bpf.h>
99
#include <bpf/libbpf.h>
10-
#include <sys/resource.h>
1110
#include "trace_helpers.h"
1211

1312
#ifdef __mips__

samples/bpf/tracex6_user.c

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@
88
#include <stdio.h>
99
#include <stdlib.h>
1010
#include <sys/ioctl.h>
11-
#include <sys/resource.h>
1211
#include <sys/time.h>
1312
#include <sys/types.h>
1413
#include <sys/wait.h>

samples/bpf/xdp1_user.c

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,6 @@
1111
#include <string.h>
1212
#include <unistd.h>
1313
#include <libgen.h>
14-
#include <sys/resource.h>
1514
#include <net/if.h>
1615

1716
#include "bpf_util.h"

samples/bpf/xdp_adjust_tail_user.c

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,6 @@
1414
#include <stdlib.h>
1515
#include <string.h>
1616
#include <net/if.h>
17-
#include <sys/resource.h>
1817
#include <arpa/inet.h>
1918
#include <netinet/ether.h>
2019
#include <unistd.h>

samples/bpf/xdp_monitor_user.c

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,6 @@ static const char *__doc_err_only__=
1717
#include <ctype.h>
1818
#include <unistd.h>
1919
#include <locale.h>
20-
#include <sys/resource.h>
2120
#include <getopt.h>
2221
#include <net/if.h>
2322
#include <time.h>

samples/bpf/xdp_redirect_cpu_user.c

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,6 @@ static const char *__doc__ =
2121
#include <string.h>
2222
#include <unistd.h>
2323
#include <locale.h>
24-
#include <sys/resource.h>
2524
#include <sys/sysinfo.h>
2625
#include <getopt.h>
2726
#include <net/if.h>

samples/bpf/xdp_redirect_map_multi_user.c

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,6 @@ static const char *__doc__ =
1515
#include <net/if.h>
1616
#include <unistd.h>
1717
#include <libgen.h>
18-
#include <sys/resource.h>
1918
#include <sys/ioctl.h>
2019
#include <sys/types.h>
2120
#include <sys/socket.h>

samples/bpf/xdp_redirect_user.c

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,6 @@ static const char *__doc__ =
1818
#include <unistd.h>
1919
#include <libgen.h>
2020
#include <getopt.h>
21-
#include <sys/resource.h>
2221
#include <bpf/bpf.h>
2322
#include <bpf/libbpf.h>
2423
#include "bpf_util.h"

samples/bpf/xdp_router_ipv4_user.c

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,6 @@
2222
#include <sys/syscall.h>
2323
#include "bpf_util.h"
2424
#include <bpf/libbpf.h>
25-
#include <sys/resource.h>
2625
#include <libgen.h>
2726
#include <getopt.h>
2827
#include <pthread.h>

samples/bpf/xdp_rxq_info_user.c

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,6 @@ static const char *__doc__ = " XDP RX-queue info extract example\n\n"
1414
#include <string.h>
1515
#include <unistd.h>
1616
#include <locale.h>
17-
#include <sys/resource.h>
1817
#include <getopt.h>
1918
#include <net/if.h>
2019
#include <time.h>

samples/bpf/xdp_sample_pkts_user.c

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@
1212
#include <signal.h>
1313
#include <bpf/libbpf.h>
1414
#include <bpf/bpf.h>
15-
#include <sys/resource.h>
1615
#include <libgen.h>
1716
#include <linux/if_link.h>
1817

samples/bpf/xdp_sample_user.c

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,6 @@
2525
#include <string.h>
2626
#include <sys/ioctl.h>
2727
#include <sys/mman.h>
28-
#include <sys/resource.h>
2928
#include <sys/signalfd.h>
3029
#include <sys/sysinfo.h>
3130
#include <sys/timerfd.h>

samples/bpf/xdp_tx_iptunnel_user.c

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@
1010
#include <stdlib.h>
1111
#include <string.h>
1212
#include <net/if.h>
13-
#include <sys/resource.h>
1413
#include <arpa/inet.h>
1514
#include <netinet/ether.h>
1615
#include <unistd.h>

samples/bpf/xdpsock_user.c

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,6 @@
2525
#include <string.h>
2626
#include <sys/capability.h>
2727
#include <sys/mman.h>
28-
#include <sys/resource.h>
2928
#include <sys/socket.h>
3029
#include <sys/types.h>
3130
#include <sys/un.h>
@@ -1886,7 +1885,6 @@ int main(int argc, char **argv)
18861885
{
18871886
struct __user_cap_header_struct hdr = { _LINUX_CAPABILITY_VERSION_3, 0 };
18881887
struct __user_cap_data_struct data[2] = { { 0 } };
1889-
struct rlimit r = {RLIM_INFINITY, RLIM_INFINITY};
18901888
bool rx = false, tx = false;
18911889
struct sched_param schparam;
18921890
struct xsk_umem_info *umem;
@@ -1917,11 +1915,8 @@ int main(int argc, char **argv)
19171915
data[1].effective, data[1].inheritable, data[1].permitted);
19181916
}
19191917
} else {
1920-
if (setrlimit(RLIMIT_MEMLOCK, &r)) {
1921-
fprintf(stderr, "ERROR: setrlimit(RLIMIT_MEMLOCK) \"%s\"\n",
1922-
strerror(errno));
1923-
exit(EXIT_FAILURE);
1924-
}
1918+
/* Use libbpf 1.0 API mode */
1919+
libbpf_set_strict_mode(LIBBPF_STRICT_ALL);
19251920

19261921
if (opt_num_xsks > 1)
19271922
load_xdp_program(argv, &obj);

samples/bpf/xsk_fwd.c

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@
1010
#include <stdlib.h>
1111
#include <string.h>
1212
#include <sys/mman.h>
13-
#include <sys/resource.h>
1413
#include <sys/socket.h>
1514
#include <sys/types.h>
1615
#include <time.h>
@@ -131,7 +130,6 @@ static struct bpool *
131130
bpool_init(struct bpool_params *params,
132131
struct xsk_umem_config *umem_cfg)
133132
{
134-
struct rlimit r = {RLIM_INFINITY, RLIM_INFINITY};
135133
u64 n_slabs, n_slabs_reserved, n_buffers, n_buffers_reserved;
136134
u64 slabs_size, slabs_reserved_size;
137135
u64 buffers_size, buffers_reserved_size;
@@ -140,9 +138,8 @@ bpool_init(struct bpool_params *params,
140138
u8 *p;
141139
int status;
142140

143-
/* mmap prep. */
144-
if (setrlimit(RLIMIT_MEMLOCK, &r))
145-
return NULL;
141+
/* Use libbpf 1.0 API mode */
142+
libbpf_set_strict_mode(LIBBPF_STRICT_ALL);
146143

147144
/* bpool internals dimensioning. */
148145
n_slabs = (params->n_buffers + params->n_buffers_per_slab - 1) /

0 commit comments

Comments
 (0)