[RFC] [PATCH 4/7] Uprobes Implementation

Peter Zijlstra peterz at infradead.org
Fri Jan 15 11:12:35 UTC 2010


On Fri, 2010-01-15 at 16:35 +0530, Maneesh Soni wrote:
> On Fri, Jan 15, 2010 at 11:33:27AM +0100, Peter Zijlstra wrote:
> > On Fri, 2010-01-15 at 15:56 +0530, Srikar Dronamraju wrote:
> > > Hi Peter, 
> > > 
> > > Or there could be two threads that could be racing to
> > > insert/delete a breakpoint. These synchronization issues are all handled
> > > by the Uprobes layer.
> > 
> > Shouldn't be hard to put that in the ubp layer, right?
> > 
> > > Uprobes layer would need to be notified of process life-time events
> > > like fork/clone/exec/exit. 
> > 
> > No so much the process lifetimes as the vma life times are interesting,
> > placing a hook in the vm code to track that isn't too hard, 
> > 
> 
> I think similar hooks were given thumbs down in the previous incarnation
> of uprobes (which was implemented without utrace).  
> 
> http://lkml.indiana.edu/hypermail/linux/kernel/0603.2/1254.html

I wasn't at all proposing to mess with a_ops, nor do you really need to,
I was more thinking of adding a callback like perf_event_mmap() and a
corresponding unmap(), that way you can track mapping life-times and
add/remove probes accordingly.

Adding the probe uses the fact that (most) executable mappings are
MAP_PRIVATE and CoWs a private copy of the page with the modified ins,
right?

What does it do for MAP_SHARED|MAP_EXECUTABLE sections -- simply fail to
add the probe?




More information about the utrace-devel mailing list