Re: [patch 04/18] x86, bts: wait until traced task has been scheduled out
- From: Ingo Molnar <mingo@xxxxxxx>
- Date: Thu, 2 Apr 2009 21:17:30 +0200
* markus.t.metzger@xxxxxxxxx <markus.t.metzger@xxxxxxxxx> wrote:
In order to stop branch tracing for a running task, we need to
first clear the branch tracing control bits before we may free the
tracing buffer. If the traced task is running, the cpu might still
trace that task after the branch trace control bits have cleared.
Wait until the traced task has been scheduled out before
proceeding.
A similar problem affects the task debug store context. We first
remove the context, then we need to wait until the task has been
scheduled out before we can free the context memory.
Reviewed-by: Oleg Nesterov <oleg@xxxxxxxxxx>
Signed-off-by: Markus Metzger <markus.t.metzger@xxxxxxxxx>
---
arch/x86/kernel/ds.c | 40 40 + 0 - 0 !
1 file changed, 40 insertions(+)
Index: b/arch/x86/kernel/ds.c
===================================================================
--- a/arch/x86/kernel/ds.c
+++ b/arch/x86/kernel/ds.c
@@ -250,6 +250,40 @@ static DEFINE_PER_CPU(struct ds_context
#define system_context per_cpu(system_context_array, smp_processor_id())
+/*
+ * Wait for the traced task to unschedule.
+ *
+ * This guarantees that the bts trace configuration has been
+ * synchronized with the cpu executing the task.
+ */
+static void wait_to_unschedule(struct task_struct *task)
+{
this should be in sched.c and task_is_running() should not be
exported from there.
I.e. your original patch which i objected to is probably the right
one, but should be named something like "task_wait_context_switch()"
- which signals its purpose: that it is to wait for the task to
context-switch at least once, so that its ptrace state is installed
(or deinstalled) for sure.
Ingo
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
- Follow-Ups:
- RE: [patch 04/18] x86, bts: wait until traced task has been scheduled out
- From: Metzger, Markus T
- RE: [patch 04/18] x86, bts: wait until traced task has been scheduled out
- References:
- [patch 00/18] x86, bts, ptrace, hw-branch-tracer: fixes and cleanups
- From: markus . t . metzger
- [patch 04/18] x86, bts: wait until traced task has been scheduled out
- From: markus . t . metzger
- [patch 00/18] x86, bts, ptrace, hw-branch-tracer: fixes and cleanups
- Prev by Date: Re: [PATCH] Define a UNIQUE value for AS_UNEVICTABLE flag
- Next by Date: Re: [PATCH 5/6] perf_counter: add more context information
- Previous by thread: [patch 04/18] x86, bts: wait until traced task has been scheduled out
- Next by thread: RE: [patch 04/18] x86, bts: wait until traced task has been scheduled out
- Index(es):
Relevant Pages
|
Loading