From: tip-bot for Markus Metzger <markus.t.metzger@intel.com>
To: linux-tip-commits@vger.kernel.org
Cc: linux-kernel@vger.kernel.org, hpa@zytor.com, mingo@redhat.com,
markus.t.metzger@intel.com, tglx@linutronix.de, mingo@elte.hu
Subject: [tip:tracing/core] x86, ptrace: add bts context unconditionally
Date: Thu, 7 May 2009 09:24:21 GMT [thread overview]
Message-ID: <tip-0f4814065ff8c24ca8bfd75c9b73502be152c287@git.kernel.org> (raw)
In-Reply-To: <20090403144603.292754000@intel.com>
Commit-ID: 0f4814065ff8c24ca8bfd75c9b73502be152c287
Gitweb: http://git.kernel.org/tip/0f4814065ff8c24ca8bfd75c9b73502be152c287
Author: Markus Metzger <markus.t.metzger@intel.com>
AuthorDate: Fri, 3 Apr 2009 16:43:48 +0200
Committer: Ingo Molnar <mingo@elte.hu>
CommitDate: Tue, 7 Apr 2009 13:36:31 +0200
x86, ptrace: add bts context unconditionally
Add the ptrace bts context field to task_struct unconditionally.
Initialize the field directly in copy_process().
Remove all the unneeded functionality used to initialize that field.
Signed-off-by: Markus Metzger <markus.t.metzger@intel.com>
Cc: roland@redhat.com
Cc: eranian@googlemail.com
Cc: oleg@redhat.com
Cc: juan.villacis@intel.com
Cc: ak@linux.jf.intel.com
LKML-Reference: <20090403144603.292754000@intel.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
---
arch/x86/include/asm/ptrace.h | 9 ++++-----
arch/x86/kernel/ptrace.c | 20 +-------------------
include/linux/ptrace.h | 10 ----------
include/linux/sched.h | 2 --
kernel/fork.c | 4 ++--
kernel/ptrace.c | 10 ----------
6 files changed, 7 insertions(+), 48 deletions(-)
diff --git a/arch/x86/include/asm/ptrace.h b/arch/x86/include/asm/ptrace.h
index e304b66..5cdd19f 100644
--- a/arch/x86/include/asm/ptrace.h
+++ b/arch/x86/include/asm/ptrace.h
@@ -235,12 +235,11 @@ extern int do_get_thread_area(struct task_struct *p, int idx,
extern int do_set_thread_area(struct task_struct *p, int idx,
struct user_desc __user *info, int can_allocate);
-extern void x86_ptrace_untrace(struct task_struct *);
-extern void x86_ptrace_fork(struct task_struct *child,
- unsigned long clone_flags);
+#ifdef CONFIG_X86_PTRACE_BTS
+extern void ptrace_bts_untrace(struct task_struct *tsk);
-#define arch_ptrace_untrace(tsk) x86_ptrace_untrace(tsk)
-#define arch_ptrace_fork(child, flags) x86_ptrace_fork(child, flags)
+#define arch_ptrace_untrace(tsk) ptrace_bts_untrace(tsk)
+#endif /* CONFIG_X86_PTRACE_BTS */
#endif /* __KERNEL__ */
diff --git a/arch/x86/kernel/ptrace.c b/arch/x86/kernel/ptrace.c
index adbb243..b32a8ee 100644
--- a/arch/x86/kernel/ptrace.c
+++ b/arch/x86/kernel/ptrace.c
@@ -887,37 +887,19 @@ static int ptrace_bts_size(struct task_struct *child)
return (trace->ds.top - trace->ds.begin) / trace->ds.size;
}
-static inline void ptrace_bts_fork(struct task_struct *tsk)
-{
- tsk->bts = NULL;
-}
-
/*
* Called from __ptrace_unlink() after the child has been moved back
* to its original parent.
*/
-static inline void ptrace_bts_untrace(struct task_struct *child)
+void ptrace_bts_untrace(struct task_struct *child)
{
if (unlikely(child->bts)) {
free_bts_context(child->bts);
child->bts = NULL;
}
}
-#else
-static inline void ptrace_bts_fork(struct task_struct *tsk) {}
-static inline void ptrace_bts_untrace(struct task_struct *child) {}
#endif /* CONFIG_X86_PTRACE_BTS */
-void x86_ptrace_fork(struct task_struct *child, unsigned long clone_flags)
-{
- ptrace_bts_fork(child);
-}
-
-void x86_ptrace_untrace(struct task_struct *child)
-{
- ptrace_bts_untrace(child);
-}
-
/*
* Called by kernel/ptrace.c when detaching..
*
diff --git a/include/linux/ptrace.h b/include/linux/ptrace.h
index 67c1565..59e133d 100644
--- a/include/linux/ptrace.h
+++ b/include/linux/ptrace.h
@@ -95,7 +95,6 @@ extern void __ptrace_link(struct task_struct *child,
struct task_struct *new_parent);
extern void __ptrace_unlink(struct task_struct *child);
extern void exit_ptrace(struct task_struct *tracer);
-extern void ptrace_fork(struct task_struct *task, unsigned long clone_flags);
#define PTRACE_MODE_READ 1
#define PTRACE_MODE_ATTACH 2
/* Returns 0 on success, -errno on denial. */
@@ -327,15 +326,6 @@ static inline void user_enable_block_step(struct task_struct *task)
#define arch_ptrace_untrace(task) do { } while (0)
#endif
-#ifndef arch_ptrace_fork
-/*
- * Do machine-specific work to initialize a new task.
- *
- * This is called from copy_process().
- */
-#define arch_ptrace_fork(child, clone_flags) do { } while (0)
-#endif
-
extern int task_current_syscall(struct task_struct *target, long *callno,
unsigned long args[6], unsigned int maxargs,
unsigned long *sp, unsigned long *pc);
diff --git a/include/linux/sched.h b/include/linux/sched.h
index 52b8cd0..451186a 100644
--- a/include/linux/sched.h
+++ b/include/linux/sched.h
@@ -1205,13 +1205,11 @@ struct task_struct {
struct list_head ptraced;
struct list_head ptrace_entry;
-#ifdef CONFIG_X86_PTRACE_BTS
/*
* This is the tracer handle for the ptrace BTS extension.
* This field actually belongs to the ptracer task.
*/
struct bts_context *bts;
-#endif /* CONFIG_X86_PTRACE_BTS */
/* PID/PID hash table linkage. */
struct pid_link pids[PIDTYPE_MAX];
diff --git a/kernel/fork.c b/kernel/fork.c
index 660c2b8..69bde7a 100644
--- a/kernel/fork.c
+++ b/kernel/fork.c
@@ -1086,8 +1086,8 @@ static struct task_struct *copy_process(unsigned long clone_flags,
#ifdef CONFIG_DEBUG_MUTEXES
p->blocked_on = NULL; /* not blocked yet */
#endif
- if (unlikely(current->ptrace))
- ptrace_fork(p, clone_flags);
+
+ p->bts = NULL;
/* Perform scheduler related setup. Assign this task to a CPU. */
sched_fork(p, clone_flags);
diff --git a/kernel/ptrace.c b/kernel/ptrace.c
index aaad0ec..321127d 100644
--- a/kernel/ptrace.c
+++ b/kernel/ptrace.c
@@ -27,16 +27,6 @@
/*
- * Initialize a new task whose father had been ptraced.
- *
- * Called from copy_process().
- */
-void ptrace_fork(struct task_struct *child, unsigned long clone_flags)
-{
- arch_ptrace_fork(child, clone_flags);
-}
-
-/*
* ptrace a task: make the debugger its new parent and
* move it to the ptrace list.
*
next prev parent reply other threads:[~2009-05-07 9:29 UTC|newest]
Thread overview: 50+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-04-03 14:43 [patch 00/20] x86, ptrace, bts, hw-branch-tracer: fixes and cleanups markus.t.metzger
2009-04-03 14:43 ` [patch 01/20] x86, bts: fix race when bts tracer is removed markus.t.metzger
2009-05-07 9:21 ` [tip:tracing/core] " tip-bot for Markus Metzger
2009-04-03 14:43 ` [patch 02/20] sched: add wait_task_context_switch() fucntion to sched.h markus.t.metzger
2009-05-07 9:21 ` [tip:tracing/core] sched, hw-branch-tracer: add wait_task_context_switch() function " tip-bot for Markus Metzger
2009-04-03 14:43 ` [patch 03/20] x86, ptrace, bts: defer branch trace stopping markus.t.metzger
2009-04-03 15:00 ` Peter Zijlstra
2009-04-04 7:17 ` Metzger, Markus T
2009-04-04 11:12 ` Peter Zijlstra
2009-04-07 8:12 ` Metzger, Markus T
2009-04-07 8:29 ` Peter Zijlstra
2009-04-07 9:09 ` Metzger, Markus T
2009-05-07 9:21 ` [tip:tracing/core] mm, " tip-bot for Markus Metzger
2009-04-03 14:43 ` [patch 04/20] x86, bts: wait until traced task has been scheduled out markus.t.metzger
2009-05-07 9:22 ` [tip:tracing/core] " tip-bot for Markus Metzger
2009-04-03 14:43 ` [patch 05/20] x86, bts: fix race between per-task and per-cpu branch tracing markus.t.metzger
2009-05-07 9:22 ` [tip:tracing/core] " tip-bot for Markus Metzger
2009-04-03 14:43 ` [patch 06/20] x86, bts: use trace_clock_global() for timestamps markus.t.metzger
2009-05-07 9:22 ` [tip:tracing/core] " tip-bot for Markus Metzger
2009-04-03 14:43 ` [patch 07/20] x86, debugctlmsr: add _on_cpu variants to debugctlmsr functions markus.t.metzger
2009-05-07 9:22 ` [tip:tracing/core] " tip-bot for Markus Metzger
2009-04-03 14:43 ` [patch 08/20] x86, bts, hw-branch-tracer: add _noirq variants to the debug store interface markus.t.metzger
2009-05-07 9:22 ` [tip:tracing/core] " tip-bot for Markus Metzger
2009-04-03 14:43 ` [patch 09/20] x86, hw-branch-tracer: allocate selftest iterator on heap markus.t.metzger
2009-05-07 9:23 ` [tip:tracing/core] " tip-bot for Markus Metzger
2009-04-03 14:43 ` [patch 10/20] x86, ds: fix compiler warning markus.t.metzger
2009-05-07 9:23 ` [tip:tracing/core] " tip-bot for Markus Metzger
2009-04-03 14:43 ` [patch 11/20] x86, ds: fix bounds check in ds selftest markus.t.metzger
2009-05-07 9:23 ` [tip:tracing/core] " tip-bot for Markus Metzger
2009-04-03 14:43 ` [patch 12/20] x86, ds: selftest each cpu markus.t.metzger
2009-05-07 9:23 ` [tip:tracing/core] " tip-bot for Markus Metzger
2009-04-03 14:43 ` [patch 13/20] x86, ds: add task tracing selftest markus.t.metzger
2009-05-07 9:23 ` [tip:tracing/core] " tip-bot for Markus Metzger
2009-04-03 14:43 ` [patch 14/20] x86, ds: add leakage warning markus.t.metzger
2009-05-07 9:24 ` [tip:tracing/core] " tip-bot for Markus Metzger
2009-04-03 14:43 ` [patch 15/20] x86, ds: use single debug store cpu configuration markus.t.metzger
2009-05-07 9:24 ` [tip:tracing/core] " tip-bot for Markus Metzger
2009-04-03 14:43 ` [patch 16/20] x86, ptrace: add bts context unconditionally markus.t.metzger
2009-05-07 9:24 ` tip-bot for Markus Metzger [this message]
2009-04-03 14:43 ` [patch 17/20] x86, ds: dont use TIF_DEBUGCTLMSR markus.t.metzger
2009-05-07 9:24 ` [tip:tracing/core] " tip-bot for Markus Metzger
2009-04-03 14:43 ` [patch 18/20] x86, ds: fix bad ds_reset_pebs() markus.t.metzger
2009-05-07 9:24 ` [tip:tracing/core] " tip-bot for Markus Metzger
2009-04-03 14:43 ` [patch 19/20] x86, ds: allow small debug store buffers markus.t.metzger
2009-05-07 9:24 ` [tip:tracing/core] " tip-bot for Markus Metzger
2009-04-03 14:43 ` [patch 20/20] x86, ds: support Core i7 markus.t.metzger
2009-05-07 9:25 ` [tip:tracing/core] " tip-bot for Markus Metzger
2009-04-03 15:36 ` [patch 00/20] x86, ptrace, bts, hw-branch-tracer: fixes and cleanups Ingo Molnar
2009-04-03 17:44 ` Markus Metzger
2009-04-03 17:48 ` Ingo Molnar
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=tip-0f4814065ff8c24ca8bfd75c9b73502be152c287@git.kernel.org \
--to=markus.t.metzger@intel.com \
--cc=hpa@zytor.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-tip-commits@vger.kernel.org \
--cc=mingo@elte.hu \
--cc=mingo@redhat.com \
--cc=tglx@linutronix.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.