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]

Re: Some newbie questions




On 08/09/2016 06:17 PM, David Smith wrote:
On 08/09/2016 01:51 AM, Avi Kivity wrote:

On 08/08/2016 05:58 PM, David Smith wrote:
2. Inlined functions

  From the manual pages, it seems that inlined functions can be probed
(minus the .return probe), but I just get an error:

semantic error: while resolving probe point: identifier 'process' at
script/home/avi/seastar/debug/task-latency.stap:3:7
          source: probe
process("scylla").function("reactor::run_tasks()") {
                        ^

semantic error: no match (similar functions:
_ZN7reactor14run_exit_tasksEv, statfs, dup, mkdir, ntohs)
We're at the mercy of the compiler and the quality of the debuginfo it
produces here when looking for inlined functions.

If you want to investigate further here, you'll need to do the following:

# eu-readelf -N --debug-dump=info scylla > scylla.log

In scylla.log, look and see if you can find a subprogram with the name
of the function you are interested in.
  [1417f4]      subprogram
                external             (flag_present) Yes
                name                 (strp) "run_tasks"
                decl_file            (data1) 5
                decl_line            (data2) 812
                linkage_name         (strp)
"_ZN7reactor9run_tasksER15circular_bufferISt10unique_ptrI4taskSt14default_deleteIS2_EESaIS5_EE"

                declaration          (flag_present) Yes
                object_pointer       (ref4) [141808]
                sibling              (ref4) [141813]
  [141808]        formal_parameter
                  type                 (ref4) [1423bd]
                  artificial           (flag_present) Yes
  [14180d]        formal_parameter
                  type                 (ref4) [14a8a8]
According to the above, that function isn't inlined. You might just try
the following to see what functions stap can see:

# stap -l 'process("scylla").function("*")' | grep run_tasks

process("/usr/bin/scylla").function("run_tasks@core/reactor.cc:1362")

Strangely not qualified by "reactor::".

I also switched to timer.profile.  What's its resolution on normal
machines?
timer.profile probe resolution is CONFIG_HZ. Check your kernel config
and see "man stapprobes" for more details.


Thanks.


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