Monitoring Modules

Daniel Migault mglt.biz@gmail.com
Wed Jun 1 07:04:00 GMT 2011


Hi Frank,

Thank you for your answer. We ran it on fedora with version 1.4 with the 
addr() function specified in  our script and comment it version 1.6.

Actually we could get the names of the function only by running it on 
fedora, with Ubuntu 11.04, we could only get the address. I suppose 
standard kernel miss some debug info option to get bindings between 
names and addresses?

I will post my different comments and questions in different threads on 
the mailing list.

Thanks again,
Daniel


On 05/19/11 19:54, Frank Ch. Eigler wrote:
> Hi, Daniel -
>
>> To measure how IPsec influences the performances of our system, we
>> would like to record the module of the current task. We use the
>> probemod() function but it only returns "<unknown>  ".
>> Do you know how could we get the module's name performing the task?
>> [probe timer.profile  ... ]
>> if (!user_mode()) {
>>       module=probemod()
>>       kticks[e,tid]<<<  1
> probemod(), like probefunc(), work by parsing probe point strings,
> which is not that helpful - as you've discovered.  Sorry about that.
>
> The symdata() function gives you module names for an arbitrary PC
> address, but also gives you extra stuff (symbol + offset) that you'd
> have to parse away with tokenize() or somesuch.
>
> To get the PC address at the timer.profile interrupt site, stap 1.5
> will have this tapset function added; you can transcribe it into your
> script for the moment:
>
> function addr:long ()
> %{ /* pure */
>    THIS->__retvalue = (intptr_t)(CONTEXT->regs ? REG_IP(CONTEXT->regs) : 0);
> %}
>
>
> - FChE



More information about the Systemtap mailing list