Uprobes returns - again
At this point, Uprobes has been entirely separated from the utrace layer, which is not a part of this patch series. Utrace is controversial in its own right and has not proved helpful in getting Uprobes merged. Other changes which have been made include the addition of interfaces to the the tracing and perf events subsystem. That means that dynamic probes can be inserted from the command line, then watched using the Ftrace interface or aggregated with perf.
On the other hand, Uprobes retains the "execute out of line" mechanism for the execution of instructions displaced by probes. XOL works, but it does so at the cost of injecting a new virtual memory area into the probed process; that is a larger disturbance than some developers would like to see. But the alternative - adding an emulator for those instructions to the kernel - is invasive in different ways.
Review comments so far have focused on relatively small details. That does
not mean that Uprobes will be accepted when the merge window opens, but its
chances do seem better than they have in the past.
Index entries for this article | |
---|---|
Kernel | Tracing |
Kernel | Uprobes |
(Log in to post comments)
Uprobes returns - again
Posted May 20, 2010 20:03 UTC (Thu) by oak (guest, #2786) [Link]
"2. Much better handling of multithreaded programs because of XOL.
Current ptrace based mechanisms use single stepping inline, i.e they
copy back the original instruction on hitting a breakpoint."
Is not true. Maemo functracer (user-space) tool uses XOL with ptrace:
http://stage.maemo.org/pool/fremantle/free/f/functracer/
I think even the first versions from 2008 did that:
http://stage.maemo.org/pool/diablo/free/f/functracer/