Skip to content

Commit

Permalink
selftests/bpf: Use bpf_{btf,link,map,prog}_get_info_by_fd()
Browse files Browse the repository at this point in the history
Use the new type-safe wrappers around bpf_obj_get_info_by_fd().
Fix a prog/map mixup in prog_holds_map().

Signed-off-by: Ilya Leoshkevich <iii@linux.ibm.com>
Signed-off-by: Andrii Nakryiko <andrii@kernel.org>
Link: https://lore.kernel.org/bpf/20230214231221.249277-6-iii@linux.ibm.com
  • Loading branch information
Ilya Leoshkevich authored and Andrii Nakryiko committed Feb 16, 2023
1 parent c0ca277 commit c5a237a
Show file tree
Hide file tree
Showing 34 changed files with 109 additions and 101 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ static __u32 get_map_id_from_fd(int map_fd)
uint32_t info_len = sizeof(map_info);
int ret;

ret = bpf_obj_get_info_by_fd(map_fd, &map_info, &info_len);
ret = bpf_map_get_info_by_fd(map_fd, &map_info, &info_len);
CHECK(ret < 0, "Finding map info failed", "error:%s\n",
strerror(errno));

Expand Down
8 changes: 4 additions & 4 deletions tools/testing/selftests/bpf/prog_tests/bpf_iter.c
Original file line number Diff line number Diff line change
Expand Up @@ -195,8 +195,8 @@ static void check_bpf_link_info(const struct bpf_program *prog)
return;

info_len = sizeof(info);
err = bpf_obj_get_info_by_fd(bpf_link__fd(link), &info, &info_len);
ASSERT_OK(err, "bpf_obj_get_info_by_fd");
err = bpf_link_get_info_by_fd(bpf_link__fd(link), &info, &info_len);
ASSERT_OK(err, "bpf_link_get_info_by_fd");
ASSERT_EQ(info.iter.task.tid, getpid(), "check_task_tid");

bpf_link__destroy(link);
Expand Down Expand Up @@ -684,13 +684,13 @@ static void test_overflow(bool test_e2big_overflow, bool ret1)

/* setup filtering map_id in bpf program */
map_info_len = sizeof(map_info);
err = bpf_obj_get_info_by_fd(map1_fd, &map_info, &map_info_len);
err = bpf_map_get_info_by_fd(map1_fd, &map_info, &map_info_len);
if (CHECK(err, "get_map_info", "get map info failed: %s\n",
strerror(errno)))
goto free_map2;
skel->bss->map1_id = map_info.id;

err = bpf_obj_get_info_by_fd(map2_fd, &map_info, &map_info_len);
err = bpf_map_get_info_by_fd(map2_fd, &map_info, &map_info_len);
if (CHECK(err, "get_map_info", "get map info failed: %s\n",
strerror(errno)))
goto free_map2;
Expand Down
20 changes: 10 additions & 10 deletions tools/testing/selftests/bpf/prog_tests/bpf_obj_id.c
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ void serial_test_bpf_obj_id(void)
CHECK(err >= 0 || errno != ENOENT,
"get-fd-by-notexist-link-id", "err %d errno %d\n", err, errno);

