Re: [PATCHv11 2.6.36-rc2-tip 5/15] 5: uprobes: Uprobes (un)registration and exception handling.

Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]
From: Peter Zijlstra
Date: Tuesday, September 7, 2010 - 5:25 am

On Tue, 2010-09-07 at 17:21 +0530, Srikar Dronamraju wrote:

I didn't consider the user-space interface at all, consuming the uprobe
name for that seems silly.


Use a seqcount, its a read-mostly data structure, its just that the
RB-tree isn't RCU friendly.



RCU, see the above atomic_inc_not_zero() it will not obtain a reference
after the final put, the object will stay valid until we pass an rcu
quesent state.


-ENOPARSE.


It doesn't, nor do I see the relevance.


Feh, probe register should be considered an utter slow path.

We do rmap walks on pages all the time, I can't see it being a problem
here.




Yeah, it does a range lookup in the tree [inode:0 - inode:-1). O(log(n))
to find the first entry, O(log(n)) for each consecutive entry, unless we
thread the tree.

Note that read-mostly global data is no problem.


Only mmap() of that particular inode, the range lookup would be the
regular O(log(n)) for an empty range.

But again, mmap() is a relative slow path, and you need something like
this anyway if you want to support inode based probes at all.


I assumed process context here, but its trivial to make it work from
interrupt context if you want, all we need is a spinlock/seqlock around
the vm_rb mods in __vma_link_rb() and __vma_unlink().


O(log(n)) lookup, hardly a problem.


Sure..


You'd need to keep a copy of the slot in task state I think.


You can do it with single-step if you want, just keep more task state.


Its mostly read-only data (adding/removing probes is rare), its all
O(log(n)), I really don't see a problem with that.

If you really worry about it you could try a hash lookup for the inode
part and keep a tree per probed inode.

--
Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]

