[PARISC] Show more memory information and memory layout at bootup

Signed-off-by: Helge Deller <deller@gmx.de>
Signed-off-by: Kyle McMartin <kyle@parisc-linux.org>
This commit is contained in:
Helge Deller 2006-10-14 22:10:44 +02:00 коммит произвёл Kyle McMartin
Родитель 58554927f8
Коммит ce8420bb65
1 изменённых файлов: 47 добавлений и 1 удалений

Просмотреть файл

@ -24,6 +24,7 @@
#include <linux/pagemap.h> /* for release_pages and page_cache_release */ #include <linux/pagemap.h> /* for release_pages and page_cache_release */
#include <asm/pgalloc.h> #include <asm/pgalloc.h>
#include <asm/pgtable.h>
#include <asm/tlb.h> #include <asm/tlb.h>
#include <asm/pdc_chassis.h> #include <asm/pdc_chassis.h>
#include <asm/mmzone.h> #include <asm/mmzone.h>
@ -453,6 +454,9 @@ unsigned long pcxl_dma_start __read_mostly;
void __init mem_init(void) void __init mem_init(void)
{ {
int codesize, reservedpages, datasize, initsize;
int tmp;
high_memory = __va((max_pfn << PAGE_SHIFT)); high_memory = __va((max_pfn << PAGE_SHIFT));
#ifndef CONFIG_DISCONTIGMEM #ifndef CONFIG_DISCONTIGMEM
@ -466,8 +470,17 @@ void __init mem_init(void)
totalram_pages += free_all_bootmem_node(NODE_DATA(i)); totalram_pages += free_all_bootmem_node(NODE_DATA(i));
} }
#endif #endif
codesize = (unsigned long) &_etext - (unsigned long) &_text;
datasize = (unsigned long) &_edata - (unsigned long) &_etext;
initsize = (unsigned long) &__init_end - (unsigned long) &__init_begin;
printk(KERN_INFO "Memory: %luk available\n", num_physpages << (PAGE_SHIFT-10)); reservedpages = 0;
for (tmp = 0; tmp < max_low_pfn; tmp++)
/*
* Only count reserved RAM pages
*/
if (PageReserved(pfn_to_page(tmp)))
reservedpages++;
#ifdef CONFIG_PA11 #ifdef CONFIG_PA11
if (hppa_dma_ops == &pcxl_dma_ops) { if (hppa_dma_ops == &pcxl_dma_ops) {
@ -481,6 +494,39 @@ void __init mem_init(void)
vmalloc_start = SET_MAP_OFFSET(MAP_START); vmalloc_start = SET_MAP_OFFSET(MAP_START);
#endif #endif
printk(KERN_INFO "Memory: %luk/%luk available (%dk kernel code, %dk reserved, %dk data, %dk init, %ldk highmem)\n",
(unsigned long) nr_free_pages() << (PAGE_SHIFT-10),
num_physpages << (PAGE_SHIFT-10),
codesize >> 10,
reservedpages << (PAGE_SHIFT-10),
datasize >> 10,
initsize >> 10,
(unsigned long) (totalhigh_pages << (PAGE_SHIFT-10))
);
#ifdef CONFIG_DEBUG_KERNEL /* double-sanity-check paranoia */
printk("virtual kernel memory layout:\n"
" vmalloc : 0x%p - 0x%p (%4ld MB)\n"
" lowmem : 0x%p - 0x%p (%4ld MB)\n"
" .init : 0x%p - 0x%p (%4ld kB)\n"
" .data : 0x%p - 0x%p (%4ld kB)\n"
" .text : 0x%p - 0x%p (%4ld kB)\n",
(void*)VMALLOC_START, (void*)VMALLOC_END,
(VMALLOC_END - VMALLOC_START) >> 20,
__va(0), high_memory,
((unsigned long)high_memory - (unsigned long)__va(0)) >> 20,
&__init_begin, &__init_end,
((unsigned long)&__init_end - (unsigned long)&__init_begin) >> 10,
&_etext, &_edata,
((unsigned long)&_edata - (unsigned long)&_etext) >> 10,
&_text, &_etext,
((unsigned long)&_etext - (unsigned long)&_text) >> 10);
#endif
} }
unsigned long *empty_zero_page __read_mostly; unsigned long *empty_zero_page __read_mostly;