Re: [PATCH v1 0/4] Remove BPF event support
From: Jiri Olsa
Date: Fri Aug 11 2023 - 12:09:50 EST
On Thu, Aug 10, 2023 at 11:48:49AM -0700, Ian Rogers wrote:
> The patch series removes BPF event support as past commits have shown
> the support has bit rotten:
> https://lore.kernel.org/lkml/20230728001212.457900-1-irogers@xxxxxxxxxx/
>
> Similar functionality is now available via the --filter option, that
> uses a BPF skeleton, and is therefore more compact and simpler to
> use. The simplicity coming from not having to build BPF object files.
>
> A different use case for the events was for syscall augmentation in
> perf trace. So that this isn't broken, and to make its use
> significantly simpler, the support is migrated to use a BPF
> skeleton. This means perf trace is much more likely to augment
> syscalls for users.
>
> Removal of BPF events was raised on LKML two weeks ago with the
> original authors cc-ed:
> https://lore.kernel.org/lkml/CAP-5=fXxGimJRXKf7bcaPqfjxxGcn1k3CspY_iSjQnpAKs3uFQ@xxxxxxxxxxxxxx/
>
> BPF events are described publicly in very few places but one is:
> https://www.brendangregg.com/perf.html#eBPF
> "eBPF is currently a little restricted and difficult to use from
> perf. It's getting better all the time. A different and currently
> easier way to access eBPF is via the bcc Python interface, which is
> described on my eBPF Tools page. On this page, I'll discuss perf."
>
> I don't think the "getting better all the time" is any longer true as
> BPF features are being added to perf primarily by using BPF
> skeletons. The given example is a filter and would be better supported
> via "perf record --filter".
agreed, I don't think it's being really used as well,
also caused problems with libbpf updates
>
> Ian Rogers (4):
> perf parse-events: Remove BPF event support
> perf trace: Migrate BPF augmentation to use a skeleton
> perf bpf examples: With no BPF events remove examples
> perf trace: Tidy comments
>
> tools/perf/Documentation/perf-config.txt | 33 -
> tools/perf/Documentation/perf-record.txt | 22 -
> tools/perf/Makefile.config | 43 -
> tools/perf/Makefile.perf | 19 +-
> tools/perf/builtin-record.c | 45 -
> tools/perf/builtin-trace.c | 310 +--
> tools/perf/examples/bpf/5sec.c | 53 -
> tools/perf/examples/bpf/empty.c | 12 -
> tools/perf/examples/bpf/hello.c | 27 -
> tools/perf/examples/bpf/sys_enter_openat.c | 33 -
> tools/perf/perf.c | 2 -
> tools/perf/tests/.gitignore | 5 -
> tools/perf/tests/Build | 31 -
> tools/perf/tests/bpf-script-example.c | 60 -
> tools/perf/tests/bpf-script-test-kbuild.c | 21 -
> tools/perf/tests/bpf-script-test-prologue.c | 49 -
> tools/perf/tests/bpf-script-test-relocation.c | 51 -
> tools/perf/tests/bpf.c | 390 ----
> tools/perf/tests/builtin-test.c | 3 -
> tools/perf/tests/clang.c | 32 -
> tools/perf/tests/llvm.c | 219 --
> tools/perf/tests/llvm.h | 31 -
> tools/perf/tests/make | 2 -
> tools/perf/tests/tests.h | 2 -
> tools/perf/trace/beauty/beauty.h | 15 +-
> tools/perf/util/Build | 8 +-
> tools/perf/util/bpf-loader.c | 2006 -----------------
> tools/perf/util/bpf-loader.h | 216 --
> .../bpf_skel/augmented_raw_syscalls.bpf.c} | 35 +-
> tools/perf/util/c++/Build | 5 -
> tools/perf/util/c++/clang-c.h | 43 -
> tools/perf/util/c++/clang-test.cpp | 67 -
> tools/perf/util/c++/clang.cpp | 225 --
> tools/perf/util/c++/clang.h | 27 -
> tools/perf/util/config.c | 4 -
> tools/perf/util/llvm-utils.c | 612 -----
> tools/perf/util/llvm-utils.h | 69 -
> tools/perf/util/parse-events.c | 268 ---
> tools/perf/util/parse-events.h | 15 -
> tools/perf/util/parse-events.l | 31 -
> tools/perf/util/parse-events.y | 44 +-
> 41 files changed, 133 insertions(+), 5052 deletions(-)
awesome :))
Acked-by: Jiri Olsa <jolsa@xxxxxxxxxx>
thanks,
jirka
> delete mode 100644 tools/perf/examples/bpf/5sec.c
> delete mode 100644 tools/perf/examples/bpf/empty.c
> delete mode 100644 tools/perf/examples/bpf/hello.c
> delete mode 100644 tools/perf/examples/bpf/sys_enter_openat.c
> delete mode 100644 tools/perf/tests/.gitignore
> delete mode 100644 tools/perf/tests/bpf-script-example.c
> delete mode 100644 tools/perf/tests/bpf-script-test-kbuild.c
> delete mode 100644 tools/perf/tests/bpf-script-test-prologue.c
> delete mode 100644 tools/perf/tests/bpf-script-test-relocation.c
> delete mode 100644 tools/perf/tests/bpf.c
> delete mode 100644 tools/perf/tests/clang.c
> delete mode 100644 tools/perf/tests/llvm.c
> delete mode 100644 tools/perf/tests/llvm.h
> delete mode 100644 tools/perf/util/bpf-loader.c
> delete mode 100644 tools/perf/util/bpf-loader.h
> rename tools/perf/{examples/bpf/augmented_raw_syscalls.c => util/bpf_skel/augmented_raw_syscalls.bpf.c} (93%)
> delete mode 100644 tools/perf/util/c++/Build
> delete mode 100644 tools/perf/util/c++/clang-c.h
> delete mode 100644 tools/perf/util/c++/clang-test.cpp
> delete mode 100644 tools/perf/util/c++/clang.cpp
> delete mode 100644 tools/perf/util/c++/clang.h
> delete mode 100644 tools/perf/util/llvm-utils.c
> delete mode 100644 tools/perf/util/llvm-utils.h
>
> --
> 2.41.0.640.ga95def55d0-goog
>