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

libbpf: Add API to get/set log_level at per-program level

Add bpf_program__set_log_level() and bpf_program__log_level() to fetch
and adjust log_level sent during BPF_PROG_LOAD command. This allows to
selectively request more or less verbose output in BPF verifier log.

Also bump libbpf version to 0.7 and make these APIs the first in v0.7.

Signed-off-by: Andrii Nakryiko <andrii@kernel.org>
Signed-off-by: Alexei Starovoitov <ast@kernel.org>
Link: https://lore.kernel.org/bpf/20211201232824.3166325-3-andrii@kernel.org

authored by

Andrii Nakryiko and committed by
Alexei Starovoitov
dbdd2c7f 74d98070

+23 -1
+14
tools/lib/bpf/libbpf.c
··· 8475 8475 return 0; 8476 8476 } 8477 8477 8478 + __u32 bpf_program__log_level(const struct bpf_program *prog) 8479 + { 8480 + return prog->log_level; 8481 + } 8482 + 8483 + int bpf_program__set_log_level(struct bpf_program *prog, __u32 log_level) 8484 + { 8485 + if (prog->obj->loaded) 8486 + return libbpf_err(-EBUSY); 8487 + 8488 + prog->log_level = log_level; 8489 + return 0; 8490 + } 8491 + 8478 8492 #define SEC_DEF(sec_pfx, ptype, atype, flags, ...) { \ 8479 8493 .sec = sec_pfx, \ 8480 8494 .prog_type = BPF_PROG_TYPE_##ptype, \
+2
tools/lib/bpf/libbpf.h
··· 499 499 500 500 LIBBPF_API __u32 bpf_program__flags(const struct bpf_program *prog); 501 501 LIBBPF_API int bpf_program__set_flags(struct bpf_program *prog, __u32 flags); 502 + LIBBPF_API __u32 bpf_program__log_level(const struct bpf_program *prog); 503 + LIBBPF_API int bpf_program__set_log_level(struct bpf_program *prog, __u32 log_level); 502 504 503 505 LIBBPF_API int 504 506 bpf_program__set_attach_target(struct bpf_program *prog, int attach_prog_fd,
+6
tools/lib/bpf/libbpf.map
··· 419 419 perf_buffer__new_raw; 420 420 perf_buffer__new_raw_deprecated; 421 421 } LIBBPF_0.5.0; 422 + 423 + LIBBPF_0.7.0 { 424 + global: 425 + bpf_program__log_level; 426 + bpf_program__set_log_level; 427 + };
+1 -1
tools/lib/bpf/libbpf_version.h
··· 4 4 #define __LIBBPF_VERSION_H 5 5 6 6 #define LIBBPF_MAJOR_VERSION 0 7 - #define LIBBPF_MINOR_VERSION 6 7 + #define LIBBPF_MINOR_VERSION 7 8 8 9 9 #endif /* __LIBBPF_VERSION_H */