diff options
Diffstat (limited to 'arch/alpha/mm/numa.c')
-rw-r--r-- | arch/alpha/mm/numa.c | 45 |
1 files changed, 5 insertions, 40 deletions
diff --git a/arch/alpha/mm/numa.c b/arch/alpha/mm/numa.c index 10ab7833e83c..a13de49d1265 100644 --- a/arch/alpha/mm/numa.c +++ b/arch/alpha/mm/numa.c | |||
@@ -19,7 +19,6 @@ | |||
19 | #include <asm/pgalloc.h> | 19 | #include <asm/pgalloc.h> |
20 | 20 | ||
21 | pg_data_t node_data[MAX_NUMNODES]; | 21 | pg_data_t node_data[MAX_NUMNODES]; |
22 | bootmem_data_t node_bdata[MAX_NUMNODES]; | ||
23 | EXPORT_SYMBOL(node_data); | 22 | EXPORT_SYMBOL(node_data); |
24 | 23 | ||
25 | #undef DEBUG_DISCONTIG | 24 | #undef DEBUG_DISCONTIG |
@@ -141,7 +140,7 @@ setup_memory_node(int nid, void *kernel_end) | |||
141 | printk(" not enough mem to reserve NODE_DATA"); | 140 | printk(" not enough mem to reserve NODE_DATA"); |
142 | return; | 141 | return; |
143 | } | 142 | } |
144 | NODE_DATA(nid)->bdata = &node_bdata[nid]; | 143 | NODE_DATA(nid)->bdata = &bootmem_node_data[nid]; |
145 | 144 | ||
146 | printk(" Detected node memory: start %8lu, end %8lu\n", | 145 | printk(" Detected node memory: start %8lu, end %8lu\n", |
147 | node_min_pfn, node_max_pfn); | 146 | node_min_pfn, node_max_pfn); |
@@ -304,8 +303,9 @@ void __init paging_init(void) | |||
304 | dma_local_pfn = virt_to_phys((char *)MAX_DMA_ADDRESS) >> PAGE_SHIFT; | 303 | dma_local_pfn = virt_to_phys((char *)MAX_DMA_ADDRESS) >> PAGE_SHIFT; |
305 | 304 | ||
306 | for_each_online_node(nid) { | 305 | for_each_online_node(nid) { |
307 | unsigned long start_pfn = node_bdata[nid].node_boot_start >> PAGE_SHIFT; | 306 | bootmem_data_t *bdata = &bootmem_node_data[nid]; |
308 | unsigned long end_pfn = node_bdata[nid].node_low_pfn; | 307 | unsigned long start_pfn = bdata->node_min_pfn; |
308 | unsigned long end_pfn = bdata->node_low_pfn; | ||
309 | 309 | ||
310 | if (dma_local_pfn >= end_pfn - start_pfn) | 310 | if (dma_local_pfn >= end_pfn - start_pfn) |
311 | zones_size[ZONE_DMA] = end_pfn - start_pfn; | 311 | zones_size[ZONE_DMA] = end_pfn - start_pfn; |
@@ -313,7 +313,7 @@ void __init paging_init(void) | |||
313 | zones_size[ZONE_DMA] = dma_local_pfn; | 313 | zones_size[ZONE_DMA] = dma_local_pfn; |
314 | zones_size[ZONE_NORMAL] = (end_pfn - start_pfn) - dma_local_pfn; | 314 | zones_size[ZONE_NORMAL] = (end_pfn - start_pfn) - dma_local_pfn; |
315 | } | 315 | } |
316 | free_area_init_node(nid, NODE_DATA(nid), zones_size, start_pfn, NULL); | 316 | free_area_init_node(nid, zones_size, start_pfn, NULL); |
317 | } | 317 | } |
318 | 318 | ||
319 | /* Initialize the kernel's ZERO_PGE. */ | 319 | /* Initialize the kernel's ZERO_PGE. */ |
@@ -359,38 +359,3 @@ void __init mem_init(void) | |||
359 | mem_stress(); | 359 | mem_stress(); |
360 | #endif | 360 | #endif |
361 | } | 361 | } |
362 | |||
363 | void | ||
364 | show_mem(void) | ||
365 | { | ||
366 | long i,free = 0,total = 0,reserved = 0; | ||
367 | long shared = 0, cached = 0; | ||
368 | int nid; | ||
369 | |||
370 | printk("\nMem-info:\n"); | ||
371 | show_free_areas(); | ||
372 | printk("Free swap: %6ldkB\n", nr_swap_pages<<(PAGE_SHIFT-10)); | ||
373 | for_each_online_node(nid) { | ||
374 | unsigned long flags; | ||
375 | pgdat_resize_lock(NODE_DATA(nid), &flags); | ||
376 | i = node_spanned_pages(nid); | ||
377 | while (i-- > 0) { | ||
378 | struct page *page = nid_page_nr(nid, i); | ||
379 | total++; | ||
380 | if (PageReserved(page)) | ||
381 | reserved++; | ||
382 | else if (PageSwapCache(page)) | ||
383 | cached++; | ||
384 | else if (!page_count(page)) | ||
385 | free++; | ||
386 | else | ||
387 | shared += page_count(page) - 1; | ||
388 | } | ||
389 | pgdat_resize_unlock(NODE_DATA(nid), &flags); | ||
390 | } | ||
391 | printk("%ld pages of RAM\n",total); | ||
392 | printk("%ld free pages\n",free); | ||
393 | printk("%ld reserved pages\n",reserved); | ||
394 | printk("%ld pages shared\n",shared); | ||
395 | printk("%ld pages swap cached\n",cached); | ||
396 | } | ||