libbpf: Add API to get/set log_level at per-program level
authorAndrii Nakryiko <andrii@kernel.org>
Wed, 1 Dec 2021 23:28:17 +0000 (15:28 -0800)
committerAlexei Starovoitov <ast@kernel.org>
Thu, 2 Dec 2021 23:23:40 +0000 (15:23 -0800)
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
tools/lib/bpf/libbpf.c
tools/lib/bpf/libbpf.h
tools/lib/bpf/libbpf.map
tools/lib/bpf/libbpf_version.h

index 1341ce539662a38164488d023fb796c7d0bd3904..de260c94e4189f2d635bf0c8fe9028b90072a124 100644 (file)
@@ -8475,6 +8475,20 @@ int bpf_program__set_flags(struct bpf_program *prog, __u32 flags)
        return 0;
 }
 
+__u32 bpf_program__log_level(const struct bpf_program *prog)
+{
+       return prog->log_level;
+}
+
+int bpf_program__set_log_level(struct bpf_program *prog, __u32 log_level)
+{
+       if (prog->obj->loaded)
+               return libbpf_err(-EBUSY);
+
+       prog->log_level = log_level;
+       return 0;
+}
+
 #define SEC_DEF(sec_pfx, ptype, atype, flags, ...) {                       \
        .sec = sec_pfx,                                                     \
        .prog_type = BPF_PROG_TYPE_##ptype,                                 \
index d02139fec4acc9a6029f3698b5223b6c53342aa8..148fa85bab33782949ed30a16d3e4661ec7c1874 100644 (file)
@@ -499,6 +499,8 @@ bpf_program__set_expected_attach_type(struct bpf_program *prog,
 
 LIBBPF_API __u32 bpf_program__flags(const struct bpf_program *prog);
 LIBBPF_API int bpf_program__set_flags(struct bpf_program *prog, __u32 flags);
+LIBBPF_API __u32 bpf_program__log_level(const struct bpf_program *prog);
+LIBBPF_API int bpf_program__set_log_level(struct bpf_program *prog, __u32 log_level);
 
 LIBBPF_API int
 bpf_program__set_attach_target(struct bpf_program *prog, int attach_prog_fd,
index 623002b83b2bb1d54cbd6e882b678ba572aea947..715df3a27389bb4c03ae4f482ca28df44e15ec81 100644 (file)
@@ -419,3 +419,9 @@ LIBBPF_0.6.0 {
                perf_buffer__new_raw;
                perf_buffer__new_raw_deprecated;
 } LIBBPF_0.5.0;
+
+LIBBPF_0.7.0 {
+       global:
+               bpf_program__log_level;
+               bpf_program__set_log_level;
+};
index dd56d76f291cdec3297cb0692766fbdc720e1e04..0fefefc3500b6dd07a6489a1f16a9c23b6f80e33 100644 (file)
@@ -4,6 +4,6 @@
 #define __LIBBPF_VERSION_H
 
 #define LIBBPF_MAJOR_VERSION 0
-#define LIBBPF_MINOR_VERSION 6
+#define LIBBPF_MINOR_VERSION 7
 
 #endif /* __LIBBPF_VERSION_H */