[PATCH RFC 00/11] perf script: Add API for filtering via dynamically loaded shared object

From: Adrian Hunter
Date: Mon Jun 21 2021 - 11:05:03 EST


Hi

In some cases, users want to filter very large amounts of data (e.g. from
AUX area tracing like Intel PT) looking for something specific. While
scripting such as Python can be used, Python is 10 to 20 times slower than
C. So define a C API so that custom filters can be written and loaded.

There are 3 preparation patches. The main patch is patch 4.

The other patches add more functionality, except for patch 6 which installs
the C API header file.


Adrian Hunter (11):
perf script: Move filter_cpu() earlier
perf script: Move filtering before scripting
perf script: Share addr_al between functions
perf script: Add API for filtering via dynamically loaded shared object
perf script: Add dlfilter__filter_event_early()
perf build: Install perf_dlfilter.h
perf dlfilter: Add resolve_address() to perf_dlfilter_fns
perf dlfilter: Add insn() to perf_dlfilter_fns
perf dlfilter: Add srcline() to perf_dlfilter_fns
perf dlfilter: Add attr() to perf_dlfilter_fns
perf dlfilter: Add object_code() to perf_dlfilter_fns

tools/perf/Documentation/perf-dlfilter.txt | 235 +++++++++++++++
tools/perf/Documentation/perf-script.txt | 7 +-
tools/perf/Makefile.config | 3 +
tools/perf/Makefile.perf | 4 +-
tools/perf/builtin-script.c | 93 ++++--
tools/perf/util/Build | 1 +
tools/perf/util/dlfilter.c | 469 +++++++++++++++++++++++++++++
tools/perf/util/dlfilter.h | 91 ++++++
tools/perf/util/perf_dlfilter.h | 139 +++++++++
9 files changed, 1015 insertions(+), 27 deletions(-)
create mode 100644 tools/perf/Documentation/perf-dlfilter.txt
create mode 100644 tools/perf/util/dlfilter.c
create mode 100644 tools/perf/util/dlfilter.h
create mode 100644 tools/perf/util/perf_dlfilter.h


Regards
Adrian