x86, bts: add fork and exit handling
Impact: introduce new ptrace facility Add arch_ptrace_untrace() function that is called when the tracer detaches (either voluntarily or when the tracing task dies); ptrace_disable() is only called on a voluntary detach. Add ptrace_fork() and arch_ptrace_fork(). They are called when a traced task is forked. Clear DS and BTS related fields on fork. Release DS resources and reclaim memory in ptrace_untrace(). This releases resources already when the tracing task dies. We used to do that when the traced task dies. Signed-off-by: Markus Metzger <markus.t.metzger@intel.com> Signed-off-by: Ingo Molnar <mingo@elte.hu>
This commit is contained in:
committed by
Ingo Molnar
parent
30cd324e97
commit
bf53de907d
@@ -1017,3 +1017,14 @@ void ds_switch_to(struct task_struct *prev, struct task_struct *next)
|
||||
|
||||
update_debugctlmsr(next->thread.debugctlmsr);
|
||||
}
|
||||
|
||||
void ds_copy_thread(struct task_struct *tsk, struct task_struct *father)
|
||||
{
|
||||
clear_tsk_thread_flag(tsk, TIF_DS_AREA_MSR);
|
||||
tsk->thread.ds_ctx = NULL;
|
||||
}
|
||||
|
||||
void ds_exit_thread(struct task_struct *tsk)
|
||||
{
|
||||
WARN_ON(tsk->thread.ds_ctx);
|
||||
}
|
||||
|
Reference in New Issue
Block a user