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

2015-10-08 Thread Wang Nan
Hi Arnaldo,

   Have we made any progress on this patch set?

   I have finished my vacation. In this new pull request, I rebase BPF patches
onto the newest perf/core, and fix a document problem in Makefile.perf.

The following changes since commit ae938802443732e77d01f8d5b52b900b9327ff30:

  perf python: Support the PERF_RECORD_SWITCH event (2015-10-07 19:41:50 -0300)

are available in the git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/pi3orama/linux 
tags/perf-ebpf-for-acme-20151008

for you to fetch changes up to 60d6b3bceb3d87497c542dec61e4a968d9e2b488:

  perf test: Test BPF prologue (2015-10-08 07:23:33 +)


EBPF support for perf

 - Rebase to newest perf/core

 - Fix a document problem in Makefile.perf: NO_BPF -> NO_LIBBPF

Signed-off-by: Wang Nan 


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

Wang Nan (20):
  perf tools: Make perf depend on libbpf
  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

 tools/build/Makefile.feature|   6 +-
 tools/lib/bpf/libbpf.c  | 143 +-
 tools/lib/bpf/libbpf.h  |  22 +
 tools/perf/MANIFEST |   3 +
 tools/perf/Makefile.perf|  21 +-
 tools/perf/arch/x86/util/Build  |   1 +
 tools/perf/builtin-record.c |  11 +
 tools/perf/config/Makefile  |  31 +-
 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 |  10 +
 tools/perf/tests/llvm.c | 210 -
 tools/perf/tests/llvm.h |  29 ++
 tools/perf/tests/make   |   4 +-
 tools/perf/tests/tests.h|   5 +
 tools/perf/util/Build   |   2 +
 tools/perf/util/bpf-loader.c| 677 
 tools/perf/util/bpf-loader.h|  94 
 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-finder.c  |   4 +
 31 files changed, 2248 insertions(+), 36 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 majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


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

2015-09-23 Thread Wang Nan
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 +)


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

Signed-off-by: Wang Nan 


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 majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


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

2015-10-08 Thread Arnaldo Carvalho de Melo
Em Thu, Oct 08, 2015 at 08:29:22AM +, Wang Nan escreveu:
> Hi Arnaldo,
> 
>Have we made any progress on this patch set?

Well, only one of the patches, not strictly related to eBPF gave me some
work:

  commit 266fa2b22294909ddf6e7d2f8acfe07adf9fd978
  Author: Arnaldo Carvalho de Melo 
  Date:   Thu Sep 24 11:24:18 2015 -0300

  perf probe: Use existing routine to look for a kernel module by
  dso->short_name

And some patches came from Masami that I think were somehow related to
things you reported, had to review/test/apply/push those as well.

- Arnaldo
 
>I have finished my vacation. In this new pull request, I rebase BPF patches
> onto the newest perf/core, and fix a document problem in Makefile.perf.
> 
> The following changes since commit ae938802443732e77d01f8d5b52b900b9327ff30:
> 
>   perf python: Support the PERF_RECORD_SWITCH event (2015-10-07 19:41:50 
> -0300)
> 
> are available in the git repository at:
> 
>   git://git.kernel.org/pub/scm/linux/kernel/git/pi3orama/linux 
> tags/perf-ebpf-for-acme-20151008
> 
> for you to fetch changes up to 60d6b3bceb3d87497c542dec61e4a968d9e2b488:
> 
>   perf test: Test BPF prologue (2015-10-08 07:23:33 +)
> 
> 
> EBPF support for perf
> 
>  - Rebase to newest perf/core
> 
>  - Fix a document problem in Makefile.perf: NO_BPF -> NO_LIBBPF
> 
> Signed-off-by: Wang Nan 
> 
> 
> He Kuang (2):
>   perf tools: Add prologue for BPF programs for fetching arguments
>   perf record: Support custom vmlinux path
> 
> Wang Nan (20):
>   perf tools: Make perf depend on libbpf
>   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
> 
>  tools/build/Makefile.feature|   6 +-
>  tools/lib/bpf/libbpf.c  | 143 +-
>  tools/lib/bpf/libbpf.h  |  22 +
>  tools/perf/MANIFEST |   3 +
>  tools/perf/Makefile.perf|  21 +-
>  tools/perf/arch/x86/util/Build  |   1 +
>  tools/perf/builtin-record.c |  11 +
>  tools/perf/config/Makefile  |  31 +-
>  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 |  10 +
>  tools/perf/tests/llvm.c | 210 -
>  tools/perf/tests/llvm.h |  29 ++
>  tools/perf/tests/make   |   4 +-
>  tools/perf/tests/tests.h|   5 +
>  tools/perf/util/Build   |   2 +
>  tools/perf/util/bpf-loader.c| 677 
> 
>  tools/perf/util/bpf-loader.h|  94 
>  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-finder.c  |   4 +
>  31 files changed, 2248 insertions(+), 36 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/

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

2015-09-23 Thread Arnaldo Carvalho de Melo
Em Wed, Sep 23, 2015 at 11:22:21AM +, 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 +)
> 
> 
> Get rid of dummy events by utilizing new perf probe API.
> 
> Signed-off-by: Wang Nan 
> 
> 
> 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.