[PATCH 0/2] Fixes for node alignment and flatmem assumptions

Mel Gorman
2006-05-19T13:42:41Z

After almost 3 days of banging the head on the keyboard, it was discovered
why arch-independent zone-sizing failed on IA64 for the configuration
posted on http://www.zip.com.au/~akpm/linux/patches/stuff/config-ia64 .

The two patches in this set address the following;

1. The buddy allocator requires that the node_mem_map be aligned on
a MAX_ORDER boundary. Patch 1 from Bob Picco's patch aligns the
node_map_map correctly.

2. This is the one that was giving me keyboard face. The FLATMEM memory
model assumes that

mem_map[0] == NODE_DATA(0)->node_mem_map == PFN 0

This is not the case on IA64 with arch-independent zone sizing because
NODE_DATA(0)->node_mem_map starts where the first valid page frame is. On
my test machine, that is PFN 1025 but it probably varies. Patch 2 from Andy
Whitcroft relaxes the assumption that NODE_DATA(0)->node_mem_map == PFN 0 .

These patches apply to 2.6.17-rc4-mm1 and are independent of
architecture-independent zone sizing. Patch 1 in particular fixes a
real problem that is just difficult to trigger. However, once applied,
have-ia64-use-add_active_range-and-free_area_init_nodes.patch will work again.

2.6.17-rc4-mm1 with this patchset have been boot-tested by me
and verified that /proc/zoneinfo is ok on x86, ppc64, x86_64 and
ia64 in a variety of configurations. Bob Picco also says that both
patches passed a test with mem=750M and 4Gb on a rx2600 (ia64) with
large memory holes. They have also been successfully tested with
have-ia64-use-add_active_range-and-free_area_init_nodes.patch added back in.
--
--
Mel Gorman
Part-time Phd Student Linux Technology Center
University of Limerick IBM Dublin Software Lab