linux/tools/lib/bpf
Andrii Nakryiko 94e55c0fda libbpf: Wire through log_true_size returned from kernel for BPF_PROG_LOAD
Add output-only log_true_size field to bpf_prog_load_opts to return
bpf_attr->log_true_size value back from bpf() syscall.

Note, that we have to drop const modifier from opts in bpf_prog_load().
This could potentially cause compilation error for some users. But
the usual practice is to define bpf_prog_load_ops
as a local variable next to bpf_prog_load() call and pass pointer to it,
so const vs non-const makes no difference and won't even come up in most
(if not all) cases.

There are no runtime and ABI backwards/forward compatibility issues at all.
If user provides old struct bpf_prog_load_opts, libbpf won't set new
fields. If old libbpf is provided new bpf_prog_load_opts, nothing will
happen either as old libbpf doesn't yet know about this new field.

Adding a new variant of bpf_prog_load() just for this seems like a big
and unnecessary overkill. As a corroborating evidence is the fact that
entire selftests/bpf code base required not adjustment whatsoever.

Signed-off-by: Andrii Nakryiko <andrii@kernel.org>
Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
Link: https://lore.kernel.org/bpf/20230406234205.323208-16-andrii@kernel.org
2023-04-11 18:05:44 +02:00
..
.gitignore libbpf: Make libbpf_version.h non-auto-generated 2021-09-13 15:36:47 -07:00
bpf_core_read.h libbpf: Fix BPF_PROBE_READ{_STR}_INTO() on s390x 2023-01-28 12:45:14 -08:00
bpf_endian.h libbpf: Make bpf_endian co-exist with vmlinux.h 2020-07-01 09:06:12 +02:00
bpf_gen_internal.h libbpf: Support kfunc detection in light skeleton. 2023-03-22 09:31:05 -07:00
bpf_helpers.h libbpf: Introduce bpf_ksym_exists() macro. 2023-03-17 15:46:00 -07:00
bpf_prog_linfo.c libbpf: Streamline error reporting for high-level APIs 2021-05-25 17:32:35 -07:00
bpf_tracing.h libbpf: Fix arm syscall regs spec in bpf_tracing.h 2023-02-27 11:58:24 -08:00
bpf.c libbpf: Wire through log_true_size returned from kernel for BPF_PROG_LOAD 2023-04-11 18:05:44 +02:00
bpf.h libbpf: Wire through log_true_size returned from kernel for BPF_PROG_LOAD 2023-04-11 18:05:44 +02:00
btf_dump.c libbpf: Fix btf_dump's packed struct determination 2022-12-15 22:50:17 +01:00
btf.c libbpf: Remove several dead assignments 2023-03-01 11:13:11 -08:00
btf.h libbpf: Don't require full struct enum64 in UAPI headers 2022-09-27 20:45:17 +02:00
Build libbpf: Implement basic zip archive parsing support 2023-03-01 16:05:34 -08:00
gen_loader.c libbpf: Support kfunc detection in light skeleton. 2023-03-22 09:31:05 -07:00
hashmap.c libbpf: Hashmap interface update to allow both long and void* keys/values 2022-11-09 20:45:14 -08:00
hashmap.h libbpf: Hashmap.h update to fix build issues using LLVM14 2022-11-11 10:24:23 -08:00
libbpf_common.h libbpf: cleanup LIBBPF_DEPRECATED_SINCE supporting macros for v0.x 2022-06-28 13:13:33 -07:00
libbpf_errno.c libbpf: Optimized return value in libbpf_strerror when errno is libbpf errno 2022-12-14 18:39:33 +01:00
libbpf_internal.h libbpf: Poison strlcpy() 2023-01-06 16:57:23 +01:00
libbpf_legacy.h libbpf: Clean up deprecated and legacy aliases 2022-08-17 22:42:56 +02:00
libbpf_probes.c libbpf: Correctly set the kernel code version in Debian kernel. 2023-02-06 14:30:50 -08:00
libbpf_version.h libbpf: start v1.2 development cycle 2022-12-21 11:18:50 -08:00
libbpf.c libbpf: disassociate section handler on explicit bpf_program__set_type() call 2023-03-29 17:22:01 -07:00
libbpf.h libbpf: Ensure print callback usage is thread-safe 2023-03-27 11:33:43 -07:00
libbpf.map libbpf: Update a bpf_link with another struct_ops. 2023-03-22 22:53:02 -07:00
libbpf.pc.template libbpf: Add zlib as a dependency in pkg-config template 2019-12-16 14:55:29 -08:00
linker.c libbpf: Fix double-free when linker processes empty sections 2023-03-27 20:02:15 -07:00
Makefile Merge remote-tracking branch 'torvalds/master' into perf/core 2022-12-16 09:53:53 -03:00
netlink.c libbpf: Fix bpf_xdp_query() in old kernels 2023-02-27 15:26:12 -08:00
nlattr.c libbpf: Fix alen calculation in libbpf_nla_dump_errormsg() 2023-02-10 15:27:22 -08:00
nlattr.h libbpf: add API to get XDP/XSK supported features 2023-02-02 20:48:24 -08:00
relo_core.c libbpf: Remove several dead assignments 2023-03-01 11:13:11 -08:00
relo_core.h bpf, libbpf: Add type match support 2022-07-05 21:14:25 -07:00
ringbuf.c libbpf: Use bpf_{btf,link,map,prog}_get_info_by_fd() 2023-02-16 15:32:45 -08:00
skel_internal.h libbpf: add map_get_fd_by_id and map_delete_elem in light skeleton 2022-08-25 18:52:29 -07:00
str_error.c libbpf: Poison kernel-only integer types 2020-01-10 10:38:00 -08:00
str_error.h libbpf: relicense libbpf as LGPL-2.1 OR BSD-2-Clause 2018-10-08 10:09:48 +02:00
strset.c libbpf: Hashmap interface update to allow both long and void* keys/values 2022-11-09 20:45:14 -08:00
strset.h libbpf: Extract internal set-of-strings datastructure APIs 2021-03-18 16:14:22 -07:00
usdt.bpf.h libbpf: Fix unbounded memory access in bpf_usdt_arg() 2023-01-28 12:45:14 -08:00
usdt.c libbpf: USDT arm arg parsing support 2023-03-07 15:35:53 -08:00
zip.c libbpf: Ignore warnings about "inefficient alignment" 2023-03-16 18:20:08 +01:00
zip.h libbpf: Implement basic zip archive parsing support 2023-03-01 16:05:34 -08:00