Messages in current thread:
[PATCHv11 2.6.36-rc2-tip 0/15] 0: Uprobes Patches, Srikar Dronamraju, (Wed Aug 25, 6:41 am)
[PATCHv11 2.6.36-rc2-tip 1/15] 1: mm: Move replace_page() ..., Srikar Dronamraju, (Wed Aug 25, 6:41 am)
[PATCHv11 2.6.36-rc2-tip 2/15] 2: uprobes: Breakpoint ins ..., Srikar Dronamraju, (Wed Aug 25, 6:41 am)
[PATCHv11 2.6.36-rc2-tip 3/15] 3: uprobes: Slot allocatio ..., Srikar Dronamraju, (Wed Aug 25, 6:41 am)
[PATCHv11 2.6.36-rc2-tip 4/15] 4: uprobes: x86 specific f ..., Srikar Dronamraju, (Wed Aug 25, 6:42 am)
[PATCHv11 2.6.36-rc2-tip 5/15] 5: uprobes: Uprobes (un)re ..., Srikar Dronamraju, (Wed Aug 25, 6:42 am)
[PATCHv11 2.6.36-rc2-tip 6/15] 6: uprobes: X86 support fo ..., Srikar Dronamraju, (Wed Aug 25, 6:42 am)
[PATCHv11 2.6.36-rc2-tip 7/15] 7: uprobes: Uprobes Docume ..., Srikar Dronamraju, (Wed Aug 25, 6:42 am)
[PATCHv11 2.6.36-rc2-tip 8/15] 8: tracing: Extract out co ..., Srikar Dronamraju, (Wed Aug 25, 6:42 am)
[PATCHv11 2.6.36-rc2-tip 9/15] 9: tracing: uprobes trace_ ..., Srikar Dronamraju, (Wed Aug 25, 6:43 am)
[PATCHv11 2.6.36-rc2-tip 10/15] 10: tracing: config option ..., Srikar Dronamraju, (Wed Aug 25, 6:43 am)
[PATCHv11 2.6.36-rc2-tip 11/15] 11: perf: list symbols in ..., Srikar Dronamraju, (Wed Aug 25, 6:43 am)
[PATCHv11 2.6.36-rc2-tip 12/15] 12: perf: show possible pr ..., Srikar Dronamraju, (Wed Aug 25, 6:43 am)
[PATCHv11 2.6.36-rc2-tip 13/15] 13: perf: Loop thro each o ..., Srikar Dronamraju, (Wed Aug 25, 6:43 am)
[PATCHv11 2.6.36-rc2-tip 14/15] 14: perf: perf interface f ..., Srikar Dronamraju, (Wed Aug 25, 6:44 am)
[PATCHv11 2.6.36-rc2-tip 15/15] 15: perf: Show Potential p ..., Srikar Dronamraju, (Wed Aug 25, 6:44 am)
Re: [PATCHv11 2.6.36-rc2-tip 11/15] 11: perf: list symbols ..., Arnaldo Carvalho de Melo, (Wed Aug 25, 4:21 pm)
Re: [PATCHv11 2.6.36-rc2-tip 11/15] 11: perf: list symbols ..., Srikar Dronamraju, (Wed Aug 25, 9:32 pm)
Re: [PATCHv11 2.6.36-rc2-tip 10/15] 10: tracing: config op ..., Masami Hiramatsu, (Wed Aug 25, 11:02 pm)
Re: [PATCHv11 2.6.36-rc2-tip 10/15] 10: tracing: config op ..., Srikar Dronamraju, (Fri Aug 27, 2:31 am)
Re: [PATCHv11 2.6.36-rc2-tip 10/15] 10: tracing: config op ..., Srikar Dronamraju, (Fri Aug 27, 5:17 am)
[PATCHv11a 2.6.36-rc2-tip 10/15] 10: tracing: config optio ..., Srikar Dronamraju, (Fri Aug 27, 7:10 am)
[PATCHv11a 2.6.36-rc2-tip 12/15] 12: perf: show possible p ..., Srikar Dronamraju, (Fri Aug 27, 7:21 am)
[tip:perf/core] perf symbols: List symbols in a dso in asc ..., tip-bot for Srikar D ..., (Mon Aug 30, 1:35 am)
Re: [PATCHv11 2.6.36-rc2-tip 3/15] 3: uprobes: Slot alloc ..., Srikar Dronamraju, (Thu Sep 2, 10:47 am)
Re: [PATCHv11 2.6.36-rc2-tip 3/15] 3: uprobes: Slot alloc ..., Srikar Dronamraju, (Fri Sep 3, 9:40 am)
Re: [PATCHv11 2.6.36-rc2-tip 5/15] 5: uprobes: Uprobes (u ..., Srikar Dronamraju, (Fri Sep 3, 9:42 am)
Re: [PATCHv11 2.6.36-rc2-tip 3/15] 3: uprobes: Slot alloc ..., Srikar Dronamraju, (Fri Sep 3, 10:26 am)
Re: [PATCHv11 2.6.36-rc2-tip 4/15] 4: uprobes: x86 specif ..., Srikar Dronamraju, (Fri Sep 3, 10:48 am)
Re: [PATCHv11 2.6.36-rc2-tip 3/15] 3: uprobes: Slot alloc ..., Srikar Dronamraju, (Sun Sep 5, 10:38 pm)
Re: [PATCHv11 2.6.36-rc2-tip 4/15] 4: uprobes: x86 specif ..., Srikar Dronamraju, (Mon Sep 6, 6:44 am)
Re: [PATCHv11 2.6.36-rc2-tip 5/15] 5: uprobes: Uprobes (u ..., Srikar Dronamraju, (Mon Sep 6, 10:46 am)
Re: [PATCHv11 2.6.36-rc2-tip 3/15] 3: uprobes: Slot alloc ..., Srikar Dronamraju, (Mon Sep 6, 10:59 am)
Re: [PATCHv11 2.6.36-rc2-tip 5/15] 5: uprobes: Uprobes (u ..., Mathieu Desnoyers, (Mon Sep 6, 11:25 am)
Re: [PATCHv11 2.6.36-rc2-tip 5/15] 5: uprobes: Uprobes (u ..., Christoph Hellwig, (Mon Sep 6, 1:40 pm)
Re: [PATCHv11 2.6.36-rc2-tip 5/15] 5: uprobes: Uprobes (u ..., Christoph Hellwig, (Mon Sep 6, 2:12 pm)
Re: [PATCHv11 2.6.36-rc2-tip 5/15] 5: uprobes: Uprobes (u ..., Srikar Dronamraju, (Mon Sep 6, 11:48 pm)
Re: [PATCHv11 2.6.36-rc2-tip 5/15] 5: uprobes: Uprobes (u ..., Srikar Dronamraju, (Tue Sep 7, 4:51 am)
Re: [PATCHv11 2.6.36-rc2-tip 5/15] 5: uprobes: Uprobes (u ..., Srikar Dronamraju, (Tue Sep 7, 5:02 am)
Re: [PATCHv11 2.6.36-rc2-tip 5/15] 5: uprobes: Uprobes (u ..., Peter Zijlstra, (Tue Sep 7, 5:25 am)
Re: [PATCHv11 2.6.36-rc2-tip 5/15] 5: uprobes: Uprobes (u ..., Mathieu Desnoyers, (Tue Sep 7, 9:47 am)
Re: [PATCHv11 2.6.36-rc2-tip 0/15] 0: Uprobes Patches, Christoph Hellwig, (Fri Oct 29, 2:23 am)
Re: [PATCHv11 2.6.36-rc2-tip 0/15] 0: Uprobes Patches, Srikar Dronamraju, (Fri Oct 29, 3:48 am)
Re: [PATCHv11 2.6.36-rc2-tip 0/15] 0: Uprobes Patches, Christoph Hellwig, (Thu Nov 4, 11:45 am)