public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Anton Blanchard <anton@samba.org>
To: rostedt@goodmis.org, fweisbec@gmail.com, mingo@redhat.com
Cc: linux-kernel@vger.kernel.org
Subject: [PATCH] tracing/trace_stack: Fix stack trace on ppc64
Date: Wed, 25 Aug 2010 11:32:38 +1000	[thread overview]
Message-ID: <20100825013238.GE28360@kryten> (raw)


save_stack_trace() stores the instruction pointer, not the function
descriptor. On ppc64 the trace stack code currently dereferences the
instruction pointer and shows 8 bytes of instructions in our backtraces:

# cat /sys/kernel/debug/tracing/stack_trace
        Depth    Size   Location    (26 entries)
        -----    ----   --------
  0)     5424     112   0x6000000048000004
  1)     5312     160   0x60000000ebad01b0
  2)     5152     160   0x2c23000041c20030
  3)     4992     240   0x600000007c781b79
  4)     4752     160   0xe84100284800000c
  5)     4592     192   0x600000002fa30000
  6)     4400     256   0x7f1800347b7407e0
  7)     4144     208   0xe89f0108f87f0070
  8)     3936     272   0xe84100282fa30000

Since we aren't dealing with function descriptors, use %pS instead of %pF
to fix it:

# cat /sys/kernel/debug/tracing/stack_trace
        Depth    Size   Location    (26 entries)
        -----    ----   --------
  0)     5424     112   ftrace_call+0x4/0x8
  1)     5312     160   .current_io_context+0x28/0x74
  2)     5152     160   .get_io_context+0x48/0xa0
  3)     4992     240   .cfq_set_request+0x94/0x4c4
  4)     4752     160   .elv_set_request+0x60/0x84
  5)     4592     192   .get_request+0x2d4/0x468
  6)     4400     256   .get_request_wait+0x7c/0x258
  7)     4144     208   .__make_request+0x49c/0x610
  8)     3936     272   .generic_make_request+0x390/0x434

Signed-off-by: Anton Blanchard <anton@samba.org>
---

Index: powerpc.git/kernel/trace/trace_stack.c
===================================================================
--- powerpc.git.orig/kernel/trace/trace_stack.c	2010-08-25 11:03:52.337982567 +1000
+++ powerpc.git/kernel/trace/trace_stack.c	2010-08-25 11:03:55.018371055 +1000
@@ -249,7 +249,7 @@ static int trace_lookup_stack(struct seq
 {
 	unsigned long addr = stack_dump_trace[i];
 
-	return seq_printf(m, "%pF\n", (void *)addr);
+	return seq_printf(m, "%pS\n", (void *)addr);
 }
 
 static void print_disabled(struct seq_file *m)

             reply	other threads:[~2010-08-25  1:34 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-08-25  1:32 Anton Blanchard [this message]
2010-08-25 12:58 ` [tip:perf/urgent] tracing/trace_stack: Fix stack trace on ppc64 tip-bot for Anton Blanchard
2010-08-31  1:31 ` [PATCH] " Steven Rostedt
2010-08-31 14:21   ` Frederic Weisbecker
2010-08-31 14:58     ` Steven Rostedt
2010-08-31 15:14       ` Frederic Weisbecker
2010-08-31 17:36         ` 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=20100825013238.GE28360@kryten \
    --to=anton@samba.org \
    --cc=fweisbec@gmail.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mingo@redhat.com \
    --cc=rostedt@goodmis.org \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox