Re: [RFC] free_area[] bitmap elimination [0/3]

William Lee Irwin III
2004-08-21T02:55:43Z

On Sat, Aug 21, 2004 at 11:31:21AM +0900, Hiroyuki KAMEZAWA wrote:
> This patch removes bitmap from buddy allocator used in
> alloc_pages()/free_pages() in the kernel 2.6.8.1.
> Currently, Linux's page allocator uses bitmaps to record an order
> of a free page.
> This patch removes bitmap from buddy allocator, and uses
> page->private field to record an order of a page.
> My purpose is to reduce complexity of buddy allocator, when we want to
> hotplug memory. For memory hotplug, we have to resize memory management
> structures. Major two of them are mem_map and bitmap.If this patch removes
> bitmap from buddy allocator, resizeing bitmap will be needless.
> I tested this patch on my small PC box(Celeron900MHz,256MB memory)
> and a server machine(Xeon x 2, 4GB memory).

Complexity maybe. But one serious issue this addresses beyond the needs
of hotplug memory is that the buddy bitmaps are a heavily random-access
data structures not used elsewhere. Consolidating them into the page
structures should improve cache locality and motivate this patch beyond
just the needs of hotplug memory. Furthermore, the patch also reduces
the kernel's overall memory footprint by a small amount.

However, I'm concerned about the effectiveness of this specific
algorithm for coalescing. A more detailed description may help explain
why the effectiveness of coalescing is preserved.

-- wli