/* Check bpf_obj_get_info_by_fd() */
/* Check bpf_map_get_info_by_fd() */
bzero(zeros, sizeof(zeros));
for (i = 0; i < nr_iters; i++) {
now = time(NULL);
Expand Down Expand Up @@ -79,7 +79,7 @@ void serial_test_bpf_obj_id(void)
/* Check getting map info */
info_len = sizeof(struct bpf_map_info) * 2;
bzero(&map_infos[i], info_len);
err = bpf_obj_get_info_by_fd(map_fds[i], &map_infos[i],
err = bpf_map_get_info_by_fd(map_fds[i], &map_infos[i],
&info_len);
if (CHECK(err ||
map_infos[i].type != BPF_MAP_TYPE_ARRAY ||
Expand Down Expand Up @@ -118,8 +118,8 @@ void serial_test_bpf_obj_id(void)
err = clock_gettime(CLOCK_BOOTTIME, &boot_time_ts);
if (CHECK_FAIL(err))
goto done;
err = bpf_obj_get_info_by_fd(prog_fds[i], &prog_infos[i],
&info_len);
err = bpf_prog_get_info_by_fd(prog_fds[i], &prog_infos[i],
&info_len);
load_time = (real_time_ts.tv_sec - boot_time_ts.tv_sec)
+ (prog_infos[i].load_time / nsec_per_sec);
if (CHECK(err ||
Expand Down Expand Up @@ -161,8 +161,8 @@ void serial_test_bpf_obj_id(void)
bzero(&link_infos[i], info_len);
link_infos[i].raw_tracepoint.tp_name = ptr_to_u64(&tp_name);
link_infos[i].raw_tracepoint.tp_name_len = sizeof(tp_name);
err = bpf_obj_get_info_by_fd(bpf_link__fd(links[i]),
&link_infos[i], &info_len);
err = bpf_link_get_info_by_fd(bpf_link__fd(links[i]),
&link_infos[i], &info_len);
if (CHECK(err ||
link_infos[i].type != BPF_LINK_TYPE_RAW_TRACEPOINT ||
link_infos[i].prog_id != prog_infos[i].id ||
Expand Down Expand Up @@ -217,7 +217,7 @@ void serial_test_bpf_obj_id(void)
* prog_info.map_ids = NULL
*/
prog_info.nr_map_ids = 1;
err = bpf_obj_get_info_by_fd(prog_fd, &prog_info, &info_len);
err = bpf_prog_get_info_by_fd(prog_fd, &prog_info, &info_len);
if (CHECK(!err || errno != EFAULT,
"get-prog-fd-bad-nr-map-ids", "err %d errno %d(%d)",
err, errno, EFAULT))
Expand All @@ -228,7 +228,7 @@ void serial_test_bpf_obj_id(void)
saved_map_id = *(int *)((long)prog_infos[i].map_ids);
prog_info.map_ids = prog_infos[i].map_ids;
prog_info.nr_map_ids = 2;
err = bpf_obj_get_info_by_fd(prog_fd, &prog_info, &info_len);
err = bpf_prog_get_info_by_fd(prog_fd, &prog_info, &info_len);
prog_infos[i].jited_prog_insns = 0;
prog_infos[i].xlated_prog_insns = 0;
CHECK(err || info_len != sizeof(struct bpf_prog_info) ||
Expand Down Expand Up @@ -277,7 +277,7 @@ void serial_test_bpf_obj_id(void)
if (CHECK_FAIL(err))
goto done;

err = bpf_obj_get_info_by_fd(map_fd, &map_info, &info_len);
err = bpf_map_get_info_by_fd(map_fd, &map_info, &info_len);
CHECK(err || info_len != sizeof(struct bpf_map_info) ||
memcmp(&map_info, &map_infos[i], info_len) ||
array_value != array_magic_value,
Expand Down Expand Up @@ -322,7 +322,7 @@ void serial_test_bpf_obj_id(void)

nr_id_found++;

err = bpf_obj_get_info_by_fd(link_fd, &link_info, &info_len);
err = bpf_link_get_info_by_fd(link_fd, &link_info, &info_len);
cmp_res = memcmp(&link_info, &link_infos[i],
offsetof(struct bpf_link_info, raw_tracepoint));
CHECK(err || info_len != sizeof(link_info) || cmp_res,
Expand Down
24 changes: 12 additions & 12 deletions tools/testing/selftests/bpf/prog_tests/btf.c
Original file line number Diff line number Diff line change
Expand Up @@ -4422,7 +4422,7 @@ static int test_big_btf_info(unsigned int test_num)
info->btf = ptr_to_u64(user_btf);
info->btf_size = raw_btf_size;

err = bpf_obj_get_info_by_fd(btf_fd, info, &info_len);
err = bpf_btf_get_info_by_fd(btf_fd, info, &info_len);
if (CHECK(!err, "!err")) {
err = -1;
goto done;
Expand All @@ -4435,7 +4435,7 @@ static int test_big_btf_info(unsigned int test_num)
* to userspace.
*/
info_garbage.garbage = 0;
err = bpf_obj_get_info_by_fd(btf_fd, info, &info_len);
err = bpf_btf_get_info_by_fd(btf_fd, info, &info_len);
if (CHECK(err || info_len != sizeof(*info),
"err:%d errno:%d info_len:%u sizeof(*info):%zu",
err, errno, info_len, sizeof(*info))) {
Expand Down Expand Up @@ -4499,7 +4499,7 @@ static int test_btf_id(unsigned int test_num)

/* Test BPF_OBJ_GET_INFO_BY_ID on btf_id */
info_len = sizeof(info[0]);
err = bpf_obj_get_info_by_fd(btf_fd[0], &info[0], &info_len);
err = bpf_btf_get_info_by_fd(btf_fd[0], &info[0], &info_len);
if (CHECK(err, "errno:%d", errno)) {
err = -1;
goto done;
Expand All @@ -4512,7 +4512,7 @@ static int test_btf_id(unsigned int test_num)
}

ret = 0;
err = bpf_obj_get_info_by_fd(btf_fd[1], &info[1], &info_len);
err = bpf_btf_get_info_by_fd(btf_fd[1], &info[1], &info_len);
if (CHECK(err || info[0].id != info[1].id ||
info[0].btf_size != info[1].btf_size ||
(ret = memcmp(user_btf[0], user_btf[1], info[0].btf_size)),
Expand All @@ -4535,7 +4535,7 @@ static int test_btf_id(unsigned int test_num)
}

info_len = sizeof(map_info);
err = bpf_obj_get_info_by_fd(map_fd, &map_info, &info_len);
err = bpf_map_get_info_by_fd(map_fd, &map_info, &info_len);
if (CHECK(err || map_info.btf_id != info[0].id ||
map_info.btf_key_type_id != 1 || map_info.btf_value_type_id != 2,
"err:%d errno:%d info.id:%u btf_id:%u btf_key_type_id:%u btf_value_type_id:%u",
Expand Down Expand Up @@ -4638,7 +4638,7 @@ static void do_test_get_info(unsigned int test_num)
info.btf_size = user_btf_size;

ret = 0;
err = bpf_obj_get_info_by_fd(btf_fd, &info, &info_len);
err = bpf_btf_get_info_by_fd(btf_fd, &info, &info_len);
if (CHECK(err || !info.id || info_len != sizeof(info) ||
info.btf_size != raw_btf_size ||
(ret = memcmp(raw_btf, user_btf, expected_nbytes)),
Expand Down Expand Up @@ -4755,7 +4755,7 @@ static void do_test_file(unsigned int test_num)

/* get necessary program info */
info_len = sizeof(struct bpf_prog_info);
err = bpf_obj_get_info_by_fd(prog_fd, &info, &info_len);
err = bpf_prog_get_info_by_fd(prog_fd, &info, &info_len);

if (CHECK(err < 0, "invalid get info (1st) errno:%d", errno)) {
fprintf(stderr, "%s\n", btf_log_buf);
Expand Down Expand Up @@ -4787,7 +4787,7 @@ static void do_test_file(unsigned int test_num)
info.func_info_rec_size = rec_size;
info.func_info = ptr_to_u64(func_info);

err = bpf_obj_get_info_by_fd(prog_fd, &info, &info_len);
err = bpf_prog_get_info_by_fd(prog_fd, &info, &info_len);

if (CHECK(err < 0, "invalid get info (2nd) errno:%d", errno)) {
fprintf(stderr, "%s\n", btf_log_buf);
Expand Down Expand Up @@ -6405,7 +6405,7 @@ static int test_get_finfo(const struct prog_info_raw_test *test,

/* get necessary lens */
info_len = sizeof(struct bpf_prog_info);
err = bpf_obj_get_info_by_fd(prog_fd, &info, &info_len);
err = bpf_prog_get_info_by_fd(prog_fd, &info, &info_len);
if (CHECK(err < 0, "invalid get info (1st) errno:%d", errno)) {
fprintf(stderr, "%s\n", btf_log_buf);
return -1;
Expand Down Expand Up @@ -6435,7 +6435,7 @@ static int test_get_finfo(const struct prog_info_raw_test *test,
info.nr_func_info = nr_func_info;
info.func_info_rec_size = rec_size;
info.func_info = ptr_to_u64(func_info);
err = bpf_obj_get_info_by_fd(prog_fd, &info, &info_len);
err = bpf_prog_get_info_by_fd(prog_fd, &info, &info_len);
if (CHECK(err < 0, "invalid get info (2nd) errno:%d", errno)) {
fprintf(stderr, "%s\n", btf_log_buf);
err = -1;
Expand Down Expand Up @@ -6499,7 +6499,7 @@ static int test_get_linfo(const struct prog_info_raw_test *test,
nr_jited_func_lens = nr_jited_ksyms;

info_len = sizeof(struct bpf_prog_info);
err = bpf_obj_get_info_by_fd(prog_fd, &info, &info_len);
err = bpf_prog_get_info_by_fd(prog_fd, &info, &info_len);
if (CHECK(err < 0, "err:%d errno:%d", err, errno)) {
err = -1;
goto done;
Expand Down Expand Up @@ -6573,7 +6573,7 @@ static int test_get_linfo(const struct prog_info_raw_test *test,
info.jited_func_lens = ptr_to_u64(jited_func_lens);
}

err = bpf_obj_get_info_by_fd(prog_fd, &info, &info_len);
err = bpf_prog_get_info_by_fd(prog_fd, &info, &info_len);

/*
* Only recheck the info.*line_info* fields.
Expand Down
2 changes: 1 addition & 1 deletion tools/testing/selftests/bpf/prog_tests/btf_map_in_map.c
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ static __u32 bpf_map_id(struct bpf_map *map)
int err;

memset(&info, 0, info_len);
err = bpf_obj_get_info_by_fd(bpf_map__fd(map), &info, &info_len);
err = bpf_map_get_info_by_fd(bpf_map__fd(map), &info, &info_len);
if (err)
return 0;
return info.id;
Expand Down
2 changes: 1 addition & 1 deletion tools/testing/selftests/bpf/prog_tests/check_mtu.c
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,7 @@ static void test_check_mtu_xdp_attach(void)

memset(&link_info, 0, sizeof(link_info));
fd = bpf_link__fd(link);
err = bpf_obj_get_info_by_fd(fd, &link_info, &link_info_len);
err = bpf_link_get_info_by_fd(fd, &link_info, &link_info_len);
if (CHECK(err, "link_info", "failed: %d\n", err))
goto out;

Expand Down
2 changes: 1 addition & 1 deletion tools/testing/selftests/bpf/prog_tests/enable_stats.c
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ void test_enable_stats(void)

prog_fd = bpf_program__fd(skel->progs.test_enable_stats);
memset(&info, 0, info_len);
err = bpf_obj_get_info_by_fd(prog_fd, &info, &info_len);
err = bpf_prog_get_info_by_fd(prog_fd, &info, &info_len);
if (CHECK(err, "get_prog_info",
"failed to get bpf_prog_info for fd %d\n", prog_fd))
goto cleanup;
Expand Down
14 changes: 7 additions & 7 deletions tools/testing/selftests/bpf/prog_tests/fexit_bpf2bpf.c
Original file line number Diff line number Diff line change
Expand Up @@ -79,7 +79,7 @@ static void test_fexit_bpf2bpf_common(const char *obj_file,
return;

info_len = sizeof(prog_info);
err = bpf_obj_get_info_by_fd(tgt_fd, &prog_info, &info_len);
err = bpf_prog_get_info_by_fd(tgt_fd, &prog_info, &info_len);
if (!ASSERT_OK(err, "tgt_fd_get_info"))
goto close_prog;

Expand Down Expand Up @@ -136,8 +136,8 @@ static void test_fexit_bpf2bpf_common(const char *obj_file,

info_len = sizeof(link_info);
memset(&link_info, 0, sizeof(link_info));
err = bpf_obj_get_info_by_fd(bpf_link__fd(link[i]),
&link_info, &info_len);
err = bpf_link_get_info_by_fd(bpf_link__fd(link[i]),
&link_info, &info_len);
ASSERT_OK(err, "link_fd_get_info");
ASSERT_EQ(link_info.tracing.attach_type,
bpf_program__expected_attach_type(prog[i]),
Expand Down Expand Up @@ -417,7 +417,7 @@ static int find_prog_btf_id(const char *name, __u32 attach_prog_fd)
struct btf *btf;
int ret;

ret = bpf_obj_get_info_by_fd(attach_prog_fd, &info, &info_len);
ret = bpf_prog_get_info_by_fd(attach_prog_fd, &info, &info_len);
if (ret)
return ret;

Expand Down Expand Up @@ -483,12 +483,12 @@ static void test_fentry_to_cgroup_bpf(void)
if (!ASSERT_GE(fentry_fd, 0, "load_fentry"))
goto cleanup;

/* Make sure bpf_obj_get_info_by_fd works correctly when attaching
/* Make sure bpf_prog_get_info_by_fd works correctly when attaching
* to another BPF program.
*/

ASSERT_OK(bpf_obj_get_info_by_fd(fentry_fd, &info, &info_len),
"bpf_obj_get_info_by_fd");
ASSERT_OK(bpf_prog_get_info_by_fd(fentry_fd, &info, &info_len),
"bpf_prog_get_info_by_fd");

ASSERT_EQ(info.btf_id, 0, "info.btf_id");
ASSERT_EQ(info.attach_btf_id, btf_id, "info.attach_btf_id");
Expand Down
10 changes: 5 additions & 5 deletions tools/testing/selftests/bpf/prog_tests/flow_dissector_reattach.c
Original file line number Diff line number Diff line change
Expand Up @@ -60,9 +60,9 @@ static __u32 query_prog_id(int prog)
__u32 info_len = sizeof(info);
int err;

err = bpf_obj_get_info_by_fd(prog, &info, &info_len);
err = bpf_prog_get_info_by_fd(prog, &info, &info_len);
if (CHECK_FAIL(err || info_len != sizeof(info))) {
perror("bpf_obj_get_info_by_fd");
perror("bpf_prog_get_info_by_fd");
return 0;
}

Expand Down Expand Up @@ -497,7 +497,7 @@ static void test_link_get_info(int netns, int prog1, int prog2)
}

info_len = sizeof(info);
err = bpf_obj_get_info_by_fd(link, &info, &info_len);
err = bpf_link_get_info_by_fd(link, &info, &info_len);
if (CHECK_FAIL(err)) {
perror("bpf_obj_get_info");
goto out_unlink;
Expand All @@ -521,7 +521,7 @@ static void test_link_get_info(int netns, int prog1, int prog2)

link_id = info.id;
info_len = sizeof(info);
err = bpf_obj_get_info_by_fd(link, &info, &info_len);
err = bpf_link_get_info_by_fd(link, &info, &info_len);
if (CHECK_FAIL(err)) {
perror("bpf_obj_get_info");
goto out_unlink;
Expand All @@ -546,7 +546,7 @@ static void test_link_get_info(int netns, int prog1, int prog2)
netns = -1;

info_len = sizeof(info);
err = bpf_obj_get_info_by_fd(link, &info, &info_len);
err = bpf_link_get_info_by_fd(link, &info, &info_len);
if (CHECK_FAIL(err)) {
perror("bpf_obj_get_info");
goto out_unlink;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,9 +29,9 @@ void test_libbpf_get_fd_by_id_opts(void)
if (!ASSERT_OK(ret, "test_libbpf_get_fd_by_id_opts__attach"))
goto close_prog;

ret = bpf_obj_get_info_by_fd(bpf_map__fd(skel->maps.data_input),
ret = bpf_map_get_info_by_fd(bpf_map__fd(skel->maps.data_input),
&info_m, &len);
if (!ASSERT_OK(ret, "bpf_obj_get_info_by_fd"))
if (!ASSERT_OK(ret, "bpf_map_get_info_by_fd"))
goto close_prog;

fd = bpf_map_get_fd_by_id(info_m.id);
Expand Down
3 changes: 2 additions & 1 deletion tools/testing/selftests/bpf/prog_tests/lsm_cgroup.c
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,8 @@ static __u32 query_prog_cnt(int cgroup_fd, const char *attach_func)

fd = bpf_prog_get_fd_by_id(p.prog_ids[i]);
ASSERT_GE(fd, 0, "prog_get_fd_by_id");
ASSERT_OK(bpf_obj_get_info_by_fd(fd, &info, &info_len), "prog_info_by_fd");
ASSERT_OK(bpf_prog_get_info_by_fd(fd, &info, &info_len),
"prog_info_by_fd");
close(fd);

if (info.attach_btf_id ==
Expand Down
8 changes: 4 additions & 4 deletions tools/testing/selftests/bpf/prog_tests/metadata.c
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ static int duration;
static int prog_holds_map(int prog_fd, int map_fd)
{
struct bpf_prog_info prog_info = {};
struct bpf_prog_info map_info = {};
struct bpf_map_info map_info = {};
__u32 prog_info_len;
__u32 map_info_len;
__u32 *map_ids;
Expand All @@ -25,12 +25,12 @@ static int prog_holds_map(int prog_fd, int map_fd)
int i;

map_info_len = sizeof(map_info);
ret = bpf_obj_get_info_by_fd(map_fd, &map_info, &map_info_len);
ret = bpf_map_get_info_by_fd(map_fd, &map_info, &map_info_len);
if (ret)
return -errno;

prog_info_len = sizeof(prog_info);
ret = bpf_obj_get_info_by_fd(prog_fd, &prog_info, &prog_info_len);
ret = bpf_prog_get_info_by_fd(prog_fd, &prog_info, &prog_info_len);
if (ret)
return -errno;

Expand All @@ -44,7 +44,7 @@ static int prog_holds_map(int prog_fd, int map_fd)
prog_info.map_ids = ptr_to_u64(map_ids);
prog_info_len = sizeof(prog_info);

ret = bpf_obj_get_info_by_fd(prog_fd, &prog_info, &prog_info_len);
ret = bpf_prog_get_info_by_fd(prog_fd, &prog_info, &prog_info_len);
if (ret) {
ret = -errno;
goto free_map_ids;
Expand Down
2 changes: 1 addition & 1 deletion tools/testing/selftests/bpf/prog_tests/mmap.c
Original file line number Diff line number Diff line change
Expand Up @@ -64,7 +64,7 @@ void test_mmap(void)

/* get map's ID */
memset(&map_info, 0, map_info_sz);
err = bpf_obj_get_info_by_fd(data_map_fd, &map_info, &map_info_sz);
err = bpf_map_get_info_by_fd(data_map_fd, &map_info, &map_info_sz);
if (CHECK(err, "map_get_info", "failed %d\n", errno))
goto cleanup;
data_map_id = map_info.id;
Expand Down
Loading

0 comments on commit c5a237a

Please sign in to comment.