blob: 57df1c38e3031a65ae1ace1a5e524476f55d6fae [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();
15 printk("Free swap: %6ldkB\n", nr_swap_pages<<(PAGE_SHIFT-10));
16 pfn = max_mapnr;
17 while (pfn-- > 0) {
Atsushi Nemotof4dee852006-07-13 23:01:50 +090018 if (!pfn_valid(pfn))
19 continue;
Linus Torvalds1da177e2005-04-16 15:20:36 -070020 page = pfn_to_page(pfn);
21 total++;
22 if (PageHighMem(page))
23 highmem++;
24 if (PageReserved(page))
25 reserved++;
26 else if (PageSwapCache(page))
27 cached++;
28 else if (page_count(page))
29 shared += page_count(page) - 1;
30 }
31 printk("%d pages of RAM\n", total);
Ralf Baechle21a151d2007-10-11 23:46:15 +010032 printk("%d pages of HIGHMEM\n", highmem);
33 printk("%d reserved pages\n", reserved);
34 printk("%d pages shared\n", shared);
35 printk("%d pages swap cached\n", cached);
Linus Torvalds1da177e2005-04-16 15:20:36 -070036#endif
37}