Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752979Ab1CJWqT (ORCPT ); Thu, 10 Mar 2011 17:46:19 -0500 Received: from mail-vw0-f46.google.com ([209.85.212.46]:45004 "EHLO mail-vw0-f46.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752550Ab1CJWqR (ORCPT ); Thu, 10 Mar 2011 17:46:17 -0500 DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=date:from:to:cc:subject:message-id:references:mime-version :content-type:content-disposition:in-reply-to:user-agent; b=emlq+zAyewjuUdPd8JcMRsLTNj7HezOqRWocgL1KR7Qf7e3slbyrcoXLfsWP/wLSXW 3s3Z3qX16Cri2X52qgxt9JALEkZymkysIhSfvQoTRhoO7sls2pV26Kv5SlWXzaKa3bmu xf8rORKFMzpeHF028xK8dYkustm+jFj/PgYfQ= Date: Thu, 10 Mar 2011 23:46:07 +0100 From: Frederic Weisbecker To: mingo@redhat.com, hpa@zytor.com, paulus@samba.org, acme@redhat.com, linux-kernel@vger.kernel.org, a.p.zijlstra@chello.nl, tglx@linutronix.de, namhyung@gmail.com, ssp@redhat.com Cc: linux-tip-commits@vger.kernel.org Subject: Re: [tip:x86/cleanups] x86, dumpstack: Correct stack dump info when frame pointer is available Message-ID: <20110310224604.GA1837@nowhere> References: <1299584662-24421-1-git-send-email-namhyung@gmail.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.5.20 (2009-06-14) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 3290 Lines: 68 On Thu, Mar 10, 2011 at 10:24:53PM +0000, tip-bot for Namhyung Kim wrote: > Commit-ID: 074206a787e4dfdc4c290789ab6604c7f9e691ca > Gitweb: http://git.kernel.org/tip/074206a787e4dfdc4c290789ab6604c7f9e691ca > Author: Namhyung Kim > AuthorDate: Tue, 8 Mar 2011 20:44:19 +0900 > Committer: Thomas Gleixner > CommitDate: Thu, 10 Mar 2011 23:20:30 +0100 > > x86, dumpstack: Correct stack dump info when frame pointer is available > > Current stack dump code scans entire stack and checks each entry for a > pointer to kernel code. If CONFIG_FRAME_POINTER=y it could mark > whether the pointer is valid or not based on value of the frame > pointer. Invalid entries could be preceded by '?' sign. > > However this was not going to happen because scan start point was > always higher than the frame pointer so that they could not meet. > > Commit 9c0729dc8062 ("x86: Eliminate bp argument from the stack > tracing routines") delayed bp acquisition point, so the bp was > read in lower frame, thus all of the entries were marked invalid. > > This patch fixes this by reverting above commit while retaining > stack_frame() helper as suggested by Frederic Weisbecker. > End result looks like below: > > before: > [ 3.508329] Call Trace: > [ 3.508551] [] ? panic+0x91/0x199 > [ 3.508662] [] ? printk+0x68/0x6a > [ 3.508770] [] ? mount_block_root+0x257/0x26e > [ 3.508876] [] ? mount_root+0x56/0x5a > [ 3.508975] [] ? prepare_namespace+0x170/0x1a9 > [ 3.509216] [] ? kernel_init+0x1d2/0x1e2 > [ 3.509335] [] ? kernel_thread_helper+0x4/0x10 > [ 3.509442] [] ? restore_args+0x0/0x30 > [ 3.509542] [] ? kernel_init+0x0/0x1e2 > [ 3.509641] [] ? kernel_thread_helper+0x0/0x10 > > after: > [ 3.522991] Call Trace: > [ 3.523351] [] panic+0x91/0x199 > [ 3.523468] [] ? printk+0x68/0x6a > [ 3.523576] [] mount_block_root+0x257/0x26e > [ 3.523681] [] mount_root+0x56/0x5a > [ 3.523780] [] prepare_namespace+0x170/0x1a9 > [ 3.523885] [] kernel_init+0x1d2/0x1e2 > [ 3.523987] [] kernel_thread_helper+0x4/0x10 > [ 3.524228] [] ? restore_args+0x0/0x30 > [ 3.524345] [] ? kernel_init+0x0/0x1e2 > [ 3.524445] [] ? kernel_thread_helper+0x0/0x10 > > Signed-off-by: Namhyung Kim > Cc: Soren Sandmann > Cc: Peter Zijlstra > Cc: Paul Mackerras > Cc: Arnaldo Carvalho de Melo > Cc: Frederic Weisbecker > LKML-Reference: <1299584662-24421-1-git-send-email-namhyung@gmail.com> > Signed-off-by: Thomas Gleixner > --- Nice fix, thanks! -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/