Hi -

On Fri, Jan 15, 2010 at 02:47:56PM +0100, Peter Zijlstra wrote:
> [...]
> > I'm not sure, but it sounds like the part you're complaining about is
> > how utrace ultimately reports the trap to uprobes: i.e.,
> > utrace_get_signal()?  Is that the "insane amount of code"?
> 
> Well when tracing/profiling every instruction is too much. Having to
> needlessly raise a signal only to catch it again a short bit later
> sounds like obvious waste to me.

Well, I'm not in a position to argue line by line about the necessity
or the cost of utrace low level guts, but this may represent the most
practical engineering balance between functionality / modularity /
undesirably intrusive modifications.  Perhaps there exists a tool with
which one can confirm your worry about excess cost of this particular
piece.


> > > Furthermore it requires stopping and resuming tasks and nonsense like
> > > that, that's unwanted in many cases, just run stuff from the trap site
> > > and you're done.
> > 
> > I don't know what you mean exactly.  A trap already stopped task.
> > utrace merely allows various clients to inspect/manipulate the state
> > of the task at that moment.  It does not add any context switches or
> > spurious stop/resumue operations.
> 
> Srikar seemed to suggest it needed stop/resume.

You may be confusing breakpoint insertion/removal operations versus
breakpoint hits.


- FChE

Reply via email to