For buddy system initialization, the holes between banks adjacent will be released to buddy allocator?

Russell King - ARM Linux linux at arm.linux.org.uk
Mon Aug 27 06:54:48 EDT 2012


On Mon, Aug 27, 2012 at 06:30:42PM +0800, Li Haifeng wrote:
> 2012/8/27 Russell King - ARM Linux <linux at arm.linux.org.uk>:
> > On Mon, Aug 27, 2012 at 10:42:40AM +0800, Li Haifeng wrote:
> >> Just now, I tested it on my ARM development board.
> >>
> >> The holes between banks does be released to buddy allocator. And the
> >> buddy system will allocate holes for thread, which will cause fault.
> >> Is it right?
> >
> > Could you rephrase your question please?
> 
> The code below is to release free memory to buddy allocator, according
> to node_bootmem_map.
> 
> The lines 180~181 get the low memory's range, and the range includes holes.
> But while releasing the memory to buddy allocator, the code doesn't
> prevent the holes from releasing to the buddy allocator. So, if the
> holes are allocated to thread, fault will happen.

The whole purpose _is_ to allow these pages to be re-used, rather than
being tied up uselessly in the map where they're not being used.



More information about the linux-arm-kernel mailing list