Re: [PATCH 01/11] pagewalk: update page table walker core

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Fri, Feb 21, 2014 at 01:43:20AM -0500, Sasha Levin wrote:
> On 02/20/2014 10:20 PM, Naoya Horiguchi wrote:
> > Hi Sasha,
> > 
> > On Thu, Feb 20, 2014 at 06:47:56PM -0500, Sasha Levin wrote:
> >> Hi Naoya,
> >>
> >> This patch seems to trigger a NULL ptr deref here. I didn't have a change to look into it yet
> >> but here's the spew:
> > 
> > Thanks for reporting.
> > I'm not sure what caused this bug from the kernel message. But in my guessing,
> > it seems that the NULL pointer is deep inside lockdep routine __lock_acquire(),
> > so if we find out which pointer was NULL, it might be useful to bisect which
> > the proble is (page table walker or lockdep, or both.)
> 
> This actually points to walk_pte_range() trying to lock a NULL spinlock. It happens when we call
> pte_offset_map_lock() and get a NULL ptl out of pte_lockptr().

I don't think page->ptl was NULL, because if so we hit NULL pointer dereference
outside __lock_acquire() (it's derefered in __raw_spin_lock()).
Maybe page->ptl->lock_dep was NULL. I'll digging it more to find out how we failed
to set this lock_dep thing.

> > BTW, just from curiousity, in my build environment many of kernel functions
> > are inlined, so should not be shown in kernel message. But in your report
> > we can see the symbols like walk_pte_range() and __lock_acquire() which never
> > appear in my kernel. How did you do it? I turned off CONFIG_OPTIMIZE_INLINING,
> > but didn't make it.
> 
> I'm really not sure. I've got a bunch of debug options enabled and it just seems to do the trick.
> 
> Try CONFIG_READABLE_ASM maybe?

Hmm, it makes no change, can I have your config?

Thanks,
Naoya

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@xxxxxxxxx.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@xxxxxxxxx";> email@xxxxxxxxx </a>




[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Bugtraq]     [Linux]     [Linux OMAP]     [Linux MIPS]     [ECOS]     [Asterisk Internet PBX]     [Linux API]