Re: Kernel crash in 2.6.32.6 / bcm1480 with 16k page size

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

 



On Fri, Jan 29, 2010 at 08:24:07AM -0500, Ralf Baechle wrote:
> On Thu, Jan 28, 2010 at 07:55:14AM -0800, Guenter Roeck wrote:
> > 
> > I get the following kernel crash when running a 2.6.32.6 kernel on a bcm1480 cpu.
> > It only happens if I configure a page size of 16k or 64k; 4k page size is fine.
> > 
> > A similar problem was recently fixed for ppc. It turned out to be a problem in ppc
> > specific memory management code, so that fix won't help here.
> > 
> > Has anyone else seen this before ? Any idea where to start looking for the problem ?
> 
> Supposedly this was working for SB1.  I suggest you find an older kernel
> version that works for your with 16k pages then use git bisect to find
> the problem.
> 
It used to work with 2.6.27.

However, bisect won't work, because the code in question (per cpu memory allocation) was
completely rewritten since then.

The new percpu code tries to allocate memory just below VMALLOC_END. This works on sb1 for
a page size of 4k, but not for a page size of 16k and 64k. The value of VMALLOC_END depends
on the page size.

ppc had a similar problem. It had nothing to do with the new percpu memory allocation code,
but with memory alocation close to VMALLOC_END. In other words, it was a day-one bug which
was never noticed because allocating memory in that address space is highly unlikely.

I suspect the same is the case here. I could write some code for 2.6.27, to test the same
memory allocation there, but I am quite sure the problem is going to show up there as well.

So first question would be: Has anyone successfully loaded a 64 bit mips kernel with 2.6.32 
and a page size of 16k or 64k ? This would at least help me reducing the problem to sb1.

Thanks,
Guenter


[Index of Archives]     [Linux MIPS Home]     [LKML Archive]     [Linux ARM Kernel]     [Linux ARM]     [Linux]     [Git]     [Yosemite News]     [Linux SCSI]     [Linux Hams]

  Powered by Linux