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

From: Arnaldo Carvalho de Melo <[email-masked]>
Date: Tue, 12 Mar 2019 11:47:58 -0300

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