|
@@ -20,53 +20,6 @@
|
|
|
#include <asm/tlb.h>
|
|
|
#include <asm/tlbflush.h>
|
|
|
|
|
|
-void show_mem(void)
|
|
|
-{
|
|
|
- int total = 0, reserved = 0;
|
|
|
- int shared = 0, cached = 0;
|
|
|
- int highmem = 0;
|
|
|
- struct page *page;
|
|
|
- pg_data_t *pgdat;
|
|
|
- unsigned long i;
|
|
|
- unsigned long flags;
|
|
|
-
|
|
|
- printk(KERN_INFO "Mem-info:\n");
|
|
|
- show_free_areas();
|
|
|
- for_each_online_pgdat(pgdat) {
|
|
|
- pgdat_resize_lock(pgdat, &flags);
|
|
|
- for (i = 0; i < pgdat->node_spanned_pages; ++i) {
|
|
|
- if (unlikely(i % MAX_ORDER_NR_PAGES == 0))
|
|
|
- touch_nmi_watchdog();
|
|
|
- page = pgdat_page_nr(pgdat, i);
|
|
|
- total++;
|
|
|
- if (PageHighMem(page))
|
|
|
- highmem++;
|
|
|
- if (PageReserved(page))
|
|
|
- reserved++;
|
|
|
- else if (PageSwapCache(page))
|
|
|
- cached++;
|
|
|
- else if (page_count(page))
|
|
|
- shared += page_count(page) - 1;
|
|
|
- }
|
|
|
- pgdat_resize_unlock(pgdat, &flags);
|
|
|
- }
|
|
|
- printk(KERN_INFO "%d pages of RAM\n", total);
|
|
|
- printk(KERN_INFO "%d pages of HIGHMEM\n", highmem);
|
|
|
- printk(KERN_INFO "%d reserved pages\n", reserved);
|
|
|
- printk(KERN_INFO "%d pages shared\n", shared);
|
|
|
- printk(KERN_INFO "%d pages swap cached\n", cached);
|
|
|
-
|
|
|
- printk(KERN_INFO "%lu pages dirty\n", global_page_state(NR_FILE_DIRTY));
|
|
|
- printk(KERN_INFO "%lu pages writeback\n",
|
|
|
- global_page_state(NR_WRITEBACK));
|
|
|
- printk(KERN_INFO "%lu pages mapped\n", global_page_state(NR_FILE_MAPPED));
|
|
|
- printk(KERN_INFO "%lu pages slab\n",
|
|
|
- global_page_state(NR_SLAB_RECLAIMABLE) +
|
|
|
- global_page_state(NR_SLAB_UNRECLAIMABLE));
|
|
|
- printk(KERN_INFO "%lu pages pagetables\n",
|
|
|
- global_page_state(NR_PAGETABLE));
|
|
|
-}
|
|
|
-
|
|
|
/*
|
|
|
* Associate a virtual page frame with a given physical page frame
|
|
|
* and protection flags for that frame.
|