mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git
synced 2025-01-04 04:02:26 +00:00
Merge branch 'libbpf: deprecate some setter and getter APIs'
Andrii Nakryiko says: ==================== Another batch of simple deprecations. One of the last few, hopefully, as we are getting close to deprecating all the planned APIs/features. See individual patches for details. v1->v2: - rebased on latest bpf-next, fixed Closes: reference. ==================== Signed-off-by: Alexei Starovoitov <ast@kernel.org>
This commit is contained in:
commit
451c426044
@ -413,7 +413,7 @@ static void fixup_map(struct bpf_object *obj)
|
||||
for (i = 0; i < NR_TESTS; i++) {
|
||||
if (!strcmp(test_map_names[i], name) &&
|
||||
(check_test_flags(i))) {
|
||||
bpf_map__resize(map, num_map_entries);
|
||||
bpf_map__set_max_entries(map, num_map_entries);
|
||||
continue;
|
||||
}
|
||||
}
|
||||
|
@ -70,7 +70,7 @@ static void print_avail_progs(struct bpf_object *obj)
|
||||
|
||||
printf(" Programs to be used for -p/--progname:\n");
|
||||
bpf_object__for_each_program(pos, obj) {
|
||||
if (bpf_program__is_xdp(pos)) {
|
||||
if (bpf_program__type(pos) == BPF_PROG_TYPE_XDP) {
|
||||
if (!strncmp(bpf_program__name(pos), "xdp_prognum",
|
||||
sizeof("xdp_prognum") - 1))
|
||||
printf(" %s\n", bpf_program__name(pos));
|
||||
|
@ -1218,7 +1218,7 @@ int sample_setup_maps(struct bpf_map **maps)
|
||||
default:
|
||||
return -EINVAL;
|
||||
}
|
||||
if (bpf_map__resize(sample_map[i], sample_map_count[i]) < 0)
|
||||
if (bpf_map__set_max_entries(sample_map[i], sample_map_count[i]) < 0)
|
||||
return -errno;
|
||||
}
|
||||
sample_map[MAP_DEVMAP_XMIT_MULTI] = maps[MAP_DEVMAP_XMIT_MULTI];
|
||||
|
@ -61,7 +61,7 @@ static inline char *safe_strncpy(char *dst, const char *src, size_t size)
|
||||
|
||||
#define __attach_tp(name) \
|
||||
({ \
|
||||
if (!bpf_program__is_tracing(skel->progs.name)) \
|
||||
if (bpf_program__type(skel->progs.name) != BPF_PROG_TYPE_TRACING)\
|
||||
return -EINVAL; \
|
||||
skel->links.name = bpf_program__attach(skel->progs.name); \
|
||||
if (!skel->links.name) \
|
||||
|
@ -378,7 +378,7 @@ static void codegen_attach_detach(struct bpf_object *obj, const char *obj_name)
|
||||
int prog_fd = skel->progs.%2$s.prog_fd; \n\
|
||||
", obj_name, bpf_program__name(prog));
|
||||
|
||||
switch (bpf_program__get_type(prog)) {
|
||||
switch (bpf_program__type(prog)) {
|
||||
case BPF_PROG_TYPE_RAW_TRACEPOINT:
|
||||
tp_name = strchr(bpf_program__section_name(prog), '/') + 1;
|
||||
printf("\tint fd = bpf_raw_tracepoint_open(\"%s\", prog_fd);\n", tp_name);
|
||||
|
@ -2283,10 +2283,10 @@ static int do_profile(int argc, char **argv)
|
||||
profile_obj->rodata->num_metric = num_metric;
|
||||
|
||||
/* adjust map sizes */
|
||||
bpf_map__resize(profile_obj->maps.events, num_metric * num_cpu);
|
||||
bpf_map__resize(profile_obj->maps.fentry_readings, num_metric);
|
||||
bpf_map__resize(profile_obj->maps.accum_readings, num_metric);
|
||||
bpf_map__resize(profile_obj->maps.counts, 1);
|
||||
bpf_map__set_max_entries(profile_obj->maps.events, num_metric * num_cpu);
|
||||
bpf_map__set_max_entries(profile_obj->maps.fentry_readings, num_metric);
|
||||
bpf_map__set_max_entries(profile_obj->maps.accum_readings, num_metric);
|
||||
bpf_map__set_max_entries(profile_obj->maps.counts, 1);
|
||||
|
||||
/* change target name */
|
||||
profile_tgt_name = profile_target_name(profile_tgt_fd);
|
||||
|
@ -147,8 +147,6 @@ LIBBPF_API int btf__resolve_type(const struct btf *btf, __u32 type_id);
|
||||
LIBBPF_API int btf__align_of(const struct btf *btf, __u32 id);
|
||||
LIBBPF_API int btf__fd(const struct btf *btf);
|
||||
LIBBPF_API void btf__set_fd(struct btf *btf, int fd);
|
||||
LIBBPF_DEPRECATED_SINCE(0, 7, "use btf__raw_data() instead")
|
||||
LIBBPF_API const void *btf__get_raw_data(const struct btf *btf, __u32 *size);
|
||||
LIBBPF_API const void *btf__raw_data(const struct btf *btf, __u32 *size);
|
||||
LIBBPF_API const char *btf__name_by_offset(const struct btf *btf, __u32 offset);
|
||||
LIBBPF_API const char *btf__str_by_offset(const struct btf *btf, __u32 offset);
|
||||
@ -159,8 +157,7 @@ LIBBPF_API int btf__get_map_kv_tids(const struct btf *btf, const char *map_name,
|
||||
|
||||
LIBBPF_API struct btf_ext *btf_ext__new(const __u8 *data, __u32 size);
|
||||
LIBBPF_API void btf_ext__free(struct btf_ext *btf_ext);
|
||||
LIBBPF_API const void *btf_ext__get_raw_data(const struct btf_ext *btf_ext,
|
||||
__u32 *size);
|
||||
LIBBPF_API const void *btf_ext__raw_data(const struct btf_ext *btf_ext, __u32 *size);
|
||||
LIBBPF_API LIBBPF_DEPRECATED("btf_ext__reloc_func_info was never meant as a public API and has wrong assumptions embedded in it; it will be removed in the future libbpf versions")
|
||||
int btf_ext__reloc_func_info(const struct btf *btf,
|
||||
const struct btf_ext *btf_ext,
|
||||
|
@ -7896,10 +7896,8 @@ int bpf_map__set_pin_path(struct bpf_map *map, const char *path)
|
||||
return 0;
|
||||
}
|
||||
|
||||
const char *bpf_map__get_pin_path(const struct bpf_map *map)
|
||||
{
|
||||
return map->pin_path;
|
||||
}
|
||||
__alias(bpf_map__pin_path)
|
||||
const char *bpf_map__get_pin_path(const struct bpf_map *map);
|
||||
|
||||
const char *bpf_map__pin_path(const struct bpf_map *map)
|
||||
{
|
||||
@ -8464,7 +8462,10 @@ static int bpf_program_nth_fd(const struct bpf_program *prog, int n)
|
||||
return fd;
|
||||
}
|
||||
|
||||
enum bpf_prog_type bpf_program__get_type(const struct bpf_program *prog)
|
||||
__alias(bpf_program__type)
|
||||
enum bpf_prog_type bpf_program__get_type(const struct bpf_program *prog);
|
||||
|
||||
enum bpf_prog_type bpf_program__type(const struct bpf_program *prog)
|
||||
{
|
||||
return prog->type;
|
||||
}
|
||||
@ -8508,8 +8509,10 @@ BPF_PROG_TYPE_FNS(struct_ops, BPF_PROG_TYPE_STRUCT_OPS);
|
||||
BPF_PROG_TYPE_FNS(extension, BPF_PROG_TYPE_EXT);
|
||||
BPF_PROG_TYPE_FNS(sk_lookup, BPF_PROG_TYPE_SK_LOOKUP);
|
||||
|
||||
enum bpf_attach_type
|
||||
bpf_program__get_expected_attach_type(const struct bpf_program *prog)
|
||||
__alias(bpf_program__expected_attach_type)
|
||||
enum bpf_attach_type bpf_program__get_expected_attach_type(const struct bpf_program *prog);
|
||||
|
||||
enum bpf_attach_type bpf_program__expected_attach_type(const struct bpf_program *prog)
|
||||
{
|
||||
return prog->expected_attach_type;
|
||||
}
|
||||
@ -9477,7 +9480,7 @@ static int bpf_prog_load_xattr2(const struct bpf_prog_load_attr *attr,
|
||||
bpf_program__set_expected_attach_type(prog,
|
||||
attach_type);
|
||||
}
|
||||
if (bpf_program__get_type(prog) == BPF_PROG_TYPE_UNSPEC) {
|
||||
if (bpf_program__type(prog) == BPF_PROG_TYPE_UNSPEC) {
|
||||
/*
|
||||
* we haven't guessed from section name and user
|
||||
* didn't provide a fallback type, too bad...
|
||||
@ -10528,7 +10531,7 @@ bpf_program__attach_fd(const struct bpf_program *prog, int target_fd, int btf_id
|
||||
return libbpf_err_ptr(-ENOMEM);
|
||||
link->detach = &bpf_link__detach_fd;
|
||||
|
||||
attach_type = bpf_program__get_expected_attach_type(prog);
|
||||
attach_type = bpf_program__expected_attach_type(prog);
|
||||
link_fd = bpf_link_create(prog_fd, target_fd, attach_type, &opts);
|
||||
if (link_fd < 0) {
|
||||
link_fd = -errno;
|
||||
|
@ -593,26 +593,39 @@ LIBBPF_API int bpf_program__nth_fd(const struct bpf_program *prog, int n);
|
||||
/*
|
||||
* Adjust type of BPF program. Default is kprobe.
|
||||
*/
|
||||
LIBBPF_DEPRECATED_SINCE(0, 8, "use bpf_program__set_type() instead")
|
||||
LIBBPF_API int bpf_program__set_socket_filter(struct bpf_program *prog);
|
||||
LIBBPF_DEPRECATED_SINCE(0, 8, "use bpf_program__set_type() instead")
|
||||
LIBBPF_API int bpf_program__set_tracepoint(struct bpf_program *prog);
|
||||
LIBBPF_DEPRECATED_SINCE(0, 8, "use bpf_program__set_type() instead")
|
||||
LIBBPF_API int bpf_program__set_raw_tracepoint(struct bpf_program *prog);
|
||||
LIBBPF_DEPRECATED_SINCE(0, 8, "use bpf_program__set_type() instead")
|
||||
LIBBPF_API int bpf_program__set_kprobe(struct bpf_program *prog);
|
||||
LIBBPF_DEPRECATED_SINCE(0, 8, "use bpf_program__set_type() instead")
|
||||
LIBBPF_API int bpf_program__set_lsm(struct bpf_program *prog);
|
||||
LIBBPF_DEPRECATED_SINCE(0, 8, "use bpf_program__set_type() instead")
|
||||
LIBBPF_API int bpf_program__set_sched_cls(struct bpf_program *prog);
|
||||
LIBBPF_DEPRECATED_SINCE(0, 8, "use bpf_program__set_type() instead")
|
||||
LIBBPF_API int bpf_program__set_sched_act(struct bpf_program *prog);
|
||||
LIBBPF_DEPRECATED_SINCE(0, 8, "use bpf_program__set_type() instead")
|
||||
LIBBPF_API int bpf_program__set_xdp(struct bpf_program *prog);
|
||||
LIBBPF_DEPRECATED_SINCE(0, 8, "use bpf_program__set_type() instead")
|
||||
LIBBPF_API int bpf_program__set_perf_event(struct bpf_program *prog);
|
||||
LIBBPF_DEPRECATED_SINCE(0, 8, "use bpf_program__set_type() instead")
|
||||
LIBBPF_API int bpf_program__set_tracing(struct bpf_program *prog);
|
||||
LIBBPF_DEPRECATED_SINCE(0, 8, "use bpf_program__set_type() instead")
|
||||
LIBBPF_API int bpf_program__set_struct_ops(struct bpf_program *prog);
|
||||
LIBBPF_DEPRECATED_SINCE(0, 8, "use bpf_program__set_type() instead")
|
||||
LIBBPF_API int bpf_program__set_extension(struct bpf_program *prog);
|
||||
LIBBPF_DEPRECATED_SINCE(0, 8, "use bpf_program__set_type() instead")
|
||||
LIBBPF_API int bpf_program__set_sk_lookup(struct bpf_program *prog);
|
||||
|
||||
LIBBPF_API enum bpf_prog_type bpf_program__get_type(const struct bpf_program *prog);
|
||||
LIBBPF_API enum bpf_prog_type bpf_program__type(const struct bpf_program *prog);
|
||||
LIBBPF_API void bpf_program__set_type(struct bpf_program *prog,
|
||||
enum bpf_prog_type type);
|
||||
|
||||
LIBBPF_API enum bpf_attach_type
|
||||
bpf_program__get_expected_attach_type(const struct bpf_program *prog);
|
||||
bpf_program__expected_attach_type(const struct bpf_program *prog);
|
||||
LIBBPF_API void
|
||||
bpf_program__set_expected_attach_type(struct bpf_program *prog,
|
||||
enum bpf_attach_type type);
|
||||
@ -633,18 +646,31 @@ LIBBPF_API int
|
||||
bpf_program__set_attach_target(struct bpf_program *prog, int attach_prog_fd,
|
||||
const char *attach_func_name);
|
||||
|
||||
LIBBPF_DEPRECATED_SINCE(0, 8, "use bpf_program__type() instead")
|
||||
LIBBPF_API bool bpf_program__is_socket_filter(const struct bpf_program *prog);
|
||||
LIBBPF_DEPRECATED_SINCE(0, 8, "use bpf_program__type() instead")
|
||||
LIBBPF_API bool bpf_program__is_tracepoint(const struct bpf_program *prog);
|
||||
LIBBPF_DEPRECATED_SINCE(0, 8, "use bpf_program__type() instead")
|
||||
LIBBPF_API bool bpf_program__is_raw_tracepoint(const struct bpf_program *prog);
|
||||
LIBBPF_DEPRECATED_SINCE(0, 8, "use bpf_program__type() instead")
|
||||
LIBBPF_API bool bpf_program__is_kprobe(const struct bpf_program *prog);
|
||||
LIBBPF_DEPRECATED_SINCE(0, 8, "use bpf_program__type() instead")
|
||||
LIBBPF_API bool bpf_program__is_lsm(const struct bpf_program *prog);
|
||||
LIBBPF_DEPRECATED_SINCE(0, 8, "use bpf_program__type() instead")
|
||||
LIBBPF_API bool bpf_program__is_sched_cls(const struct bpf_program *prog);
|
||||
LIBBPF_DEPRECATED_SINCE(0, 8, "use bpf_program__type() instead")
|
||||
LIBBPF_API bool bpf_program__is_sched_act(const struct bpf_program *prog);
|
||||
LIBBPF_DEPRECATED_SINCE(0, 8, "use bpf_program__type() instead")
|
||||
LIBBPF_API bool bpf_program__is_xdp(const struct bpf_program *prog);
|
||||
LIBBPF_DEPRECATED_SINCE(0, 8, "use bpf_program__type() instead")
|
||||
LIBBPF_API bool bpf_program__is_perf_event(const struct bpf_program *prog);
|
||||
LIBBPF_DEPRECATED_SINCE(0, 8, "use bpf_program__type() instead")
|
||||
LIBBPF_API bool bpf_program__is_tracing(const struct bpf_program *prog);
|
||||
LIBBPF_DEPRECATED_SINCE(0, 8, "use bpf_program__type() instead")
|
||||
LIBBPF_API bool bpf_program__is_struct_ops(const struct bpf_program *prog);
|
||||
LIBBPF_DEPRECATED_SINCE(0, 8, "use bpf_program__type() instead")
|
||||
LIBBPF_API bool bpf_program__is_extension(const struct bpf_program *prog);
|
||||
LIBBPF_DEPRECATED_SINCE(0, 8, "use bpf_program__type() instead")
|
||||
LIBBPF_API bool bpf_program__is_sk_lookup(const struct bpf_program *prog);
|
||||
|
||||
/*
|
||||
@ -718,6 +744,7 @@ LIBBPF_API int bpf_map__set_type(struct bpf_map *map, enum bpf_map_type type);
|
||||
/* get/set map size (max_entries) */
|
||||
LIBBPF_API __u32 bpf_map__max_entries(const struct bpf_map *map);
|
||||
LIBBPF_API int bpf_map__set_max_entries(struct bpf_map *map, __u32 max_entries);
|
||||
LIBBPF_DEPRECATED_SINCE(0, 8, "use bpf_map__set_max_entries() instead")
|
||||
LIBBPF_API int bpf_map__resize(struct bpf_map *map, __u32 max_entries);
|
||||
/* get/set map flags */
|
||||
LIBBPF_API __u32 bpf_map__map_flags(const struct bpf_map *map);
|
||||
@ -760,7 +787,6 @@ LIBBPF_API bool bpf_map__is_offload_neutral(const struct bpf_map *map);
|
||||
*/
|
||||
LIBBPF_API bool bpf_map__is_internal(const struct bpf_map *map);
|
||||
LIBBPF_API int bpf_map__set_pin_path(struct bpf_map *map, const char *path);
|
||||
LIBBPF_API const char *bpf_map__get_pin_path(const struct bpf_map *map);
|
||||
LIBBPF_API const char *bpf_map__pin_path(const struct bpf_map *map);
|
||||
LIBBPF_API bool bpf_map__is_pinned(const struct bpf_map *map);
|
||||
LIBBPF_API int bpf_map__pin(struct bpf_map *map, const char *path);
|
||||
|
@ -424,10 +424,12 @@ LIBBPF_0.6.0 {
|
||||
LIBBPF_0.7.0 {
|
||||
global:
|
||||
bpf_btf_load;
|
||||
bpf_program__expected_attach_type;
|
||||
bpf_program__log_buf;
|
||||
bpf_program__log_level;
|
||||
bpf_program__set_log_buf;
|
||||
bpf_program__set_log_level;
|
||||
bpf_program__type;
|
||||
bpf_xdp_attach;
|
||||
bpf_xdp_detach;
|
||||
bpf_xdp_query;
|
||||
|
@ -92,6 +92,9 @@
|
||||
# define offsetofend(TYPE, FIELD) \
|
||||
(offsetof(TYPE, FIELD) + sizeof(((TYPE *)0)->FIELD))
|
||||
#endif
|
||||
#ifndef __alias
|
||||
#define __alias(symbol) __attribute__((alias(#symbol)))
|
||||
#endif
|
||||
|
||||
/* Check whether a string `str` has prefix `pfx`, regardless if `pfx` is
|
||||
* a string literal known at compilation time or char * pointer known only at
|
||||
|
@ -86,6 +86,23 @@ LIBBPF_API int libbpf_set_strict_mode(enum libbpf_strict_mode mode);
|
||||
|
||||
#define DECLARE_LIBBPF_OPTS LIBBPF_OPTS
|
||||
|
||||
/* "Discouraged" APIs which don't follow consistent libbpf naming patterns.
|
||||
* They are normally a trivial aliases or wrappers for proper APIs and are
|
||||
* left to minimize unnecessary disruption for users of libbpf. But they
|
||||
* shouldn't be used going forward.
|
||||
*/
|
||||
|
||||
struct bpf_program;
|
||||
struct bpf_map;
|
||||
struct btf;
|
||||
struct btf_ext;
|
||||
|
||||
LIBBPF_API enum bpf_prog_type bpf_program__get_type(const struct bpf_program *prog);
|
||||
LIBBPF_API enum bpf_attach_type bpf_program__get_expected_attach_type(const struct bpf_program *prog);
|
||||
LIBBPF_API const char *bpf_map__get_pin_path(const struct bpf_map *map);
|
||||
LIBBPF_API const void *btf__get_raw_data(const struct btf *btf, __u32 *size);
|
||||
LIBBPF_API const void *btf_ext__get_raw_data(const struct btf_ext *btf_ext, __u32 *size);
|
||||
|
||||
#ifdef __cplusplus
|
||||
} /* extern "C" */
|
||||
#endif
|
||||
|
@ -656,11 +656,11 @@ int bpf__probe(struct bpf_object *obj)
|
||||
}
|
||||
|
||||
if (priv->is_tp) {
|
||||
bpf_program__set_tracepoint(prog);
|
||||
bpf_program__set_type(prog, BPF_PROG_TYPE_TRACEPOINT);
|
||||
continue;
|
||||
}
|
||||
|
||||
bpf_program__set_kprobe(prog);
|
||||
bpf_program__set_type(prog, BPF_PROG_TYPE_KPROBE);
|
||||
pev = &priv->pev;
|
||||
|
||||
err = convert_perf_probe_events(pev, 1);
|
||||
|
@ -151,7 +151,7 @@ static struct ringbuf_bench *ringbuf_setup_skeleton(void)
|
||||
/* record data + header take 16 bytes */
|
||||
skel->rodata->wakeup_data_size = args.sample_rate * 16;
|
||||
|
||||
bpf_map__resize(skel->maps.ringbuf, args.ringbuf_sz);
|
||||
bpf_map__set_max_entries(skel->maps.ringbuf, args.ringbuf_sz);
|
||||
|
||||
if (ringbuf_bench__load(skel)) {
|
||||
fprintf(stderr, "failed to load skeleton\n");
|
||||
|
@ -132,7 +132,7 @@ static void test_fexit_bpf2bpf_common(const char *obj_file,
|
||||
&link_info, &info_len);
|
||||
ASSERT_OK(err, "link_fd_get_info");
|
||||
ASSERT_EQ(link_info.tracing.attach_type,
|
||||
bpf_program__get_expected_attach_type(prog[i]),
|
||||
bpf_program__expected_attach_type(prog[i]),
|
||||
"link_attach_type");
|
||||
ASSERT_EQ(link_info.tracing.target_obj_id, tgt_prog_id, "link_tgt_obj_id");
|
||||
ASSERT_EQ(link_info.tracing.target_btf_id, btf_id, "link_tgt_btf_id");
|
||||
|
@ -27,7 +27,7 @@ void test_get_stackid_cannot_attach(void)
|
||||
return;
|
||||
|
||||
/* override program type */
|
||||
bpf_program__set_perf_event(skel->progs.oncpu);
|
||||
bpf_program__set_type(skel->progs.oncpu, BPF_PROG_TYPE_PERF_EVENT);
|
||||
|
||||
err = test_stacktrace_build_id__load(skel);
|
||||
if (CHECK(err, "skel_load", "skeleton load failed: %d\n", err))
|
||||
|
@ -42,7 +42,7 @@ void test_stacktrace_build_id_nmi(void)
|
||||
return;
|
||||
|
||||
/* override program type */
|
||||
bpf_program__set_perf_event(skel->progs.oncpu);
|
||||
bpf_program__set_type(skel->progs.oncpu, BPF_PROG_TYPE_PERF_EVENT);
|
||||
|
||||
err = test_stacktrace_build_id__load(skel);
|
||||
if (CHECK(err, "skel_load", "skeleton load failed: %d\n", err))
|
||||
|
Loading…
Reference in New Issue
Block a user