lkml.org 
[lkml]   [2015]   [Mar]   [25]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [RFC PATCH 0/2] Compile-time stack frame pointer validation
On Thu, Mar 26, 2015 at 12:24:45AM +0100, Jiri Kosina wrote:
> On Wed, 25 Mar 2015, Josh Poimboeuf wrote:
>
> > In discussions around my live kernel patching consistency model RFC [1],
> > Peter and Ingo correctly pointed out that stack traces aren't reliable.
> > And as Ingo said, there's no "strong force" which ensures we can rely on
> > them.
> >
> > So I've been thinking about how to fix that. My goal is to eventually
> > make stack traces reliable. Or at the very least, to be able to detect
> > at runtime when a given stack trace *might* be unreliable. But improved
> > stack traces would broadly benefit the entire kernel, regardless of the
> > outcome of the live kernel patching consistency model discussions.
> [ ... snip ... ]
>
> I haven't really gone through your patchset thoroughly yet, but I just
> wanted to make sure that you are aware of existing DWARF-based stack
> unwinder which exists for the kernel.
>
> It's not merged in mainline (one of the reasons being disagreements about
> bugfixes between Jan and Linus), but we've been carrying it in SUSE
> kernels as an out-of-tree patch for quite some time, and it really makes
> stack dumps much more reliable and understandable.
>
> You can see it for example here:
>
> http://kernel.suse.com/cgit/kernel-source/tree/patches.suse/stack-unwind
>
> (and some merge attempt failures due to disagreements between Jan and
> Linus, not really completely related to the actual code itself, in LKML
> archives).

Thanks, that could be helpful. I also found a nice (currently only
32-bit) DWARF unwinder in arch/sh/kernel/dwarf.c.

The DWARF metadata has a reputation for being unreliable, but I have
some ideas on how to improve it for future patch sets, with both
compile-time and runtime validations.

--
Josh


\
 
 \ /
  Last update: 2015-03-26 00:41    [W:0.092 / U:0.484 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site