aboutsummaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorMarkus Metzger <markus.t.metzger@intel.com>2009-04-03 10:43:35 -0400
committerIngo Molnar <mingo@elte.hu>2009-04-07 07:36:13 -0400
commite2b371f00a6f529f6362654239bdec8dcd510760 (patch)
tree36e47cd9fb949fd72893c2d5ddab489fa55b1869 /include
parenta26b89f05d194413c7238e0bea071054f6b5d3c8 (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')
-rw-r--r--include/linux/mm.h3
-rw-r--r--include/linux/sched.h9
2 files changed, 4 insertions, 8 deletions
diff --git a/include/linux/mm.h b/include/linux/mm.h
index bff1f0d475c7..64d8ed2538ae 100644
--- a/include/linux/mm.h
+++ b/include/linux/mm.h
@@ -13,6 +13,7 @@
13#include <linux/prio_tree.h> 13#include <linux/prio_tree.h>
14#include <linux/debug_locks.h> 14#include <linux/debug_locks.h>
15#include <linux/mm_types.h> 15#include <linux/mm_types.h>
16#include <linux/sched.h>
16 17
17struct mempolicy; 18struct mempolicy;
18struct anon_vma; 19struct anon_vma;
@@ -1321,6 +1322,6 @@ void vmemmap_populate_print_last(void);
1321 1322
1322extern void *alloc_locked_buffer(size_t size); 1323extern void *alloc_locked_buffer(size_t size);
1323extern void free_locked_buffer(void *buffer, size_t size); 1324extern void free_locked_buffer(void *buffer, size_t size);
1324extern void release_locked_buffer(void *buffer, size_t size); 1325extern void refund_locked_buffer_memory(struct mm_struct *mm, size_t size);
1325#endif /* __KERNEL__ */ 1326#endif /* __KERNEL__ */
1326#endif /* _LINUX_MM_H */ 1327#endif /* _LINUX_MM_H */
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;
96struct futex_pi_state; 96struct futex_pi_state;
97struct robust_list_head; 97struct robust_list_head;
98struct bio; 98struct bio;
99struct bts_tracer;
100struct fs_struct; 99struct fs_struct;
100struct 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. */