memblock: Reimplement memblock allocation using reverse free area iterator
authorTejun Heo <tj@kernel.org>
Thu, 8 Dec 2011 18:22:09 +0000 (10:22 -0800)
committerTejun Heo <tj@kernel.org>
Thu, 8 Dec 2011 18:22:09 +0000 (10:22 -0800)
commit7bd0b0f0da3b1ec11cbcc798eb0ef747a1184077
treeef285a020ffc04250b7327f0e9876a5988aa600e
parent0ee332c1451869963626bf9cac88f165a90990e1
memblock: Reimplement memblock allocation using reverse free area iterator

Now that all early memory information is in memblock when enabled, we
can implement reverse free area iterator and use it to implement NUMA
aware allocator which is then wrapped for simpler variants instead of
the confusing and inefficient mending of information in separate NUMA
aware allocator.

Implement for_each_free_mem_range_reverse(), use it to reimplement
memblock_find_in_range_node() which in turn is used by all allocators.

The visible allocator interface is inconsistent and can probably use
some cleanup too.

Signed-off-by: Tejun Heo <tj@kernel.org>
Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Cc: Yinghai Lu <yinghai@kernel.org>
include/linux/memblock.h
mm/memblock.c