[Hotplug_sig] Re: [Lhms-devel] 2.6.10-rc2-mm4-mhp3

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Thu, 2004-12-16 at 19:21, Hiroyuki KAMEZAWA wrote:
>  test-kernel-kamezawa/arch/ia64/mm/contig.c |    1 +
>  1 files changed, 1 insertion(+)
> 
> diff -puN arch/ia64/mm/contig.c~confit_fix arch/ia64/mm/contig.c
> --- test-kernel/arch/ia64/mm/contig.c~confit_fix	2004-12-17 11:52:40.000000000 +0900
> +++ test-kernel-kamezawa/arch/ia64/mm/contig.c	2004-12-17 11:52:40.000000000 +0900
> @@ -279,6 +279,7 @@ paging_init (void)
>  		vmem_map = (struct page *) vmalloc_end;
>  		efi_memmap_walk(create_mem_map_page_table, NULL);
>  
> +		mem_map = vmem_map;
>  		NODE_DATA(0)->node_mem_map = vmem_map;
>  		free_area_init_node(0, &contig_page_data, zones_size,
>  				    0, zholes_size);

That may work around the problem, but it's not the correct solution.  

free_area_init_node() calls alloc_node_mem_map() which should set up
mem_map.  Could you put some printks in there and see why this isn't
happening?  

You need to check these two conditions:

        /*
         * Make sure that the architecture hasn't already allocated
         * a node_mem_map, and that the node contains memory.
         */
        if (pgdat->node_mem_map || !pgdat->node_spanned_pages)
                return;
...
        if (pgdat == NODE_DATA(0))
                mem_map = NODE_DATA(0)->node_mem_map;


-- Dave


[Index of Archives]     [Linux Kernel]     [Linux DVB]     [Asterisk Internet PBX]     [DCCP]     [Netdev]     [X.org]     [Util Linux NG]     [Fedora Women]     [ALSA Devel]     [Linux USB]

  Powered by Linux