This proposal builds upon the discussion in "[PATCH bpf-next v4 0/4] bpf: Improve error reporting for freplace attachment failure"[1], and is also relevant to ongoing efforts such as tracing multi-link attach failures[2]. This patch set introduces support for *common attributes* in the 'bpf()' syscall, providing a unified mechanism for passing shared metadata across all BPF commands. The initial set of common attributes includes: 1. 'log_buf': User-provided buffer for storing log output. 2. 'log_size': Size of the provided log buffer. 3. 'log_level': Verbosity level for logging. With this extension, the 'bpf()' syscall will be able to return meaningful error messages (e.g., failures of creating map), improving debuggability and user experience. Changes: RFC v1 -> RFC v2: * Fix build error reported by test bot. * Address comments from Alexei: * Drop new uapi for freplace. * Add common attributes support for prog_load and btf_load. * Add common attributes support for map_create. Links: [1] https://lore.kernel.org/bpf/20250224153352.64689-1-leon.hwang@xxxxxxxxx/ [2] https://lore.kernel.org/bpf/20250703121521.1874196-1-dongml2@xxxxxxxxxxxxxxx/ Leon Hwang (6): bpf: Extend bpf syscall with common attributes support libbpf: Add support for extended bpf syscall bpf: Add common attr support for prog_load and btf_load bpf: Add common attr support for map_create libbpf: Add common attr support for map_create selftests/bpf: Add cases to test map create failure log include/linux/bpf.h | 3 +- include/linux/bpf_verifier.h | 2 +- include/linux/btf.h | 3 +- include/linux/syscalls.h | 3 +- include/uapi/linux/bpf.h | 7 + kernel/bpf/btf.c | 12 +- kernel/bpf/log.c | 23 +++- kernel/bpf/syscall.c | 115 ++++++++++++---- kernel/bpf/verifier.c | 8 +- tools/include/uapi/linux/bpf.h | 7 + tools/lib/bpf/bpf.c | 61 ++++++++- tools/lib/bpf/bpf.h | 6 +- tools/lib/bpf/features.c | 8 ++ tools/lib/bpf/libbpf.map | 2 + tools/lib/bpf/libbpf_internal.h | 2 + .../selftests/bpf/prog_tests/map_init.c | 124 ++++++++++++++++++ 16 files changed, 341 insertions(+), 45 deletions(-) -- 2.50.1