Skip to contentSkip to conversation

perf probe: Seaching the cache automatically

DISCUSSION Arnaldo Carvalho de Melo 2 participants 2 messages Jul 13, 2016 – Jul 14, 2016

lore
Share & tools
lore
#0 lore raw

Hi Masami,

While reviewing your latest patchkit I figured out I left some
sdt entries in my cache, cool! Tried to use but:

[root@jouet 22]# perf probe --cache --list /usr/lib64/libc-2.23.so (88686319c72f1a9d9cd514af519aa5602880bab2):
sdt_libc:setjmp=setjmp
sdt_libc:longjmp=longjmp
sdt_libc:longjmp_target=longjmp_target sdt_libc:memory_arena_reuse_free_list=memory_arena_reuse_free_list sdt_libc:memory_heap_new=memory_heap_new sdt_libc:memory_sbrk_less=memory_sbrk_less sdt_libc:memory_arena_reuse_wait=memory_arena_reuse_wait sdt_libc:memory_arena_reuse=memory_arena_reuse sdt_libc:memory_arena_new=memory_arena_new sdt_libc:memory_arena_retry=memory_arena_retry sdt_libc:memory_heap_free=memory_heap_free sdt_libc:memory_heap_less=memory_heap_less sdt_libc:memory_heap_more=memory_heap_more sdt_libc:memory_sbrk_more=memory_sbrk_more sdt_libc:memory_malloc_retry=memory_malloc_retry sdt_libc:memory_mallopt_free_dyn_thresholds=memory_mallopt_free_dyn_thresholds sdt_libc:memory_realloc_retry=memory_realloc_retry sdt_libc:memory_memalign_retry=memory_memalign_retry sdt_libc:memory_calloc_retry=memory_calloc_retry sdt_libc:memory_mallopt=memory_mallopt sdt_libc:memory_mallopt_mxfast=memory_mallopt_mxfast sdt_libc:memory_mallopt_arena_max=memory_mallopt_arena_max sdt_libc:memory_mallopt_arena_test=memory_mallopt_arena_test sdt_libc:memory_mallopt_mmap_max=memory_mallopt_mmap_max sdt_libc:memory_mallopt_mmap_threshold=memory_mallopt_mmap_threshold sdt_libc:memory_mallopt_top_pad=memory_mallopt_top_pad sdt_libc:memory_mallopt_trim_threshold=memory_mallopt_trim_threshold sdt_libc:memory_mallopt_perturb=memory_mallopt_perturb sdt_libc:memory_mallopt_check_action=memory_mallopt_check_action sdt_libc:lll_lock_wait_private=lll_lock_wait_private
[root@jouet 22]#

[root@jouet 22]# perf record --event sdt_libc:memory_heap_new -a event syntax error: 'sdt_libc:memory_heap_new'
\___ unknown tracepoint

Error: File /sys/kernel/debug/tracing/events/sdt_libc/memory_heap_new not found.
Hint: Perhaps this kernel misses some CONFIG_ setting to enable this feature?.

Run 'perf list' for a list of valid events

Usage: perf record [<options>] [<command>]
or: perf record [<options>] -- <command> [<options>]

-e, --event <event> event selector. use 'perf list' to list available events
[root@jouet 22]#

So probably I need to do something else, will dig that, scratching my head, as my expectation was that it would look at that cache and pick things from there, etc. Perhaps this is in a patch in this series, will check...

- Arnaldo

#1 lore raw
Quoted 51 lines · On Wed, 13 Jul 2016 16:11:37 -0300 Arnaldo Carvalho de Melo <[email protected]>…

Hi Masami,

While reviewing your latest patchkit I figured out I left some
sdt entries in my cache, cool! Tried to use but:

[root@jouet 22]# perf probe --cache --list /usr/lib64/libc-2.23.so (88686319c72f1a9d9cd514af519aa5602880bab2):
sdt_libc:setjmp=setjmp
sdt_libc:longjmp=longjmp
sdt_libc:longjmp_target=longjmp_target sdt_libc:memory_arena_reuse_free_list=memory_arena_reuse_free_list sdt_libc:memory_heap_new=memory_heap_new sdt_libc:memory_sbrk_less=memory_sbrk_less sdt_libc:memory_arena_reuse_wait=memory_arena_reuse_wait sdt_libc:memory_arena_reuse=memory_arena_reuse sdt_libc:memory_arena_new=memory_arena_new sdt_libc:memory_arena_retry=memory_arena_retry sdt_libc:memory_heap_free=memory_heap_free sdt_libc:memory_heap_less=memory_heap_less sdt_libc:memory_heap_more=memory_heap_more sdt_libc:memory_sbrk_more=memory_sbrk_more sdt_libc:memory_malloc_retry=memory_malloc_retry sdt_libc:memory_mallopt_free_dyn_thresholds=memory_mallopt_free_dyn_thresholds sdt_libc:memory_realloc_retry=memory_realloc_retry sdt_libc:memory_memalign_retry=memory_memalign_retry sdt_libc:memory_calloc_retry=memory_calloc_retry sdt_libc:memory_mallopt=memory_mallopt sdt_libc:memory_mallopt_mxfast=memory_mallopt_mxfast sdt_libc:memory_mallopt_arena_max=memory_mallopt_arena_max sdt_libc:memory_mallopt_arena_test=memory_mallopt_arena_test sdt_libc:memory_mallopt_mmap_max=memory_mallopt_mmap_max sdt_libc:memory_mallopt_mmap_threshold=memory_mallopt_mmap_threshold sdt_libc:memory_mallopt_top_pad=memory_mallopt_top_pad sdt_libc:memory_mallopt_trim_threshold=memory_mallopt_trim_threshold sdt_libc:memory_mallopt_perturb=memory_mallopt_perturb sdt_libc:memory_mallopt_check_action=memory_mallopt_check_action sdt_libc:lll_lock_wait_private=lll_lock_wait_private
[root@jouet 22]#

[root@jouet 22]# perf record --event sdt_libc:memory_heap_new -a event syntax error: 'sdt_libc:memory_heap_new'
\___ unknown tracepoint

Error: File /sys/kernel/debug/tracing/events/sdt_libc/memory_heap_new not found.
Hint: Perhaps this kernel misses some CONFIG_ setting to enable this feature?.

Run 'perf list' for a list of valid events

Usage: perf record [<options>] [<command>]
or: perf record [<options>] -- <command> [<options>]

Quoted 6 lines

-e, --event <event> event selector. use 'perf list' to list available events
[root@jouet 22]#

So probably I need to do something else, will dig that, scratching my head, as my expectation was that it would look at that cache and pick things from there, etc. Perhaps this is in a patch in this series, will check...

Ah, yes, that is currently under development. What happened in the series is I dropped direct SDT record, because I felt it was not prepared to be merged. This is why perf list still doesn't show the SDT events. (only perf-probe shows it)

So, currently, you have to use perf-probe to set up SDT events as same as other dynamic events. So, before run the perf record, please run below command.

# perf probe sdt_libc:memory_heap_new

Then you can record the event.

Thanks,

Signature · 1 line
Masami Hiramatsu <[email protected]>