Thread (6 messages) flat view 6 messages, 2 authors, 2016-01-11

Re: simple_alloc space tramples initrd

From: <hidden>
Date: 2016-01-11 16:57:26

On Mon, Jan 11, 2016 at 02:09:34PM +1100, Michael Ellerman wrote:
On Fri, 2016-01-08 at 09:45 -0800, dwalker@fifo99.com wrote:
quoted
Hi,

A powerpc machine I'm working on has this problem where the
simple_alloc_init() area is trampling the initrd. The two are placed fairly
close together.
Which machine / platform?
It's not upstream yet. I'm still putting the patches together, that's when this
issue came up. I can send an RFC if you want to look at the patches.
 
quoted
I have a fix for this proposed to add a section into
arch/powerpc/boot/zImage.lds.S called "mallocarea" to account for this space,
but not all powerpc platforms use simple_alloc_init(). So for those platforms
it's a waste.
Yeah I don't really like the sound of that. We could do it if it was behind a
CONFIG option, but hopefully there is a better solution.
quoted
Another alternative is to alter the bootloader to place more space between
the kernel image and initrd image.

I wanted to get some feedback on the right way to fix this. It seems like it
could be a generic issue on powerpc, or it's possibly already fixed someplace
and I just haven't noticed.
I don't really know that code very well. But ideally either the boot loader
gives you space, or the platform boot code is smart enough to detect that there
is insufficient room and puts the heap somewhere else.
It seems like the kernel should be able to handle it. I believe the bootloader passes
the initrd location , but I don't think it's evaluated till later in the boot up. For
simple_alloc_init() it seems all platforms just assume the space is empty without checking.

Daniel
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help