From: Jiri Olsa <jolsa@redhat.com>
To: Song Liu <songliubraving@fb.com>
Cc: bpf@vger.kernel.org, netdev@vger.kernel.org,
linux-kernel@vger.kernel.org, ast@kernel.org,
daniel@iogearbox.net, kernel-team@fb.com, peterz@infradead.org,
acme@redhat.com, jolsa@kernel.org, namhyung@kernel.org
Subject: Re: [PATCH v6 perf,bpf 06/15] perf, bpf: save bpf_prog_info in a rbtree in perf_env
Date: Thu, 7 Mar 2019 15:05:46 +0100 [thread overview]
Message-ID: <20190307140546.GC7233@krava> (raw)
In-Reply-To: <20190306071359.2359896-7-songliubraving@fb.com>
On Tue, Mar 05, 2019 at 11:13:50PM -0800, Song Liu wrote:
> bpf_prog_info contains information necessary to annotate bpf programs.
> This patch saves bpf_prog_info for bpf programs loaded in the system.
>
> Some big picture of the next few patches:
>
> To fully annotate BPF programs with source code mapping, 4 different
> information are needed:
> 1) PERF_RECORD_KSYMBOL
> 2) PERF_RECORD_BPF_EVENT
> 3) bpf_prog_info
> 4) btf
>
> Before this set, 1) and 2) in the list are already saved to perf.data
> file. For BPF programs that are already loaded before perf run, 1) and 2)
> are synthesized by perf_event__synthesize_bpf_events(). For short living
> BPF programs, 1) and 2) are generated by kernel.
>
> This set handles 3) and 4) from the list. Again, it is necessary to handle
> existing BPF program and short living program separately.
>
> This patch handles 3) for exising BPF programs while synthesizing 1) and
> 2) in perf_event__synthesize_bpf_events(). These data are stored in
> perf_env. The next patch saves these data from perf_env to perf.data as
> headers.
>
> Similarly, the two patches after the next saves 4) of existing BPF
> programs to perf_env and perf.data.
>
> Another patch later will handle 3) and 4) for short living BPF programs
> by monitoring 1) and 2) in a dedicate thread.
>
thanks for the changelog
SNIP
> +
> + /* save bpf_prog_info to env */
> + info_node = malloc(sizeof(struct bpf_prog_info_node));
> +
> + /*
> + * Do not bail out for !info_node, as we still want to
> + * call perf_tool__process_synth_event()
> + */
well, we are out of memory, so I dont think perf_tool__process_synth_event
will get too far.. also the perf_env data would be inconsistent with what
you store as event.. how can that work?
jirka
> + if (info_node) {
> + info_node->info_linear = info_linear;
> + perf_env__insert_bpf_prog_info(env, info_node);
> + info_linear = NULL;
> + }
SNIP
next prev parent reply other threads:[~2019-03-07 14:05 UTC|newest]
Thread overview: 22+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-03-06 7:13 [PATCH v6 perf,bpf 00/15] perf annotation of BPF programs Song Liu
2019-03-06 7:13 ` [PATCH v6 perf,bpf 01/15] perf, bpf: consider events with attr.bpf_event as side-band events Song Liu
2019-03-06 7:13 ` [PATCH v6 perf,bpf 02/15] bpf: libbpf: introduce bpf_program__get_prog_info_linear() Song Liu
2019-03-06 7:13 ` [PATCH v6 perf,bpf 03/15] bpf: bpftool: use bpf_program__get_prog_info_linear() in prog.c:do_dump() Song Liu
2019-03-06 7:13 ` [PATCH v6 perf,bpf 04/15] perf, bpf: synthesize bpf events with bpf_program__get_prog_info_linear() Song Liu
2019-03-06 7:13 ` [PATCH v6 perf,bpf 05/15] perf: change prototype of perf_event__synthesize_bpf_events() Song Liu
2019-03-06 7:13 ` [PATCH v6 perf,bpf 06/15] perf, bpf: save bpf_prog_info in a rbtree in perf_env Song Liu
2019-03-07 14:05 ` Jiri Olsa [this message]
2019-03-07 17:20 ` Song Liu
2019-03-06 7:13 ` [PATCH v6 perf,bpf 07/15] perf, bpf: save bpf_prog_info information as headers to perf.data Song Liu
2019-03-07 14:05 ` Jiri Olsa
2019-03-07 17:19 ` Song Liu
2019-03-06 7:13 ` [PATCH v6 perf,bpf 08/15] perf, bpf: save btf in a rbtree in perf_env Song Liu
2019-03-07 14:05 ` Jiri Olsa
2019-03-06 7:13 ` [PATCH v6 perf,bpf 09/15] perf, bpf: save btf information as headers to perf.data Song Liu
2019-03-06 7:13 ` [PATCH v6 perf,bpf 10/15] perf-top: add option --no-bpf-event Song Liu
2019-03-06 7:13 ` [PATCH v6 perf,bpf 11/15] perf: add -lopcodes to feature-libbfd Song Liu
2019-03-06 7:13 ` [PATCH v6 perf,bpf 12/15] perf, bpf: enable annotation of bpf program Song Liu
2019-03-06 7:13 ` [PATCH v6 perf,bpf 13/15] perf, bpf: process PERF_BPF_EVENT_PROG_LOAD for annotation Song Liu
2019-03-06 7:13 ` [PATCH v6 perf,bpf 14/15] perf: introduce side band thread Song Liu
2019-03-07 14:05 ` Jiri Olsa
2019-03-06 7:13 ` [PATCH v6 perf,bpf 15/15] perf, bpf: save bpf_prog_info and btf of short living bpf programs Song Liu
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20190307140546.GC7233@krava \
--to=jolsa@redhat.com \
--cc=acme@redhat.com \
--cc=ast@kernel.org \
--cc=bpf@vger.kernel.org \
--cc=daniel@iogearbox.net \
--cc=jolsa@kernel.org \
--cc=kernel-team@fb.com \
--cc=linux-kernel@vger.kernel.org \
--cc=namhyung@kernel.org \
--cc=netdev@vger.kernel.org \
--cc=peterz@infradead.org \
--cc=songliubraving@fb.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.