Guenter Roeck wrote:
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.
Yes, I routinely run with both 64K and 16K page sizes on 2.6.32 and
2.6.33-rc*. I have not seen any crashes that can not be easily explained.
David Daney.