Re: [BUG] x86: bootmem broken on SGI UV

From: Russ Anderson
Date: Sat Oct 09 2010 - 09:03:56 EST


Yes, Yinghai's patch fixes the problem.
Thank you very much.


On Fri, Oct 08, 2010 at 03:57:31PM -0700, Yinghai Lu wrote:
> On 10/08/2010 02:34 PM, Russ Anderson wrote:
>
> After looking at the changelog, it turns out it is broken for a while by
> following commit
>
> |commit 8716273caef7f55f39fe4fc6c69c5f9f197f41f1
> |Author: David Rientjes <rientjes@xxxxxxxxxx>
> |Date: Fri Sep 25 15:20:04 2009 -0700
> |
> | x86: Export srat physical topology
>
> before that commit, register_active_regions() is called SRAT memory entries.
>
> Try to use nodememblk_range[] instead of nodes[].
>
> For stable tree: from 2.6.33 to 2.3.36 need this patch by
> changing memblock_x86_register_active_regions() with e820_register_active_regions()
>
> Reported-by: Russ Anderson <rja@xxxxxxx>
> Signed-off-by: Yinghai Lu <yinghai@xxxxxxxxxx>
> Cc: stable@xxxxxxxxxx
>
> ---
> arch/x86/mm/srat_64.c | 8 +++++---
> 1 file changed, 5 insertions(+), 3 deletions(-)
>
> Index: linux-2.6/arch/x86/mm/srat_64.c
> ===================================================================
> --- linux-2.6.orig/arch/x86/mm/srat_64.c
> +++ linux-2.6/arch/x86/mm/srat_64.c
> @@ -421,9 +421,11 @@ int __init acpi_scan_nodes(unsigned long
> return -1;
> }
>
> - for_each_node_mask(i, nodes_parsed)
> - memblock_x86_register_active_regions(i, nodes[i].start >> PAGE_SHIFT,
> - nodes[i].end >> PAGE_SHIFT);
> + for (i = 0; i < num_node_memblks; i++)
> + memblock_x86_register_active_regions(memblk_nodeid[i],
> + node_memblk_range[i].start >> PAGE_SHIFT,
> + node_memblk_range[i].end >> PAGE_SHIFT);
> +
> /* for out of order entries in SRAT */
> sort_node_map();
> if (!nodes_cover_memory(nodes)) {

--
Russ Anderson, OS RAS/Partitioning Project Lead
SGI - Silicon Graphics Inc rja@xxxxxxx
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/