• Arnaldo Carvalho de Melo's avatar
    perf symbols: Stop using map->groups, we can use kmaps instead · f2baa060
    Arnaldo Carvalho de Melo authored
    To test that that function is being called I just added a probe on that
    place, enabled it via 'perf trace' asking for at most 16 levels of
    backtraces, system wide, and then ran 'perf top' on another xterm,
    voilà:
    
      # perf probe -x ~/bin/perf dso__process_kernel_symbol
      Added new event:
        probe_perf:dso__process_kernel_symbol (on dso__process_kernel_symbol in /home/acme/bin/perf)
    
      You can now use it in all perf tools, such as:
    
      	perf record -e probe_perf:dso__process_kernel_symbol -aR sleep 1
    
      # perf trace -e probe_perf:dso__process_kernel_symbol/max-stack=16/ --max-events=2
      # perf trace -e probe_perf:dso__process_kernel_symbol/max-stack=16/ --max-events=2
           0.000 :17345/17345 probe_perf:dso__process_kernel_symbol(__probe_ip: 5680224)
                                             dso__process_kernel_symbol (/home/acme/bin/perf)
                                             dso__load_vmlinux (/home/acme/bin/perf)
                                             dso__load_vmlinux_path (/home/acme/bin/perf)
                                             dso__load (/home/acme/bin/perf)
                                             map__load (/home/acme/bin/perf)
                                             thread__find_map (/home/acme/bin/perf)
                                             machine__resolve (/home/acme/bin/perf)
                                             deliver_event (/home/acme/bin/perf)
                                             __ordered_events__flush.part.0 (/home/acme/bin/perf)
                                             process_thread (/home/acme/bin/perf)
                                             start_thread (/usr/lib64/libpthread-2.29.so)
           0.064 :17345/17345 probe_perf:dso__process_kernel_symbol(__probe_ip: 5680224)
                                             dso__process_kernel_symbol (/home/acme/bin/perf)
                                             dso__load_vmlinux (/home/acme/bin/perf)
                                             dso__load_vmlinux_path (/home/acme/bin/perf)
                                             dso__load (/home/acme/bin/perf)
                                             map__load (/home/acme/bin/perf)
                                             thread__find_map (/home/acme/bin/perf)
                                             machine__resolve (/home/acme/bin/perf)
                                             deliver_event (/home/acme/bin/perf)
                                             __ordered_events__flush.part.0 (/home/acme/bin/perf)
                                             process_thread (/home/acme/bin/perf)
                                             start_thread (/usr/lib64/libpthread-2.29.so)
      #
      # perf stat -e probe_perf:dso__process_kernel_symbol
      ^C
       Performance counter stats for 'system wide':
    
               107,308      probe_perf:dso__process_kernel_symbol
    
           8.215399813 seconds time elapsed
      #
    
    Cc: Adrian Hunter <adrian.hunter@intel.com>
    Cc: Andi Kleen <ak@linux.intel.com>
    Cc: Jiri Olsa <jolsa@kernel.org>
    Cc: Namhyung Kim <namhyung@kernel.org>
    Link: https://lkml.kernel.org/n/tip-5fy66x5hr5ct9pmw84jkiwvm@git.kernel.orgSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
    f2baa060
symbol-elf.c 51.5 KB