mbox

[GIT,PULL,00/22] perf tools: filtering events using eBPF programs

Message ID 1443007363-124182-1-git-send-email-wangnan0@huawei.com
State New
Headers show

Pull-request

https://github.com/WangNan0/linux.git tags/perf-ebpf-for-acme-20150923

Message

Wang Nan Sept. 23, 2015, 11:22 a.m. UTC
Hi Arnaldo,

   I hope you would be satisified with this weeks pull request. In this
patchset, we totally get rid of dummy events by utilizing Namhyung's newest
perf probing API.

Patch 1-6 are different from previous patchset. Plase have a look.

Due to some reason I can't access my kernel.org account in my company today,
so I reuse my github repository. I'll update my kernel.org tree at home.

I'll have a long vacation from Sept. 24. I hope I can discuss with you with
my private email. However, It seems impossible to modify code and test until
Oct. 7. If you find some small problem, could you please help me fix them?

Thank you.

The following changes since commit 5933944f697c15d6f1fb16dc22c02aac9d2ec206:

  perf tools: Make perf depend on libbpf (2015-09-22 10:17:01 -0300)

are available in the git repository at:

  https://github.com/WangNan0/linux.git tags/perf-ebpf-for-acme-20150923

for you to fetch changes up to 1465cf7b201b8b21c61fa54ffe15094f66e73ab0:

  perf probe: Fix module probing with shortname (2015-09-23 10:44:58 +0000)

----------------------------------------------------------------
Get rid of dummy events by utilizing new perf probe API.

Signed-off-by: Wang Nan <wangnan0@huawei.com>

----------------------------------------------------------------
He Kuang (2):
      perf tools: Add prologue for BPF programs for fetching arguments
      perf record: Support custom vmlinux path

Wang Nan (20):
      perf ebpf: Add the libbpf glue
      perf tools: Enable passing bpf object file to --event
      perf record, bpf: Create probe points for BPF programs
      perf record: Load eBPF object into kernel
      perf tools: Collect perf_evsel in BPF object files
      perf tools: Attach eBPF program to perf event
      perf record: Add clang options for compiling BPF scripts
      perf tools: Compile scriptlets to BPF objects when passing '.c' to --event
      perf test: Enforce LLVM test for BPF test
      perf test: Add 'perf test BPF'
      perf probe: Reset args and nargs for probe_trace_event when failure
      bpf tools: Load a program with different instances using preprocessor
      perf tools: Add BPF_PROLOGUE config options for further patches
      perf tools: Compile dwarf-regs.c if CONFIG_BPF_PROLOGUE is on
      perf tools: Generate prologue for BPF programs
      perf tools: Use same BPF program if arguments are identical
      perf tools: Allow BPF program attach to uprobe events
      perf test: Enforce LLVM test, add kbuild test
      perf test: Test BPF prologue
      perf probe: Fix module probing with shortname

 tools/lib/bpf/libbpf.c                      | 143 +++++-
 tools/lib/bpf/libbpf.h                      |  22 +
 tools/perf/arch/x86/util/Build              |   1 +
 tools/perf/builtin-record.c                 |  11 +
 tools/perf/config/Makefile                  |  12 +
 tools/perf/perf.c                           |   2 +
 tools/perf/tests/Build                      |  24 +-
 tools/perf/tests/bpf-script-example.c       |  48 ++
 tools/perf/tests/bpf-script-test-kbuild.c   |  21 +
 tools/perf/tests/bpf-script-test-prologue.c |  35 ++
 tools/perf/tests/bpf.c                      | 227 ++++++++++
 tools/perf/tests/builtin-test.c             |  12 +
 tools/perf/tests/llvm.c                     | 210 ++++++++-
 tools/perf/tests/llvm.h                     |  29 ++
 tools/perf/tests/tests.h                    |   3 +
 tools/perf/util/Build                       |   2 +
 tools/perf/util/bpf-loader.c                | 676 ++++++++++++++++++++++++++++
 tools/perf/util/bpf-loader.h                |  95 ++++
 tools/perf/util/bpf-prologue.c              | 443 ++++++++++++++++++
 tools/perf/util/bpf-prologue.h              |  34 ++
 tools/perf/util/evsel.c                     |  17 +
 tools/perf/util/evsel.h                     |   1 +
 tools/perf/util/parse-events.c              | 115 +++++
 tools/perf/util/parse-events.h              |   9 +
 tools/perf/util/parse-events.l              |   6 +
 tools/perf/util/parse-events.y              |  29 +-
 tools/perf/util/probe-event.c               |   2 +-
 tools/perf/util/probe-finder.c              |   4 +
 28 files changed, 2202 insertions(+), 31 deletions(-)
 create mode 100644 tools/perf/tests/bpf-script-example.c
 create mode 100644 tools/perf/tests/bpf-script-test-kbuild.c
 create mode 100644 tools/perf/tests/bpf-script-test-prologue.c
 create mode 100644 tools/perf/tests/bpf.c
 create mode 100644 tools/perf/tests/llvm.h
 create mode 100644 tools/perf/util/bpf-loader.c
 create mode 100644 tools/perf/util/bpf-loader.h
 create mode 100644 tools/perf/util/bpf-prologue.c
 create mode 100644 tools/perf/util/bpf-prologue.h

Comments

