sparc64: Add save_stack_trace_tsk().
And this allows us to indicate HAVE_LATENCYTOP_SUPPORT. Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
Родитель
3a29db3222
Коммит
6a5726dd6f
|
@ -72,6 +72,10 @@ config LOCKDEP_SUPPORT
|
|||
bool
|
||||
default y if SPARC64
|
||||
|
||||
config HAVE_LATENCYTOP_SUPPORT
|
||||
bool
|
||||
default y if SPARC64
|
||||
|
||||
config AUDIT_ARCH
|
||||
bool
|
||||
default y if SPARC64
|
||||
|
|
|
@ -7,17 +7,18 @@
|
|||
|
||||
#include "kstack.h"
|
||||
|
||||
void save_stack_trace(struct stack_trace *trace)
|
||||
static void __save_stack_trace(struct thread_info *tp,
|
||||
struct stack_trace *trace,
|
||||
bool skip_sched)
|
||||
{
|
||||
struct thread_info *tp = task_thread_info(current);
|
||||
unsigned long ksp, fp;
|
||||
|
||||
stack_trace_flush();
|
||||
|
||||
__asm__ __volatile__(
|
||||
"mov %%fp, %0"
|
||||
: "=r" (ksp)
|
||||
);
|
||||
if (tp == current_thread_info()) {
|
||||
stack_trace_flush();
|
||||
__asm__ __volatile__("mov %%fp, %0" : "=r" (ksp));
|
||||
} else {
|
||||
ksp = tp->ksp;
|
||||
}
|
||||
|
||||
fp = ksp + STACK_BIAS;
|
||||
do {
|
||||
|
@ -43,8 +44,21 @@ void save_stack_trace(struct stack_trace *trace)
|
|||
|
||||
if (trace->skip > 0)
|
||||
trace->skip--;
|
||||
else
|
||||
else if (!skip_sched || !in_sched_functions(pc))
|
||||
trace->entries[trace->nr_entries++] = pc;
|
||||
} while (trace->nr_entries < trace->max_entries);
|
||||
}
|
||||
|
||||
void save_stack_trace(struct stack_trace *trace)
|
||||
{
|
||||
__save_stack_trace(current_thread_info(), trace, false);
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(save_stack_trace);
|
||||
|
||||
void save_stack_trace_tsk(struct task_struct *tsk, struct stack_trace *trace)
|
||||
{
|
||||
struct thread_info *tp = task_thread_info(tsk);
|
||||
|
||||
__save_stack_trace(tp, trace, true);
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(save_stack_trace_tsk);
|
||||
|
|
Загрузка…
Ссылка в новой задаче