lkml.org 
[lkml]   [2019]   [Mar]   [12]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    From
    SubjectRe: [PATCH v9 perf,bpf 09/15] perf, bpf: save btf information as headers to perf.data
    Date


    > On Mar 12, 2019, at 8:16 AM, Arnaldo Carvalho de Melo <arnaldo.melo@gmail.com> wrote:
    >
    > Em Tue, Mar 12, 2019 at 12:14:05PM -0300, Arnaldo Carvalho de Melo escreveu:
    >> Em Mon, Mar 11, 2019 at 10:30:45PM -0700, Song Liu escreveu:
    >>> +static void print_bpf_btf(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.btfs;
    >>> + next = rb_first(root);
    >>> +
    >>> + while (next) {
    >>> + struct btf_node *node;
    >>> +
    >>> + node = rb_entry(next, struct btf_node, rb_node);
    >>> + next = rb_next(&node->rb_node);
    >>> + fprintf(fp, "# btf info of id %u\n", node->id);
    >>
    >> So, I couldn't get this to work right now, and I have BPF programs that
    >> are loaded and that have BTF info:
    >>
    >> [root@quaco ~]# bpftool prog | tail -6
    >> 208: tracepoint name sys_enter tag 819967866022f1e1 gpl
    >> loaded_at 2019-03-12T11:16:55-0300 uid 0
    >> xlated 528B jited 381B memlock 4096B map_ids 107,106,105
    >> 209: tracepoint name sys_exit tag c1bd85c092d6e4aa gpl
    >> loaded_at 2019-03-12T11:16:55-0300 uid 0
    >> xlated 256B jited 191B memlock 4096B map_ids 107,106
    >> [root@quaco ~]#
    >>
    >>
    >> [root@quaco ~]# bpftool map | tail -6
    >> 105: perf_event_array name __augmented_sys flags 0x0
    >> key 4B value 4B max_entries 8 memlock 4096B
    >> 106: array name syscalls flags 0x0
    >> key 4B value 1B max_entries 512 memlock 8192B
    >> 107: hash name pids_filtered flags 0x0
    >> key 4B value 1B max_entries 64 memlock 8192B
    >> [root@quaco ~]#
    >>
    >> [root@quaco ~]# bpftool map dump id 107
    >> [{
    >> "key": 8104,
    >> "value": true
    >> },{
    >> "key": 18868,
    >> "value": true
    >> }
    >> ]
    >> [root@quaco ~]# ps ax|egrep 8104\|18868 | grep -v grep
    >> 8104 pts/8 S+ 0:07 trace -e recvmmsg
    >> 18868 ? Ssl 21:21 /usr/libexec/gnome-terminal-server
    >> [root@quaco ~]#
    >>
    >> So I was expecting to see those btf lines there :-\
    >>
    >> All the patches up to this point I have already merged and tested in my
    >> local branch.
    >>
    >> Will continue right after lunch to try to figure out why this BTF info
    >> isn't landing on this new header feature...
    >
    > I've pushed what I have to my git.kernel.org repo, branch
    > tmp.perf/bpf-annotate.
    >
    > git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux.git tmp.perf/bpf-annotate
    >
    > The HEAD is this cset.
    >
    > - Arnaldo

    I am not sure I fully understand the problem here.

    I can get BTF information from this version:

    # ~/perf report --header-only | grep btf
    # btf info of id 504

    Thanks,
    Song

    \
     
     \ /
      Last update: 2019-03-12 17:28    [W:4.394 / U:0.112 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site