Arnaldo Carvalho de Melo Sept. 23, 2015, 1:46 p.m. UTC | #1
Em Wed, Sep 23, 2015 at 11:22:21AM +0000, Wang Nan escreveu:
> Hi Arnaldo,
> 
>    I hope you would be satisified with this weeks pull request. In this
> patchset, we totally get rid of dummy events by utilizing Namhyung's newest
> perf probing API.
> 
> Patch 1-6 are different from previous patchset. Plase have a look.
> 
> Due to some reason I can't access my kernel.org account in my company today,
> so I reuse my github repository. I'll update my kernel.org tree at home.
> 
> I'll have a long vacation from Sept. 24. I hope I can discuss with you with
> my private email. However, It seems impossible to modify code and test until
> Oct. 7. If you find some small problem, could you please help me fix them?

Sure thing, I'll continue working on this, we'll get there :-)
 
> Thank you.
> 
> The following changes since commit 5933944f697c15d6f1fb16dc22c02aac9d2ec206:
> 
>   perf tools: Make perf depend on libbpf (2015-09-22 10:17:01 -0300)
> 
> are available in the git repository at:
> 
>   https://github.com/WangNan0/linux.git tags/perf-ebpf-for-acme-20150923
> 
> for you to fetch changes up to 1465cf7b201b8b21c61fa54ffe15094f66e73ab0:
> 
>   perf probe: Fix module probing with shortname (2015-09-23 10:44:58 +0000)
> 
> ----------------------------------------------------------------
> Get rid of dummy events by utilizing new perf probe API.
> 
> Signed-off-by: Wang Nan <wangnan0@huawei.com>
> 
> ----------------------------------------------------------------
> He Kuang (2):
>       perf tools: Add prologue for BPF programs for fetching arguments
>       perf record: Support custom vmlinux path
> 
> Wang Nan (20):
>       perf ebpf: Add the libbpf glue
>       perf tools: Enable passing bpf object file to --event
>       perf record, bpf: Create probe points for BPF programs
>       perf record: Load eBPF object into kernel
>       perf tools: Collect perf_evsel in BPF object files
>       perf tools: Attach eBPF program to perf event
>       perf record: Add clang options for compiling BPF scripts
>       perf tools: Compile scriptlets to BPF objects when passing '.c' to --event
>       perf test: Enforce LLVM test for BPF test
>       perf test: Add 'perf test BPF'
>       perf probe: Reset args and nargs for probe_trace_event when failure
>       bpf tools: Load a program with different instances using preprocessor
>       perf tools: Add BPF_PROLOGUE config options for further patches
>       perf tools: Compile dwarf-regs.c if CONFIG_BPF_PROLOGUE is on
>       perf tools: Generate prologue for BPF programs
>       perf tools: Use same BPF program if arguments are identical
>       perf tools: Allow BPF program attach to uprobe events
>       perf test: Enforce LLVM test, add kbuild test
>       perf test: Test BPF prologue
>       perf probe: Fix module probing with shortname
> 
>  tools/lib/bpf/libbpf.c                      | 143 +++++-
>  tools/lib/bpf/libbpf.h                      |  22 +
>  tools/perf/arch/x86/util/Build              |   1 +
>  tools/perf/builtin-record.c                 |  11 +
>  tools/perf/config/Makefile                  |  12 +
>  tools/perf/perf.c                           |   2 +
>  tools/perf/tests/Build                      |  24 +-
>  tools/perf/tests/bpf-script-example.c       |  48 ++
>  tools/perf/tests/bpf-script-test-kbuild.c   |  21 +
>  tools/perf/tests/bpf-script-test-prologue.c |  35 ++
>  tools/perf/tests/bpf.c                      | 227 ++++++++++
>  tools/perf/tests/builtin-test.c             |  12 +
>  tools/perf/tests/llvm.c                     | 210 ++++++++-
>  tools/perf/tests/llvm.h                     |  29 ++
>  tools/perf/tests/tests.h                    |   3 +
>  tools/perf/util/Build                       |   2 +
>  tools/perf/util/bpf-loader.c                | 676 ++++++++++++++++++++++++++++
>  tools/perf/util/bpf-loader.h                |  95 ++++
>  tools/perf/util/bpf-prologue.c              | 443 ++++++++++++++++++
>  tools/perf/util/bpf-prologue.h              |  34 ++
>  tools/perf/util/evsel.c                     |  17 +
>  tools/perf/util/evsel.h                     |   1 +
>  tools/perf/util/parse-events.c              | 115 +++++
>  tools/perf/util/parse-events.h              |   9 +
>  tools/perf/util/parse-events.l              |   6 +
>  tools/perf/util/parse-events.y              |  29 +-
>  tools/perf/util/probe-event.c               |   2 +-
>  tools/perf/util/probe-finder.c              |   4 +
>  28 files changed, 2202 insertions(+), 31 deletions(-)
>  create mode 100644 tools/perf/tests/bpf-script-example.c
>  create mode 100644 tools/perf/tests/bpf-script-test-kbuild.c
>  create mode 100644 tools/perf/tests/bpf-script-test-prologue.c
>  create mode 100644 tools/perf/tests/bpf.c
>  create mode 100644 tools/perf/tests/llvm.h
>  create mode 100644 tools/perf/util/bpf-loader.c
>  create mode 100644 tools/perf/util/bpf-loader.h
>  create mode 100644 tools/perf/util/bpf-prologue.c
>  create mode 100644 tools/perf/util/bpf-prologue.h
> -- 
> 1.8.3.4
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/