Re: stack frame unwindind KASAN errors

From: Josh Poimboeuf
Date: Tue Mar 07 2017 - 09:32:26 EST


On Tue, Mar 07, 2017 at 10:04:11AM +0800, Daniel J Blueman wrote:
> On 7 March 2017 at 00:40, Josh Poimboeuf <jpoimboe@xxxxxxxxxx> wrote:
> > On Mon, Mar 06, 2017 at 02:52:01PM +0800, Daniel J Blueman wrote:
> >> Thanks Josh!
> >>
> >> With this patch, the KASAN warning still occurs, but at
> >> unwind_get_return_address+0x1d3/0x130 instead; the rest of the trace
> >> is identical.
> >>
> >> (gdb) list *(unwind_get_return_address+0x1d3)
> >> 0xffffffff8112bca3 is in unwind_get_return_address
> >> (./include/linux/compiler.h:243).
> >> 238 })
> >> 239
> >> 240 static __always_inline
> >> 241 void __read_once_size(const volatile void *p, void *res, int size)
> >> 242 {
> >> 243 __READ_ONCE_SIZE;
> >
> > Looking deeper, I have an idea about what's going on:
> >
> > https://quora.org/dmesg.txt
> >
> > Each of the warnings seems to show an interrupt happening during an EFI
> > call. I'm guessing EFI modified the frame pointer, at least
> > temporarily, which confused the unwinder :-(
> >
> > Would it be possible for you to test again with 4.10? It has some
> > additional unwinder output which should hopefully confirm my suspicions.
>
> Very good; I don't see the KASAN warnings with 4.10 in the same environment.

To be honest, that's not the result I was expecting :-)

It would be nice to know what fixed it. Any chance you could bisect?

--
Josh