This is the mail archive of the systemtap@sourceware.org mailing list for the systemtap project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug translator/17190] New: 'stap -l' output not useful as stap input


https://sourceware.org/bugzilla/show_bug.cgi?id=17190

            Bug ID: 17190
           Summary: 'stap -l' output not useful as stap input
           Product: systemtap
           Version: unspecified
            Status: NEW
          Severity: normal
          Priority: P2
         Component: translator
          Assignee: systemtap at sourceware dot org
          Reporter: dsmith at redhat dot com

While working on bug #17140, I came across this. 

First use 'stap -l' to get a listing of function probe points:

====
# stap -l 'kernel.function("z*@mm/*.c").call'
kernel.function("zap_huge_pmd@mm/huge_memory.c:1412").call
kernel.function("zap_page_range@mm/memory.c:1401").call
kernel.function("zap_page_range_single@mm/memory.c:1427").call
kernel.function("zap_vma_ptes@mm/memory.c:1455").call
kernel.function("zone_absent_pages_in_node@mm/page_alloc.c:4506").call
kernel.function("zone_balanced@mm/vmscan.c:2675").call
kernel.function("zone_batchsize@mm/page_alloc.c:4061").call
kernel.function("zone_dirty_ok@mm/page-writeback.c:344").call
kernel.function("zone_pcp_reset@mm/page_alloc.c:6178").call
kernel.function("zone_pcp_update@mm/page_alloc.c:6172").call
kernel.function("zone_reclaimable_pages@mm/vmscan.c:150").call
kernel.function("zone_spanned_pages_in_node@mm/page_alloc.c:4445").call
kernel.function("zone_wait_table_init@mm/page_alloc.c:4174").call
kernel.function("zone_watermark_ok@mm/page_alloc.c:1662").call
kernel.function("zone_watermark_ok_safe@mm/page_alloc.c:1669").call
kernel.function("zoneinfo_open@mm/vmstat.c:1087").call
kernel.function("zoneinfo_show@mm/vmstat.c:1072").call
kernel.function("zoneinfo_show_print@mm/vmstat.c:1006").call
====

Now, try to use the first one in a probe:

====
# stap -vp4 -e 'probe
kernel.function("zap_huge_pmd@mm/huge_memory.c:1412").call { printf("here\n")
}'
Pass 1: parsed user script and 105 library script(s) using
143884virt/28892res/3120shr/26140data kb, in 150usr/20sys/550real ms.
WARNING: For probing a particular line, use a .statement() probe, not
.function(): keyword at <input>:1:1
 source: probe kernel.function("zap_huge_pmd@mm/huge_memory.c:1412").call {
printf("here\n") }
         ^
semantic error: no line records for mm/huge_memory.c:1412 [man error::dwarf]
(try :1414)

semantic error: while resolving probe point: identifier 'kernel' at :1:7
        source: probe
kernel.function("zap_huge_pmd@mm/huge_memory.c:1412").call { printf("here\n") }
                      ^

semantic error: no match (similar functions: zap_huge_pmd, mk_huge_pmd,
copy_huge_pmd, move_huge_pmd, change_huge_pmd)

Pass 2: analyzed script: 0 probe(s), 0 function(s), 0 embed(s), 0 global(s)
using 159484virt/45176res/3928shr/41740data kb, in 160usr/50sys/1478real ms.
Pass 2: analysis failed.  [man error::pass2]
====

So, according to stap, zap_huge_pmd() doesn't exist at 1412. It might exist at
1414. Let's give that a shot:

====
stap -vp4 -e 'probe kernel.function("zap_huge_pmd@mm/huge_memory.c:1414").call
{ printf("here\n") }'
Pass 1: parsed user script and 105 library script(s) using
143884virt/28892res/3120shr/26140data kb, in 140usr/10sys/158real ms.
WARNING: For probing a particular line, use a .statement() probe, not
.function(): keyword at <input>:1:1
 source: probe kernel.function("zap_huge_pmd@mm/huge_memory.c:1414").call {
printf("here\n") }
         ^
Pass 2: analyzed script: 1 probe(s), 0 function(s), 0 embed(s), 0 global(s)
using 159884virt/45488res/3900shr/42140data kb, in 220usr/60sys/290real ms.
Pass 3: translated to C into
"/tmp/stap1FJc9E/stap_13688915453ad5ced72ffb549af941f4_1049_src.c" using
159884virt/45816res/4224shr/42140data kb, in 0usr/40sys/47real ms.
/root/.systemtap/cache/13/stap_13688915453ad5ced72ffb549af941f4_1049.ko
Pass 4: compiled C into "stap_13688915453ad5ced72ffb549af941f4_1049.ko" in
1110usr/170sys/1278real ms.
====

So, why didn't 'stap -l' tell me the function was at 1414 in the first place?

-- 
You are receiving this mail because:
You are the assignee for the bug.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]