lkml.org 
[lkml]   [2019]   [Jan]   [11]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: [PATCH v7 perf, bpf-next 0/8] reveal invisible bpf programs
    Em Thu, Jan 10, 2019 at 04:19:25PM -0800, Song Liu escreveu:
    > This set catches symbol for all bpf programs loaded/unloaded
    > before/during/after perf-record run PERF_RECORD_KSYMBOL and
    > PERF_RECORD_BPF_EVENT.
    >
    > PERF_RECORD_KSYMBOL and PERF_RECORD_BPF_EVENT includes key information
    > of a bpf program load and unload. They are sent through perf ringbuffer,
    > and stored in perf.data. PERF_RECORD_KSYMBOL includes basic information
    > for simple profiling. It is ON by default. PERF_RECORD_BPF_EVENT is
    > used to gather more information of the bpf program. It is necessary for
    > perf-annotate of bpf programs.
    >
    > Before this patch, perf-report will not be able to recover symbols of
    > bpf programs once the programs are unloaded.
    >
    > This is to follow up Alexei's early effort [2] to show bpf programs via
    > mmap events.
    >
    > Thanks,
    > Song
    >
    > Changes v6 -> PATCH v7:
    > 1. Split "[3/7] introduce PERF_RECORD_BPF_EVENT" into two commits:
    > [3/8] introduce PERF_RECORD_BPF_EVENT
    > [5/8] emit PERF_RECORD_KSYMBOL for BPF program load/unload

    Thanks, I'm trying now to build a kernel/tools combo to test this.

    > Changes v5 -> PATCH v6:
    > 1. Reduce len in PERF_RECORD_KSYMBOL from u64 to u32. Use the 32 free bits
    > for ksym_type (u16) and flags (u16).
    >
    > Changes v4 -> PATCH v5:
    > 1. Fixed build error reported by kbuild test bot.
    >
    > Changes v3 -> PATCH v4:
    > 1. Split information about bpf program into PERF_RECORD_KSYMBOL (with
    > name, addr, len); and PERF_RECORD_BPF_EVENT PERF_RECORD_BPF_EVENT
    > (with id, tag);
    > 2. Split the implementation in kernel and user space.
    >
    > Changes v2 -> PATCH v3:
    > 1. Rebase on bpf-next tree, and on top of BPF sub program tag patches [1]
    > for latest information in bpf_prog_info.
    > 2. Complete handling and synthesizing PERF_RECORD_BPF_EVENT in perf.
    >
    > Changes v1 -> PATCH v2:
    > 1. Only 3 of the 5 patches in v1, to focus on ABI first;
    > 2. Generate PERF_RECORD_BPF_EVENT per bpf sub program instead of per prog;
    > 3. Modify PERF_RECORD_BPF_EVENT with more details (addr, len, name),
    > so that it can be used for basic profiling without calling sys_bpf.
    >
    > Changes RFC -> PATCH v1:
    > 1. In perf-record, poll vip events in a separate thread;
    > 2. Add tag to bpf prog name;
    > 3. Small refactorings.
    >
    > [1] https://patchwork.ozlabs.org/project/netdev/list/?series=81037
    > [2] https://www.spinics.net/lists/netdev/msg524232.html
    >
    > Song Liu (8):
    > perf, bpf: Introduce PERF_RECORD_KSYMBOL
    > sync tools/include/uapi/linux/perf_event.h
    > perf, bpf: introduce PERF_RECORD_BPF_EVENT
    > sync tools/include/uapi/linux/perf_event.h
    > perf, bpf: emit PERF_RECORD_KSYMBOL for BPF program load/unload
    > perf util: handle PERF_RECORD_KSYMBOL
    > perf util: handle PERF_RECORD_BPF_EVENT
    > perf tools: synthesize PERF_RECORD_* for loaded BPF programs
    >
    > include/linux/filter.h | 7 +
    > include/linux/perf_event.h | 19 +++
    > include/uapi/linux/perf_event.h | 53 ++++++-
    > kernel/bpf/core.c | 2 +-
    > kernel/bpf/syscall.c | 2 +
    > kernel/events/core.c | 218 ++++++++++++++++++++++++-
    > tools/include/uapi/linux/perf_event.h | 53 ++++++-
    > tools/perf/builtin-record.c | 7 +
    > tools/perf/perf.h | 1 +
    > tools/perf/util/Build | 2 +
    > tools/perf/util/bpf-event.c | 220 ++++++++++++++++++++++++++
    > tools/perf/util/bpf-event.h | 16 ++
    > tools/perf/util/event.c | 41 +++++
    > tools/perf/util/event.h | 36 +++++
    > tools/perf/util/evsel.c | 19 +++
    > tools/perf/util/evsel.h | 2 +
    > tools/perf/util/machine.c | 60 +++++++
    > tools/perf/util/machine.h | 3 +
    > tools/perf/util/session.c | 8 +
    > tools/perf/util/tool.h | 5 +-
    > 20 files changed, 769 insertions(+), 5 deletions(-)
    > create mode 100644 tools/perf/util/bpf-event.c
    > create mode 100644 tools/perf/util/bpf-event.h
    >
    > --
    > 2.17.1

    --

    - Arnaldo

    \
     
     \ /
      Last update: 2019-01-11 17:27    [W:5.280 / U:0.452 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site