lkml.org 
[lkml]   [2015]   [Sep]   [6]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    From
    Subject[GIT PULL 00/27] perf tools: filtering events using eBPF programs
    Date
    (I forget to CC mailing list when sending previous pull req. Sorry for the noisy.)

    Hi Arnaldo,


    I rebased my code on your perf/core and send a new pull request. You
    can find main changes in the tag message. The most biggest changes
    are the resesigning of dummy placeholder and the new testcase for BPF
    prologue. They are patch 10, patch 11, patch 26 and patch 27. Please
    have a look at them.

    The following changes since commit 0959e527b1593e662cb99639a587eac39ea1232d:

    perf stat: Move sw clock metrics printout to stat-shadow (2015-09-04 20:30:01 -0300)

    are available in the git repository at:

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

    for you to fetch changes up to 3af1c7f44478d1545f202bd0054e767d3f0f8130:

    perf test: Test BPF prologue (2015-09-06 06:10:12 +0000)

    ----------------------------------------------------------------
    BPF related bugfix and improve

    1. Enforce the assumption that event parser never return empty list.

    2. Reuse code and API from kernel's regs_query_register_offset().

    3. Totally redesign dummy placeholder. Reuse existing dummy event instead
    of creating a new one.

    4. Introduce new testcases, test LLVM kbuild searching and BPF prologue.

    5. Adding a missing '!' in add_perf_probe_events.

    6. Use new API ({convert,apply,cleanup}_perf_probe_events) to probe events.
    (while fix a bug that non-root user can't trace non-BPF events, like cycles)

    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 (25):
    perf tools: Don't write to evsel if parser doesn't collect evsel
    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: Parse and create probe points for BPF programs
    perf bpf: Collect 'struct perf_probe_event' for bpf_program
    perf record: Load all eBPF object into kernel
    perf tools: Add bpf_fd field to evsel and config it
    perf tools: Attach eBPF program to perf event
    perf tools: Allow BPF placeholder dummy events to collect --filter
    options
    perf tools: Sync setting of real bpf events with placeholder
    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'
    bpf tools: Load a program with different instances using preprocessor
    perf probe: Reset args and nargs for probe_trace_event when failure
    perf tools: Add BPF_PROLOGUE config options for further patches
    perf tools: Introduce regs_query_register_offset() for x86
    perf tools: Generate prologue for BPF programs
    perf tools: Use same BPF program if arguments are identical
    perf probe: Init symbol as kprobe
    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 | 19 +-
    tools/perf/arch/x86/Makefile | 1 +
    tools/perf/arch/x86/util/Build | 1 +
    tools/perf/arch/x86/util/dwarf-regs.c | 122 +++--
    tools/perf/builtin-record.c | 58 ++-
    tools/perf/builtin-stat.c | 8 +-
    tools/perf/builtin-top.c | 10 +-
    tools/perf/builtin-trace.c | 6 +-
    tools/perf/config/Makefile | 36 +-
    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 | 229 +++++++++
    tools/perf/tests/builtin-test.c | 12 +
    tools/perf/tests/llvm.c | 210 +++++++-
    tools/perf/tests/llvm.h | 29 ++
    tools/perf/tests/make | 4 +-
    tools/perf/tests/tests.h | 3 +
    tools/perf/util/Build | 2 +
    tools/perf/util/bpf-loader.c | 756 ++++++++++++++++++++++++++++
    tools/perf/util/bpf-loader.h | 94 ++++
    tools/perf/util/bpf-prologue.c | 443 ++++++++++++++++
    tools/perf/util/bpf-prologue.h | 34 ++
    tools/perf/util/evlist.c | 115 +++++
    tools/perf/util/evlist.h | 1 +
    tools/perf/util/evsel.c | 49 ++
    tools/perf/util/evsel.h | 24 +
    tools/perf/util/include/dwarf-regs.h | 8 +
    tools/perf/util/parse-events.c | 82 ++-
    tools/perf/util/parse-events.h | 4 +
    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 +
    39 files changed, 2618 insertions(+), 85 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

    --
    2.1.0



    \
     
     \ /
      Last update: 2015-09-06 09:41    [W:4.188 / U:0.024 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site