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: kernel API for in-kernel single stepping


I'd like to summarize where we stand on instruction tracing support in SystemTap.

The key blocking point on the original proposal was the lack of some kernel API to support single-step trapping, the basis of instruction tracing.

Roland suggested that utrace would be a reasonable kernel API to use for single-step tracing of user code, and that kernel instruction tracing be treated as a separate case. Paul felt that the MSR/single-step/notify_due infrastructure that kprobes uses should be an adequate API for itrace to use, and if not, maybe something could be done to make it so. Frank suggested that we defer that capability until we get the user code tracing sorted out.

Thanks to all of you for your input!

I will try and add a utrace based single-stepping mechanism to my SystemTap instruction trace prototype and see how the performance compares with the Performance Inspector ITRACE strategy (which uses __debugger_sstep() as a trap handler without any other layers of overhead).
Frank Ch. Eigler wrote:
Hi, Paul -


[...]
[...] With the various kernel debuggers, kprobes, itrace, and
maybe others trying to share these
[MSR/single-stepping/notify_die] resources do you think it is time
to develop some sort of kernel single stepping API? Frank is
requesting this API before changing SystemTap to support single
step traps.

Actually, I have asked only about user-space single-stepping, possibly based on the utrace API. Broad kernel-space single-stepping is risky enough not to attempt yet.

At present kprobes sets the MSR_SE bit in the MSR when it wants to
single-step, and uses the notify_die infrastructure as the way it
gets notified when the single-step trap occurs. [...] In other
words the API for single-stepping is just the notify_die stuff.
[...]

We can attempt this later.


- FChE


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