On Thu, Dec 20, 2018 at 10:29:00AM -0800, Song Liu wrote:
> +static void perf_event_bpf_emit_ksymbols(struct bpf_prog *prog,
> +                                      enum perf_bpf_event_type type)
> +{
> +     bool unregister = type == PERF_BPF_EVENT_PROG_UNLOAD;
> +     int i;
> +
> +     if (prog->aux->func_cnt == 0) {
> +             perf_event_ksymbol(PERF_RECORD_MISC_KSYMBOL_TYPE_BPF,
> +                                (u64)(unsigned long)prog->bpf_func,
> +                                prog->jited_len, unregister,
> +                                perf_event_bpf_get_name, prog);
> +     } else {
> +             for (i = 0; i < prog->aux->func_cnt; i++) {
> +                     struct bpf_prog *subprog = prog->aux->func[i];
> +
> +                     perf_event_ksymbol(
> +                             PERF_RECORD_MISC_KSYMBOL_TYPE_BPF,
> +                             (u64)(unsigned long)subprog->bpf_func,
> +                             subprog->jited_len, unregister,
> +                             perf_event_bpf_get_name, subprog);
> +             }
> +     }
> +}

That's a bit unexpected, but yes sure, that works for now.

I was expecting it to be hooked up in your kallsym rbtree thing, but
whatever, we can fix that when needed.

Reply via email to