Re: [PATCH v9 perf,bpf 07/15] perf, bpf: save bpf_prog_info information as headers to perf.data

From: Arnaldo Carvalho de Melo
Date: Tue Mar 12 2019 - 10:48:06 EST


Em Tue, Mar 12, 2019 at 02:10:23PM +0100, Jiri Olsa escreveu:
> On Mon, Mar 11, 2019 at 10:30:43PM -0700, Song Liu wrote:
>
> SNIP
>
> > +static void print_bpf_prog_info(struct feat_fd *ff, FILE *fp)
> > +{
> > + struct perf_env *env = &ff->ph->env;
> > + struct rb_root *root;
> > + struct rb_node *next;
> > +
> > + down_read(&env->bpf_progs.lock);
> > +
> > + root = &env->bpf_progs.infos;
> > + next = rb_first(root);
> > +
> > + while (next) {
> > + struct bpf_prog_info_node *node;
> > +
> > + node = rb_entry(next, struct bpf_prog_info_node, rb_node);
> > + next = rb_next(&node->rb_node);
> > + fprintf(fp, "# bpf_prog_info of id %u\n",
> > + node->info_linear->info.id);
>
> so report displays bpf prog dso/name like:
>
> 0.02% ls bpf_prog_c80ffe554aba1bec_syscall_enter_o [k] bpf_prog_c80ffe554aba1bec_syscall_enter_o â
>
> and 'perf report --header-only -I' shows:
>
>
> # bpf_prog_info of id 17
> # bpf_prog_info of id 18
> # bpf_prog_info of id 19
> # bpf_prog_info of id 20
> # bpf_prog_info of id 21
> # bpf_prog_info of id 22
> # bpf_prog_info of id 25
> # bpf_prog_info of id 26
> # bpf_prog_info of id 34
> # bpf_prog_info of id 35
>
> could we have something more detailed like bpftool output:
>
> 34: tracepoint name syscall_enter_o tag c80ffe554aba1bec gpl
> loaded_at 2019-03-12T14:02:03+0100 uid 0
> xlated 360B jited 232B memlock 4096B map_ids 30
>
> 35: tracepoint name syscall_enter_o tag ada5ccbe5576399c gpl
> loaded_at 2019-03-12T14:02:03+0100 uid 0
> xlated 352B jited 228B memlock 4096B map_ids 30
>
>
> could be on top of this patchset

Yeah, please, and can we have the name of programs that loaded that
program there as well? 8-)

- Arnaldo