Some newbie questions

Avi Kivity avi@scylladb.com
Tue Aug 9 15:28:00 GMT 2016



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.



More information about the Systemtap mailing list