corrected: tapset/script information template

William Cohen wcohen@redhat.com
Tue May 3 13:25:00 GMT 2005


Frank Ch. Eigler wrote:
> Hi -
> 
> wcohen wrote:
> 
> 
>>[...]  I was thinking there are very specific places that one would
>>want to start tracing and that it would be controlled by some
>>probes, for example turning on the dynamic call graph when entering
>>a "function of interest" and turning it off when exiting the same
>>function.
> 
> 
> By "turning it on/off" do you mean causing kernel- or hardware-level
> configuration changes to occur during the execution of probe handlers?
> That is, do you imagine the assignment of such variable to expand to
> kernel API calls that turn on and off debug/counter hardware?

Hardware-level configuration changes. Much of the debug hardware state 
(debug registers 0-4, 5, and 6) is stored in the context information. 
However, the particular register that controls the tracking of changes 
of control flow is not stored in the process context.

>>I was thinking that instrumentation would be assisted by the debug
>>hardware rather than the performance monitoring hardware. [...]  The
>>debug also looks a bit easier to use: fewer bits to twiddle and
>>easier to find the from/to address. [...]
> 
> 
> Is there a standard kernel API for management/abstraction of x86 debug
> hardware?  Can you outline the additional logic required to extract
> this raw data and turn it into actual call/return trace events?

gdb uses the ptrace mechanism to access the currently supported 
debugging hardware. The currently supported debug information is tracked 
on a per process basis. Changes that would be required for tracking call 
returns in gdb would be:

-save/restore the additional debug registers
-put defines in /usr/include/asm/debugreg.h for registers
-allow ptrace to access the additional debug registers
-trap handler for debug hardware to identify instruction:
	-call
	-return
	-branch
-something to log the trap occuring:
	-filtering to mask out branches (or calls or returns)
	record pid
	type of instruction, call, return, or branch
	from address
	to address

Roland has mentioned revising the ptrace interface. I am not sure how 
this would fit into that.


-Will



More information about the Systemtap mailing list