diff options
author | Markus Metzger <markus.t.metzger@intel.com> | 2009-04-03 10:43:35 -0400 |
---|---|---|
committer | Ingo Molnar <mingo@elte.hu> | 2009-04-07 07:36:13 -0400 |
commit | e2b371f00a6f529f6362654239bdec8dcd510760 (patch) | |
tree | 36e47cd9fb949fd72893c2d5ddab489fa55b1869 /include/linux/sched.h | |
parent | a26b89f05d194413c7238e0bea071054f6b5d3c8 (diff) |
mm, x86, ptrace, bts: defer branch trace stopping
When a ptraced task is unlinked, we need to stop branch tracing for
that task.
Since the unlink is called with interrupts disabled, and we need
interrupts enabled to stop branch tracing, we defer the work.
Collect all branch tracing related stuff in a branch tracing context.
Reviewed-by: Oleg Nesterov <oleg@redhat.com>
Signed-off-by: Markus Metzger <markus.t.metzger@intel.com>
Cc: Andrew Morton <akpm@linux-foundation.org>
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
Cc: roland@redhat.com
Cc: eranian@googlemail.com
Cc: juan.villacis@intel.com
Cc: ak@linux.jf.intel.com
LKML-Reference: <20090403144550.712401000@intel.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Diffstat (limited to 'include/linux/sched.h')
-rw-r--r-- | include/linux/sched.h | 9 |
1 files changed, 2 insertions, 7 deletions
diff --git a/include/linux/sched.h b/include/linux/sched.h index a5b9a83065fa..52b8cd049c2e 100644 --- a/include/linux/sched.h +++ b/include/linux/sched.h | |||
@@ -96,8 +96,8 @@ struct exec_domain; | |||
96 | struct futex_pi_state; | 96 | struct futex_pi_state; |
97 | struct robust_list_head; | 97 | struct robust_list_head; |
98 | struct bio; | 98 | struct bio; |
99 | struct bts_tracer; | ||
100 | struct fs_struct; | 99 | struct fs_struct; |
100 | struct bts_context; | ||
101 | 101 | ||
102 | /* | 102 | /* |
103 | * List of flags we want to share for kernel threads, | 103 | * List of flags we want to share for kernel threads, |
@@ -1210,12 +1210,7 @@ struct task_struct { | |||
1210 | * This is the tracer handle for the ptrace BTS extension. | 1210 | * This is the tracer handle for the ptrace BTS extension. |
1211 | * This field actually belongs to the ptracer task. | 1211 | * This field actually belongs to the ptracer task. |
1212 | */ | 1212 | */ |
1213 | struct bts_tracer *bts; | 1213 | struct bts_context *bts; |
1214 | /* | ||
1215 | * The buffer to hold the BTS data. | ||
1216 | */ | ||
1217 | void *bts_buffer; | ||
1218 | size_t bts_size; | ||
1219 | #endif /* CONFIG_X86_PTRACE_BTS */ | 1214 | #endif /* CONFIG_X86_PTRACE_BTS */ |
1220 | 1215 | ||
1221 | /* PID/PID hash table linkage. */ | 1216 | /* PID/PID hash table linkage. */ |