This is the mail archive of the systemtap@sources.redhat.com 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: corrected: tapset/script information template


Hi -

wcohen wrote:

> I have attempted to write up a description for dynamic callgraph 
> instrumentation based on the template.

Excellent, thank you.  I committed a copy to CVS (under src/tapsets)

> [...]
>   $dynamic_call_graph = 1; // turn on tracing of calls for thread
>   $dynamic_call_graph = 0; // turn off tracing of calls for thread

Do you imagine that just setting those variables in some other probe
handler should activate this kind of tracing?  It could be partially
implemented using a script-level construct like this (also committed):

global $dynamic_call_graph
probe kernel.perfctr.call(1) { 
   if ($dynamic_call_graph) trace_sym ($pc);
}
probe kernel.perfctr.return(1) { 
   if ($dynamic_call_graph) trace_sym ($pc);
}

Boy, that looks *expensive*.


This reminds me of an oprofile-related issue we've probably discussed
before: whether these events should be signalled with the NMI versus
an ordinary interrupt.  We'd have to prevent reentrancy (nested probe
handler execution) somehow.  With an NMI, it'd have to be explicit
code that tracks the current processor's handler-active state,
dropping the event with an early-return.  With a maskable interrupt,
it could defer the hit until interrupts get unmasked, at which point
the collectable data may not be accurate.


- FChE

Attachment: pgp00000.pgp
Description: PGP signature


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