Hi David, The following pull-request contains BPF updates for your *net-next* tree.
The main changes are: 1) Extend bpftool to build up CFG information of eBPF programs and add an option to dump this in DOT format such that this can later be used with DOT graphic tools (xdot, graphviz, etc) to visualize it. Part of the analysis performed is sub-program detection and basic-block partitioning, from Jiong. 2) Multiple enhancements for bpftool's batch mode, more specifically the parser now understands comments (#), continuation lines (\), and arguments enclosed between quotes. Also, allow to read from stdin via '-' as input file, all from Quentin. 3) Improve BPF kselftests by i) unifying the rlimit handling into a helper that is then used by all tests, and ii) add support for testing tail calls to test_verifier plus add tests covering all corner cases. The latter is especially useful for testing JITs, from Daniel. 4) Remove x64 JIT's bpf_flush_icache() since flush_icache_range() is a noop on x64, from Daniel. 5) Fix one more occasion in BPF samples where we do not detach the BPF program from the cgroup after completion, from Prashant. Please consider pulling these changes from: git://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf-next.git Thanks a lot! ---------------------------------------------------------------- The following changes since commit 3808b51911fe1a2bf8d6f4f2836d4c51aa29a6fd: Merge branch '10GbE' of git://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/next-queue (2018-02-26 20:58:25 -0500) are available in the git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf-next.git for you to fetch changes up to c51a63797acc159ead1e7b136119b18865e909c3: Merge branch 'bpf-bpftool-batch-improvements' (2018-03-02 09:46:42 +0100) ---------------------------------------------------------------- Alexei Starovoitov (2): Merge branch 'bpf-kselftest-improvements' Merge branch 'bpftool-visualization' Daniel Borkmann (4): bpf: unify rlimit handling in selftests bpf: add tail call tests to test_verifier bpf, x64: remove bpf_flush_icache Merge branch 'bpf-bpftool-batch-improvements' Jiong Wang (7): tools: bpftool: remove unnecessary 'if' to reduce indentation tools: bpftool: factor out xlated dump related code into separate file tools: bpftool: detect sub-programs from the eBPF sequence tools: bpftool: partition basic-block for each function in the CFG tools: bpftool: add out edges for each basic-block tools: bpftool: generate .dot graph from CFG information tools: bpftool: new command-line option and documentation for 'visual' Prashant Bhole (1): samples/bpf: detach prog from cgroup Quentin Monnet (5): tools: bpftool: add bash completion for CFG dump tools: bpftool: support comments in batch files tools: bpftool: support continuation lines in batch files tools: bpftool: read from stdin when batch file name is "-" tools: bpftool: add support for quotations in batch files arch/x86/net/bpf_jit_comp.c | 15 +- samples/bpf/test_cgrp2_sock.sh | 1 + samples/bpf/test_cgrp2_sock2.sh | 3 + tools/bpf/bpftool/Documentation/bpftool-prog.rst | 18 +- tools/bpf/bpftool/bash-completion/bpftool | 13 +- tools/bpf/bpftool/cfg.c | 514 +++++++++++++++++++++++ tools/bpf/bpftool/cfg.h | 43 ++ tools/bpf/bpftool/main.c | 104 ++++- tools/bpf/bpftool/prog.c | 305 ++------------ tools/bpf/bpftool/xlated_dumper.c | 338 +++++++++++++++ tools/bpf/bpftool/xlated_dumper.h | 64 +++ tools/testing/selftests/bpf/bpf_rlimit.h | 28 ++ tools/testing/selftests/bpf/test_align.c | 6 +- tools/testing/selftests/bpf/test_dev_cgroup.c | 6 +- tools/testing/selftests/bpf/test_lpm_map.c | 14 +- tools/testing/selftests/bpf/test_lru_map.c | 6 +- tools/testing/selftests/bpf/test_maps.c | 7 +- tools/testing/selftests/bpf/test_progs.c | 7 +- tools/testing/selftests/bpf/test_tag.c | 4 +- tools/testing/selftests/bpf/test_tcpbpf_user.c | 6 +- tools/testing/selftests/bpf/test_verifier.c | 123 +++++- tools/testing/selftests/bpf/test_verifier_log.c | 8 +- 22 files changed, 1259 insertions(+), 374 deletions(-) create mode 100644 tools/bpf/bpftool/cfg.c create mode 100644 tools/bpf/bpftool/cfg.h create mode 100644 tools/bpf/bpftool/xlated_dumper.c create mode 100644 tools/bpf/bpftool/xlated_dumper.h create mode 100644 tools/testing/selftests/bpf/bpf_rlimit.h