On 2015/6/4 13:48, Ingo Molnar wrote:
* Arnaldo Carvalho de Melo <a...@kernel.org> wrote:

Hi Ingo,

        Please consider applying.

        One of the next requests probably will have the eBPF work by Wang Nan,
but I am still going thru it and want to test it thoroughly.

        BTW: Have you looked at it lately? It is at:

http://lkml.kernel.org/r/1433144296-74992-1-git-send-email-wangn...@huawei.com

Super summary from the above cover letter:

---------------------
It enables 'perf record' to filter events using eBPF programs like:

  # perf record --event bpf-file.o sleep 1

Events are selected and filtered according to definitions in bpf-file.o.
Looks useful, but I think the UI needs one more tweak: could you fix it to be 
able
to filter based on the eBPF _source_ file, not just the object file?

People want to tweak such filters as they profile, so we should use the eBPF
source code as the primary interface. We can compile it internally to the .o 
just
fine. The .o file is a totally uninteresting intermediate product in itself.

I.e. we need to first think through such profiling workflows from beginning to 
end
before allowing them upstream.

In a private mail Alexei Starovoitov disscussed with me about this. He said that he is working on a shared object which can compile C program into BPF bytecode on the fly. After he done his work, I think perf can support dtrace-like profiling that, users will be able to feed source code to perf directly on cmdline. He said he can release it on June. I added him to the CC-list.

However I think the '.o' intermediate is still needed. I'd like to share a real profiling experience using eBPF today, please keep an eye on it. In my experience, since we are using C instead of dtrace, the code piece could be relative complex. Therefore, even if perf is able to compile the C source on the fly, I think user still need to transfer the profiling scripts to the target machine. Therefor, for him, precompiling and do some debugging on a high-end server then transfer it into target machine (like a smartphone) is tolerable, and useful for me.

Thank you.

---------------------

        The first two patches from that series are in this pull req, as
they just move stuff into tools/include/linux/ from tools/perf/include.

Regards,

- Arnaldo

The following changes since commit 5c9b9bc67c684e40b3a5e7e9facde0fb7200cd8c:

   Merge tag 'perf-core-for-mingo' of 
git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux into perf/core 
(2015-05-29 20:19:02 +0200)

are available in the git repository at:

   git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux.git 
tags/perf-core-for-mingo

for you to fetch changes up to 1f121b03d058dd07199d8924373d3c52a207f63b:

   perf tools: Deal with kernel module names in '[]' correctly (2015-06-03 
10:02:38 -0300)

----------------------------------------------------------------
perf/core improvements and fixes:

User visible:

- Fix 'perf probe' segfault when glob matching function without debuginfo (Wang 
Nan)

- Remove newline char when reading event scale and unit (Madhavan Srinivasan)

- Deal with kernel module names in '[]' correctly (Wang Nan)

Infrastructure:

- Fix the search for the kernel DSO on the unified list (Arnaldo Carvalho de 
Melo)

- Move tools/perf/util/include/linux/{kernel.h,list.h,poison.h} to 
tools/include,
   to be used in tools/lib/bpf/ (Wang Nan)

Signed-off-by: Arnaldo Carvalho de Melo <a...@redhat.com>

----------------------------------------------------------------
Arnaldo Carvalho de Melo (1):
       perf machine: Fix the search for the kernel DSO on the unified list

Madhavan Srinivasan (1):
       perf tools: Remove newline char when reading event scale and unit

Wang Nan (4):
       perf probe: Fix segfault when glob matching function without debuginfo
       perf tools: Move linux/kernel.h to tools/include
       tools: Move tools/perf/util/include/linux/{list.h,poison.h} to 
tools/include
       perf tools: Deal with kernel module names in '[]' correctly

  tools/{perf/util => }/include/linux/kernel.h |  4 +-
  tools/{perf/util => }/include/linux/list.h   |  6 +--
  tools/include/linux/poison.h                 |  1 +
  tools/perf/MANIFEST                          |  3 ++
  tools/perf/tests/kmod-path.c                 | 72 ++++++++++++++++++++++++++++
  tools/perf/util/dso.c                        | 47 ++++++++++++++++--
  tools/perf/util/dso.h                        |  2 +-
  tools/perf/util/header.c                     |  8 ++--
  tools/perf/util/include/linux/poison.h       |  1 -
  tools/perf/util/machine.c                    | 22 ++++++++-
  tools/perf/util/pmu.c                        | 11 ++++-
  tools/perf/util/probe-event.c                | 26 ++++++++--
  12 files changed, 179 insertions(+), 24 deletions(-)
  rename tools/{perf/util => }/include/linux/kernel.h (97%)
  rename tools/{perf/util => }/include/linux/list.h (90%)
  create mode 100644 tools/include/linux/poison.h
  delete mode 100644 tools/perf/util/include/linux/poison.h
Pulled, thanks a lot Arnaldo!

        Ingo


--
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/

Reply via email to