From: Gerald Britton <gbritton@alum.mit.edu>
To: Andrew Morton <akpm@osdl.org>, Linus Torvalds <torvalds@osdl.org>,
Hugh Dickins <hugh@veritas.com>,
phil.el@wanadoo.fr, gbritton@alum.mit.edu
Cc: linux-kernel@vger.kernel.org, oprofile-list@lists.sourceforge.net
Subject: [PATCH] x86: fix oprofile kernel callgraph regression
Date: Tue, 14 Feb 2006 10:19:04 -0500 [thread overview]
Message-ID: <20060214151904.GA30639@fog.sekrit.org> (raw)
In-Reply-To: <20060212190520.244fcaec.akpm@osdl.org>
Fix x86 oprofile regression introduced by:
commit c34d1b4d165c67b966bca4aba026443d7ff161eb
[PATCH] mm: kill check_user_page_readable
That commit reorganized tests for the userspace stack walking moving all
those tests into dump_backtrace(), however, dump_backtrace() was used for
both userspace and kernel stalk walking. The result is typically no
recorded callgraph information for kernel samples.
Revive the original function as dump_kernel_backtrace() and rename the
other to dump_user_backtrace() to avoid future confusion.
Signed-off-by: Gerald Britton <gbritton@alum.mit.edu>
---
backtrace.c | 19 ++++++++++++++++---
1 files changed, 16 insertions(+), 3 deletions(-)
--- a/arch/i386/oprofile/backtrace.c 2006-02-13 19:27:40.000000000 -0500
+++ b/arch/i386/oprofile/backtrace.c 2006-02-13 19:30:32.000000000 -0500
@@ -20,7 +20,20 @@ struct frame_head {
} __attribute__((packed));
static struct frame_head *
-dump_backtrace(struct frame_head * head)
+dump_kernel_backtrace(struct frame_head * head)
+{
+ oprofile_add_trace(head->ret);
+
+ /* frame pointers should strictly progress back up the stack
+ * (towards higher addresses) */
+ if (head >= head->ebp)
+ return NULL;
+
+ return head->ebp;
+}
+
+static struct frame_head *
+dump_user_backtrace(struct frame_head * head)
{
struct frame_head bufhead[2];
@@ -105,10 +118,10 @@ x86_backtrace(struct pt_regs * const reg
if (!user_mode_vm(regs)) {
while (depth-- && valid_kernel_stack(head, regs))
- head = dump_backtrace(head);
+ head = dump_kernel_backtrace(head);
return;
}
while (depth-- && head)
- head = dump_backtrace(head);
+ head = dump_user_backtrace(head);
}
next prev parent reply other threads:[~2006-02-14 15:19 UTC|newest]
Thread overview: 142+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-02-13 1:19 Linux 2.6.16-rc3 Linus Torvalds
2006-02-13 3:05 ` Andrew Morton
2006-02-13 3:05 ` Andrew Morton
2006-02-13 3:22 ` Trond Myklebust
2006-02-13 3:22 ` Trond Myklebust
2006-02-13 15:09 ` Benjamin LaHaise
2006-02-13 3:28 ` Sanjoy Mahajan
2006-02-13 3:28 ` Sanjoy Mahajan
2006-02-13 3:36 ` Jeff Garzik
2006-02-13 3:36 ` Jeff Garzik
2006-02-13 4:40 ` James Bottomley
2006-02-13 4:40 ` James Bottomley
2006-02-13 5:20 ` S3 sleep regression bisected (was Re: Linux 2.6.16-rc3) Sanjoy Mahajan
2006-02-13 5:20 ` Sanjoy Mahajan
2006-02-13 7:04 ` Linux 2.6.16-rc3 Arjan van de Ven
2006-02-13 7:04 ` Arjan van de Ven
2006-02-13 8:11 ` Jens Axboe
2006-02-13 8:11 ` Jens Axboe
2006-02-13 9:22 ` Patrizio Bassi
2006-02-13 9:22 ` Patrizio Bassi
2006-02-13 10:07 ` Linux 2.6.16-rc3 - x86_64 specific outstanding bugs Andi Kleen
2006-02-13 12:02 ` Linux 2.6.16-rc3 Takashi Iwai
2006-02-13 12:02 ` Takashi Iwai
2006-02-13 12:37 ` Patrizio Bassi
2006-02-13 12:37 ` Patrizio Bassi
2006-02-13 13:13 ` Takashi Iwai
2006-02-13 13:13 ` Takashi Iwai
2006-02-13 13:31 ` Patrizio Bassi
2006-02-13 13:31 ` Patrizio Bassi
2006-02-13 14:15 ` Takashi Iwai
2006-02-13 14:15 ` Takashi Iwai
2006-02-13 14:34 ` Patrizio Bassi
2006-02-13 14:34 ` Patrizio Bassi
2006-02-13 14:39 ` Takashi Iwai
2006-02-13 14:39 ` Takashi Iwai
2006-02-13 13:09 ` Rafael J. Wysocki
2006-02-13 13:09 ` Rafael J. Wysocki
2006-02-13 13:51 ` Takashi Iwai
2006-02-13 13:51 ` Takashi Iwai
2006-02-13 19:33 ` Rafael J. Wysocki
2006-02-13 19:33 ` Rafael J. Wysocki
2006-02-13 16:36 ` Thierry Vignaud
2006-02-15 6:51 ` Andrew Morton
2006-02-15 13:40 ` Thierry Vignaud
2006-02-15 20:00 ` Andrew Morton
2006-02-13 16:36 ` Thierry Vignaud
2006-02-13 16:10 ` Adrian Bunk
2006-02-13 19:31 ` Daniel Drake
2006-02-13 20:30 ` Paul Fulghum
2006-02-13 20:38 ` Greg KH
2006-02-13 20:38 ` Greg KH
2006-02-14 16:34 ` James Bottomley
2006-02-14 16:34 ` James Bottomley
2006-02-15 16:07 ` [linux-usb-devel] " Alan Stern
2006-02-15 16:27 ` Greg KH
2006-02-15 16:35 ` Arjan van de Ven
2006-02-15 17:06 ` Greg KH
2006-02-15 21:52 ` Alan Stern
2006-02-15 21:59 ` Greg KH
2006-02-15 22:25 ` Alan Stern
2006-02-15 22:37 ` Greg KH
2006-02-15 22:51 ` Alan Stern
2006-02-15 19:58 ` James Bottomley
2006-02-15 22:24 ` Alan Stern
2006-02-16 1:56 ` James Bottomley
2006-02-16 1:56 ` James Bottomley
2006-02-16 17:12 ` Russell King
2006-02-16 17:12 ` Russell King
2006-02-16 17:34 ` Stefan Richter
2006-02-16 17:34 ` Stefan Richter
2006-02-16 17:57 ` James Bottomley
2006-02-16 17:57 ` James Bottomley
2006-02-16 18:09 ` Russell King
2006-02-16 18:09 ` Russell King
2006-02-16 18:14 ` James Bottomley
2006-02-16 18:14 ` James Bottomley
2006-02-16 18:18 ` Russell King
2006-02-16 18:18 ` Russell King
2006-02-16 19:09 ` James Bottomley
2006-02-16 19:09 ` James Bottomley
2006-02-16 20:01 ` Jens Axboe
2006-02-16 20:01 ` Jens Axboe
2006-02-18 0:42 ` James Bottomley
2006-02-18 0:42 ` James Bottomley
2006-02-18 1:00 ` Greg KH
2006-02-18 1:00 ` Greg KH
2006-02-18 2:12 ` Roland Dreier
2006-02-18 2:12 ` Roland Dreier
2006-02-18 5:30 ` Matthew Wilcox
2006-02-18 10:03 ` [linux-usb-devel] " Sergey Vlasov
2006-02-18 10:03 ` Sergey Vlasov
2006-02-19 14:30 ` James Bottomley
2006-02-19 14:30 ` James Bottomley
2006-02-23 18:43 ` James Bottomley
2006-02-23 18:43 ` James Bottomley
2006-02-18 20:16 ` Alan Stern
2006-02-18 20:16 ` Alan Stern
2006-02-19 13:51 ` James Bottomley
2006-02-19 13:51 ` James Bottomley
2006-02-14 15:19 ` Gerald Britton [this message]
2006-02-14 15:58 ` [PATCH] x86: fix oprofile kernel callgraph regression Hugh Dickins
2006-02-18 21:06 ` Linux 2.6.16-rc3 Helge Hafting
2006-02-18 21:06 ` Helge Hafting
2006-02-22 16:49 ` Ben Castricum
2006-02-13 8:46 ` Jan Dittmer
2006-02-13 9:07 ` Yoichi Yuasa
2006-02-13 15:47 ` Linus Torvalds
2006-02-13 22:11 ` Jan Dittmer
[not found] ` <3aa654a40602130231p1c476e99paa986fa198951839@mail.gmail.com>
2006-02-13 10:39 ` Andrew Morton
2006-02-13 10:54 ` Con Kolivas
2006-02-13 17:27 ` Andi Kleen
[not found] ` <3aa654a40602130251t174a5e4bg28a52a147cc9b2cf@mail.gmail.com>
2006-02-13 10:56 ` Andrew Morton
2006-02-14 2:44 ` Andrew Morton
2006-02-14 2:54 ` Dave Jones
2006-02-14 3:21 ` Andrew Morton
2006-02-13 17:09 ` 2.6.16-rc3: more regressions Adrian Bunk
2006-02-13 17:24 ` Dave Jones
2006-02-13 17:30 ` Dmitry Torokhov
2006-02-13 17:35 ` Linus Torvalds
2006-02-13 17:46 ` Dave Jones
2006-02-13 18:04 ` Linus Torvalds
2006-02-13 18:16 ` Linus Torvalds
2006-02-13 18:27 ` Dave Jones
2006-02-13 18:33 ` Linus Torvalds
2006-02-13 18:42 ` Adrian Bunk
2006-02-13 18:34 ` Adrian Bunk
2006-02-13 18:42 ` Dave Jones
2006-02-13 18:47 ` Adrian Bunk
2006-02-13 18:51 ` Alex Deucher
2006-02-13 18:50 ` Linus Torvalds
2006-02-13 19:09 ` Adrian Bunk
2006-02-13 19:17 ` Linus Torvalds
2006-02-13 19:21 ` Linus Torvalds
2006-02-13 23:27 ` Jesse Allen
2006-02-13 23:35 ` Felix Kühling
2006-02-15 16:22 ` Jesse Allen
2006-02-16 22:00 ` Dave Airlie
2006-02-14 23:55 ` Gerhard Mack
2006-02-14 0:08 ` Dave Airlie
2006-02-14 0:29 ` Dave Jones
2006-02-14 0:33 ` Dave Airlie
2006-02-13 18:33 ` Mark Fasheh
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=20060214151904.GA30639@fog.sekrit.org \
--to=gbritton@alum.mit.edu \
--cc=akpm@osdl.org \
--cc=hugh@veritas.com \
--cc=linux-kernel@vger.kernel.org \
--cc=oprofile-list@lists.sourceforge.net \
--cc=phil.el@wanadoo.fr \
--cc=torvalds@osdl.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.