[PATCH 5/6] Have ia64 use add_active_range() and free_area_init_nodes
Mel Gorman
mel at csn.ul.ie
Tue May 16 08:44:35 EST 2006
> diff -rup -X /usr/src/patchset-0.5/bin//dontdiff linux-2.6.17-rc4-mm4-clean/mm/page_alloc.c linux-2.6.17-rc4-mm4-ia64_force_alignment/mm/page_alloc.c
> --- linux-2.6.17-rc4-mm4-clean/mm/page_alloc.c 2006-05-15 10:37:55.000000000 +0100
> +++ linux-2.6.17-rc4-mm4-ia64_force_alignment/mm/page_alloc.c 2006-05-15 13:10:42.000000000 +0100
> @@ -2640,14 +2640,20 @@ void __init free_area_init_nodes(unsigne
> {
> unsigned long nid;
> int zone_index;
> + unsigned long lowest_pfn = find_min_pfn_with_active_regions();
> +
> + lowest_pfn = zone_boundary_align_pfn(lowest_pfn);
> + arch_max_dma_pfn = zone_boundary_align_pfn(arch_max_dma_pfn);
> + arch_max_dma32_pfn = zone_boundary_align_pfn(arch_max_dma32_pfn);
> + arch_max_low_pfn = zone_boundary_align_pfn(arch_max_low_pfn);
> + arch_max_high_pfn = zone_boundary_align_pfn(arch_max_high_pfn);
>
> /* Record where the zone boundaries are */
> memset(arch_zone_lowest_possible_pfn, 0,
> sizeof(arch_zone_lowest_possible_pfn));
> memset(arch_zone_highest_possible_pfn, 0,
> sizeof(arch_zone_highest_possible_pfn));
> - arch_zone_lowest_possible_pfn[ZONE_DMA] =
> - find_min_pfn_with_active_regions();
> + arch_zone_lowest_possible_pfn[ZONE_DMA] = lowest_pfn;
> arch_zone_highest_possible_pfn[ZONE_DMA] = arch_max_dma_pfn;
> arch_zone_highest_possible_pfn[ZONE_DMA32] = arch_max_dma32_pfn;
> arch_zone_highest_possible_pfn[ZONE_NORMAL] = arch_max_low_pfn;
>
Ok, this patch is broken in a number of ways. It doesn't help the IA64
problem at all and two other machine configurations failed with the patch
applied during regression testing. Please drop and I'll figure out what
the correct solution is to your IA64 machine not booting.
--
Mel Gorman
Part-time Phd Student Linux Technology Center
University of Limerick IBM Dublin Software Lab
More information about the Linuxppc-dev
mailing list