- To: Ingo Molnar <mingo@xxxxxxx>, Peter Zijlstra <peterz@xxxxxxxxxxxxx>, Srikar Dronamraju <srikar@xxxxxxxxxxxxxxxxxx>
- Subject: [RFC 0/6] uprobes: kill uprobes_srcu/uprobe_srcu_id
- From: Oleg Nesterov <oleg@xxxxxxxxxx>
- Date: Fri, 6 Apr 2012 00:20:24 +0200
- Cc: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>, Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>, Ananth N Mavinakayanahalli <ananth@xxxxxxxxxx>, Jim Keniston <jkenisto@xxxxxxxxxxxxxxxxxx>, LKML <linux-kernel@xxxxxxxxxxxxxxx>, Linux-mm <linux-mm@xxxxxxxxx>, Andi Kleen <andi@xxxxxxxxxxxxxx>, Christoph Hellwig <hch@xxxxxxxxxxxxx>, Steven Rostedt <rostedt@xxxxxxxxxxx>, Arnaldo Carvalho de Melo <acme@xxxxxxxxxxxxx>, Masami Hiramatsu <masami.hiramatsu.pt@xxxxxxxxxxx>, Thomas Gleixner <tglx@xxxxxxxxxxxxx>, Anton Arapov <anton@xxxxxxxxxx>
- Delivered-to: linux-mm-outgoing@xxxxxxxxx
- Delivered-to: int-list-linux-mm@xxxxxxxxx
- Delivered-to: linux-mm@xxxxxxxxx
- User-agent: Mutt/1.5.18 (2008-05-17)
Hello.
Not for inclusion yet, only for the early review.
I didn't even try to test these changes, and I am not expert
in this area. And even _if_ this code is correct, I need to
re-split these changes anyway, update the changelogs, etc.
Questions:
- does it make sense?
- can it work or I missed something "in general" ?
Why:
- It would be nice to remove a member from task_struct.
- Afaics, the usage of uprobes_srcu does not look right,
at least in theory, see 6/6.
The comment above delete_uprobe() says:
The current unregistering thread waits till all
other threads have hit a breakpoint, to acquire
the uprobes_treelock before the uprobe is removed
from the rbtree.
but synchronize_srcu() can only help if a thread which
have hit the breakpoint has already called srcu_read_lock().
It can't synchronize with read_lock "in future", and there
is a small window.
We could probably add another synchronize_sched() before
synchronize_srcu(), but this doesn't look very nice and
- I am not sure yet, but perhaps with these changes we can
also kill mm->uprobes_state.count.
Any review is very much appreciated.
Oleg.
include/linux/sched.h | 1 -
kernel/events/uprobes.c | 117 ++++++++++++++++++++++++++++++-----------------
2 files changed, 75 insertions(+), 43 deletions(-)
--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@xxxxxxxxx. For more info on Linux MM,
see: http://www.linux-mm.org/ .
Fight unfair telecom internet charges in Canada: sign http://stopthemeter.ca/
Don't email: <a href=mailto:"dont@xxxxxxxxx"> email@xxxxxxxxx </a>
[Site Home]
[Linux ARM Kernel]
[Linux ARM]
[Linux Omap]
[Fedora ARM]
[IETF Annouce]
[Security]
[Bugtraq]
[Linux]
[Linux OMAP]
[Linux MIPS]
[ECOS]
[Tools]
[DDR & Rambus]
[Asterisk Internet PBX]
[Linux API]
[Monitors]