On Mon, Feb 25, 2019 at 04:20:19PM -0800, Song Liu wrote:

SNIP

> +     btf_id = info_linear->info.btf_id;
> +
> +     info_node = malloc(sizeof(struct bpf_prog_info_node));
> +     if (info_node) {
> +             info_node->info_linear = info_linear;
> +             perf_env__insert_bpf_prog_info(env, info_node);
> +     } else
> +             free(info_linear);
> +
> +     if (btf_id == 0)
> +             goto out;
> +
> +     if (btf__get_from_id(btf_id, &btf)) {
> +             pr_debug("%s: failed to get BTF of id %u, aborting\n",
> +                      __func__, btf_id);
> +             goto out;
> +     }
> +     perf_env__fetch_btf(env, btf_id, btf);

so is this the main reason we are doing this? getting the btf
data for bpf prog ids and store them?

please describe the whole bpf events/features data flow in
changelog as I asked in previous email

thanks,
jirka

Reply via email to