Re: [PATCH V2 00/10] perf script: Add API for filtering via dynamically loaded shared object

Namhyung Kim
2021-06-29T19:28:40Z

Hi Adrian,

On Sun, Jun 27, 2021 at 6:18 AM Adrian Hunter <adrian.hunter@intel.com> wrote:
>
> 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.

Thanks for your work! I guess we can use this for perf report (and others)
to have a custom filter too.

Thanks,
Namhyung

>
> This is V2.
>
> The main patch is patch 1.
>
> The other patches add more functionality, except for patch 5 which installs
> the C API header file.
>
>
> Changes in V2:
> perf script: Move filter_cpu() earlier
> perf script: Move filtering before scripting
> perf script: Share addr_al between functions
> Dropped because they have now been applied.
>
> perf script: Add API for filtering via dynamically loaded shared object
> Move 2 members of struct perf_dlfilter_sample
> Add 'ctx' as an argument to 'start' and 'stop'
> Find dlfilter .so files in current directory or exec-path/dlfilters
>
> perf script: Add option to list dlfilters
> New patch
>
> perf script: Add option to pass arguments to dlfilters
> New patch
>
>
> Adrian Hunter (10):
> perf script: Add API for filtering via dynamically loaded shared object
> perf script: Add dlfilter__filter_event_early()
> perf script: Add option to list dlfilters
> perf script: Add option to pass arguments to dlfilters
> 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 | 251 ++++++++++++
> tools/perf/Documentation/perf-script.txt | 15 +-
> tools/perf/Makefile.config | 3 +
> tools/perf/Makefile.perf | 4 +-
> tools/perf/builtin-script.c | 86 +++-
> tools/perf/util/Build | 1 +
> tools/perf/util/dlfilter.c | 615 +++++++++++++++++++++++++++++
> tools/perf/util/dlfilter.h | 97 +++++
> tools/perf/util/perf_dlfilter.h | 150 +++++++
> 9 files changed, 1211 insertions(+), 11 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