Thread (10 messages) 10 messages, 2 authors, 2016-01-12

Re: [RFC][PATCH] ppc: Implement save_stack_trace_regs()

From: Michael Ellerman <mpe@ellerman.id.au>
Date: 2015-12-09 01:03:41
Also in: lkml

On Tue, 2015-12-08 at 19:28 -0500, Steven Rostedt wrote:
On Wed, 09 Dec 2015 11:20:22 +1100
Michael Ellerman [off-list ref] wrote:
quoted
On Tue, 2015-12-08 at 13:50 -0500, Steven Rostedt wrote:
quoted
It has come to my attention that kprobe event stack tracing does not
work on powerpc.  
quoted
quoted
diff --git a/arch/powerpc/kernel/stacktrace.c b/arch/powerpc/kernel/stacktrace.c
index ea43a347a104..0142c86801ba 100644
--- a/arch/powerpc/kernel/stacktrace.c
+++ b/arch/powerpc/kernel/stacktrace.c
@@ -61,3 +61,10 @@ void save_stack_trace_tsk(struct task_struct *tsk, struct stack_trace *trace)
 	save_context_stack(trace, tsk->thread.ksp, tsk, 0);
 }
 EXPORT_SYMBOL_GPL(save_stack_trace_tsk);
+
+void
+save_stack_trace_regs(struct pt_regs *regs, struct stack_trace *trace)
+{
+	save_context_stack(trace, regs->gpr[PT_R1], current, 0);  
In the kernel we would normally use just '1' here rather than 'PT_R1', but it's
not a huge deal.

Should I take this via powerpc or do you want it to go in via tracing?
You can take it. And you can replace the PT_R1 if you want. I just
noticed that it was defined, and I try to use macro names instead of
hard coded numbers. I was actually looking for a "PT_SP" :-)
OK thanks.

Looks like we actually have:

  #define kernel_stack_pointer(regs) ((regs)->gpr[1])

So that would be the most self documenting way to do it I guess, though I've
never actually seen that macro used anywhere before :)

cheers
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help