blob: 7dfa579ab24c61761db8446c11fcb63e2ab6c5b8 [file] [log] [blame]
Linus Torvalds1da177e2005-04-16 15:20:36 -07001#include <linux/kernel.h>
2#include <linux/mm.h>
3#include <linux/swap.h>
4
5void show_mem(void)
6{
Yoichi Yuasab4819b52005-06-25 14:54:31 -07007#ifndef CONFIG_NEED_MULTIPLE_NODES /* XXX(hch): later.. */
Linus Torvalds1da177e2005-04-16 15:20:36 -07008 int pfn, total = 0, reserved = 0;
9 int shared = 0, cached = 0;
10 int highmem = 0;
11 struct page *page;
12
13 printk("Mem-info:\n");
14 show_free_areas();
Linus Torvalds1da177e2005-04-16 15:20:36 -070015 pfn = max_mapnr;
16 while (pfn-- > 0) {
Atsushi Nemotof4dee852006-07-13 23:01:50 +090017 if (!pfn_valid(pfn))
18 continue;
Linus Torvalds1da177e2005-04-16 15:20:36 -070019 page = pfn_to_page(pfn);
20 total++;
21 if (PageHighMem(page))
22 highmem++;
23 if (PageReserved(page))
24 reserved++;
25 else if (PageSwapCache(page))
26 cached++;
27 else if (page_count(page))
28 shared += page_count(page) - 1;
29 }
30 printk("%d pages of RAM\n", total);
Ralf Baechle21a151d2007-10-11 23:46:15 +010031 printk("%d pages of HIGHMEM\n", highmem);
32 printk("%d reserved pages\n", reserved);
33 printk("%d pages shared\n", shared);
34 printk("%d pages swap cached\n", cached);
Linus Torvalds1da177e2005-04-16 15:20:36 -070035#endif
36}