Add -r/--recursive to dump referenced inner maps after the selected roots, with deduplication and bounded descriptor use. The second patch checks output formats and operation under a low descriptor limit.
Changes in v6: - Grow the pending inner-map ID array with libbpf_ensure_mem() instead of reallocating for every ID. Keep the existing bound on open descriptors. - Check snprintf() failures and truncation before advancing the expected JSON buffer offset in the multiple-root selftest. - Clarify the unused array-slot comment, name the large output buffer size, and shorten the selftest commit message. The formatting check is defensive; I have not established the reported stack overflow in v5's fixed four-map fixture. v5: https://lore.kernel.org/r/[email protected] AI reviews: https://lore.kernel.org/r/c55811f4eb2a0d4884ee2eb3167557cd405a5b7aecd988a51acf525c77e3a...@mail.kernel.org https://lore.kernel.org/r/4fba1aedc906d6c5072a1ae9a72496e6d307abd60c456cb870077cf93cc8f...@mail.kernel.org https://lore.kernel.org/r/[email protected] Validation: - Rebuilt bpftool and the focused selftest runner. - All 12 bpftool_map_dump subtests passed, including the 64-inner-map cases under RLIMIT_NOFILE=32 and the multiple-root JSON check. - Tested alongside the pending batch-dump series: all 23 selected subtests passed, with no skips or failures, in an x86-64 KVM guest running Linux 7.3.0-rc2 from bpf/master, using LLVM 20 BPF objects. - Diff and bpftool synchronization checks passed; checkpatch reported no errors. The generated patches apply cleanly to current bpf-next. This was a focused run. Unrelated selftests requiring unavailable kernel features were excluded from the build with PERMISSIVE=1. Tianyi Chen (2): bpftool: Add recursive map dumping selftests/bpf: Cover recursive bpftool map dumps .../bpf/bpftool/Documentation/bpftool-map.rst | 22 +- tools/bpf/bpftool/bash-completion/bpftool | 2 +- tools/bpf/bpftool/main.c | 7 +- tools/bpf/bpftool/main.h | 1 + tools/bpf/bpftool/map.c | 130 ++++- .../bpf/prog_tests/bpftool_map_dump.c | 480 ++++++++++++++++++ 6 files changed, 631 insertions(+), 11 deletions(-) create mode 100644 tools/testing/selftests/bpf/prog_tests/bpftool_map_dump.c base-commit: af0b84a9215d951d16f26b7ee34353b970cf5d4e -- 2.55.0
