Messages in this thread | | | From | Mel Gorman <> | Subject | [PATCH 0/2] Fixes for node alignment and flatmem assumptions | Date | Fri, 19 May 2006 14:42:41 +0100 (IST) |
| |
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 - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |