37 lines
		
	
	
	
		
			889 B
			
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			37 lines
		
	
	
	
		
			889 B
			
		
	
	
	
		
			C
		
	
	
	
	
	
| #include <linux/kernel.h>
 | |
| #include <linux/mm.h>
 | |
| #include <linux/swap.h>
 | |
| 
 | |
| void show_mem(void)
 | |
| {
 | |
| #ifndef CONFIG_NEED_MULTIPLE_NODES  /* XXX(hch): later.. */
 | |
| 	int pfn, total = 0, reserved = 0;
 | |
| 	int shared = 0, cached = 0;
 | |
| 	int highmem = 0;
 | |
| 	struct page *page;
 | |
| 
 | |
| 	printk("Mem-info:\n");
 | |
| 	show_free_areas();
 | |
| 	printk("Free swap:       %6ldkB\n", nr_swap_pages<<(PAGE_SHIFT-10));
 | |
| 	pfn = max_mapnr;
 | |
| 	while (pfn-- > 0) {
 | |
| 		if (!pfn_valid(pfn))
 | |
| 			continue;
 | |
| 		page = pfn_to_page(pfn);
 | |
| 		total++;
 | |
| 		if (PageHighMem(page))
 | |
| 			highmem++;
 | |
| 		if (PageReserved(page))
 | |
| 			reserved++;
 | |
| 		else if (PageSwapCache(page))
 | |
| 			cached++;
 | |
| 		else if (page_count(page))
 | |
| 			shared += page_count(page) - 1;
 | |
| 	}
 | |
| 	printk("%d pages of RAM\n", total);
 | |
| 	printk("%d pages of HIGHMEM\n", highmem);
 | |
| 	printk("%d reserved pages\n", reserved);
 | |
| 	printk("%d pages shared\n", shared);
 | |
| 	printk("%d pages swap cached\n", cached);
 | |
| #endif
 | |
| }
 | 
