public inbox for systemtap@sourceware.org
 help / color / mirror / Atom feed
* [Bug translator/17190] New: 'stap -l' output not useful as stap input
@ 2014-07-21 18:36 dsmith at redhat dot com
  2014-07-21 19:16 ` [Bug translator/17190] " jlebon at redhat dot com
  2014-09-12 18:56 ` jlebon at redhat dot com
  0 siblings, 2 replies; 3+ messages in thread
From: dsmith at redhat dot com @ 2014-07-21 18:36 UTC (permalink / raw)
  To: systemtap

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.

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2014-09-12 18:56 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2014-07-21 18:36 [Bug translator/17190] New: 'stap -l' output not useful as stap input dsmith at redhat dot com
2014-07-21 19:16 ` [Bug translator/17190] " jlebon at redhat dot com
2014-09-12 18:56 ` jlebon at redhat dot com

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).