Re: [PATCH 1/2] Align the node_mem_map endpoints to a MAX_ORDER boundary

Andrew Morton
2006-05-19T20:49:48Z

Mel Gorman <mel@csn.ul.ie> wrote:
>
> Andy added code to buddy allocator which does not require the zone's
> endpoints to be aligned to MAX_ORDER. An issue is that the buddy
> allocator requires the node_mem_map's endpoints to be MAX_ORDER aligned.
> Otherwise __page_find_buddy could compute a buddy not in node_mem_map for
> partial MAX_ORDER regions at zone's endpoints. page_is_buddy will detect
> that these pages at endpoints are not PG_buddy (they were zeroed out by
> bootmem allocator and not part of zone). Of course the negative here is
> we could waste a little memory but the positive is eliminating all the
> old checks for zone boundary conditions.
>
> SPARSEMEM won't encounter this issue because of MAX_ORDER size constraint
> when SPARSEMEM is configured. ia64 VIRTUAL_MEM_MAP doesn't need the
> logic either because the holes and endpoints are handled differently.
> This leaves checking alloc_remap and other arches which privately allocate
> for node_mem_map.

Do we think we need this in 2.6.17?