diff options
author | Oleg Nesterov <oleg@redhat.com> | 2012-05-29 15:30:08 -0400 |
---|---|---|
committer | Ingo Molnar <mingo@kernel.org> | 2012-06-06 11:22:22 -0400 |
commit | 778b032d96909690c19d84f8d17c13be65ed6f8e (patch) | |
tree | 2f788c3843ca416969aeceda155c79994467bded /include/linux/sched.h | |
parent | 56bb4cf6475d702d2fb00fc641aa6441097c0330 (diff) |
uprobes: Kill uprobes_srcu/uprobe_srcu_id
Kill the no longer needed uprobes_srcu/uprobe_srcu_id code.
It doesn't really work anyway. synchronize_srcu() can only
synchronize with the code "inside" the
srcu_read_lock/srcu_read_unlock section, while
uprobe_pre_sstep_notifier() does srcu_read_lock() _after_ we
already hit the breakpoint.
I guess this probably works "in practice". synchronize_srcu() is
slow and it implies synchronize_sched(), and the probed task
enters the non- preemptible section at the start of exception
handler. Still this is not right at least in theory, and
task->uprobe_srcu_id blows task_struct.
Signed-off-by: Oleg Nesterov <oleg@redhat.com>
Acked-by: Srikar Dronamraju <srikar@linux.vnet.ibm.com>
Cc: Ananth N Mavinakayanahalli <ananth@in.ibm.com>
Cc: Anton Arapov <anton@redhat.com>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Masami Hiramatsu <masami.hiramatsu.pt@hitachi.com>
Cc: Peter Zijlstra <peterz@infradead.org>
Link: http://lkml.kernel.org/r/20120529193008.GG8057@redhat.com
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Diffstat (limited to 'include/linux/sched.h')
-rw-r--r-- | include/linux/sched.h | 1 |
1 files changed, 0 insertions, 1 deletions
diff --git a/include/linux/sched.h b/include/linux/sched.h index 6029d8c54476..6bd19655c1a7 100644 --- a/include/linux/sched.h +++ b/include/linux/sched.h | |||
@@ -1569,7 +1569,6 @@ struct task_struct { | |||
1569 | #endif | 1569 | #endif |
1570 | #ifdef CONFIG_UPROBES | 1570 | #ifdef CONFIG_UPROBES |
1571 | struct uprobe_task *utask; | 1571 | struct uprobe_task *utask; |
1572 | int uprobe_srcu_id; | ||
1573 | #endif | 1572 | #endif |
1574 | }; | 1573 | }; |
1575 | 1574 | ||