Re: Oops mystery

From: Dave Jones
Date: Fri Jul 12 2013 - 13:02:21 EST


On Fri, Jul 12, 2013 at 11:53:30AM -0500, Steve Wise wrote:
> On 7/12/2013 11:48 AM, Dave Jones wrote:
> > On Fri, Jul 12, 2013 at 10:48:21AM -0500, Steve Wise wrote:
> >
> > > So 'movb $0x0,0xe(%rax,%rdx,1)' should be storing 0 into the byte
> > > location:
> > >
> > > %rax + 0xe + (%rdx * 1) ==
> > > 0x40fc+ 0xe + 0xffff8808b5500000 ==
> > > 0xffff8808b5540fce.
> > >
> > > That address is readable in the crash dump:
> > >
> > > crash> x/8b 0x0000000000040fc0+0xe+0xffff8808b5500000
> > > 0xffff8808b5540fce: 0x00 0x00 0x00 0x00 0x00 0x00
> > > 0x00 0x00
> > >
> > > And why does the page fault show 0x40fc0 as the faulting address? It
> > > should be 0xffff8808b5540fce and it shouldn't have caused a page fault.
> > >
> > > What am I missing?
> >
> > Random guess: Is that page marked read-only perhaps ?
>
> It shouldn't be. :) How can I get this info via the crash dump? The
> memory was allocated with dma_alloc_coherent(). Why would the page
> fault occur on 0x40fc0 though? That makes me think my analysis so far
> is incorrect.

Hmm, good point. Do you have the Code: line from the oops ?
Does that match the disassembly ?

Dave

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/