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

From: Jiri Olsa <[email-masked]>
Date: Tue, 12 Mar 2019 14:10:23 +0100

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

jirka