|
@@ -44,37 +44,34 @@ char empty_zero_page[PAGE_SIZE] __attribute__((__aligned__(PAGE_SIZE)));
|
|
|
|
|
|
void show_mem(void)
|
|
|
{
|
|
|
- int i, total = 0, reserved = 0;
|
|
|
- int shared = 0, cached = 0;
|
|
|
+ unsigned long i, total = 0, reserved = 0;
|
|
|
+ unsigned long shared = 0, cached = 0;
|
|
|
+ unsigned long flags;
|
|
|
struct page *page;
|
|
|
+ pg_data_t *pgdat;
|
|
|
|
|
|
printk("Mem-info:\n");
|
|
|
show_free_areas();
|
|
|
- i = max_mapnr;
|
|
|
- while (i-- > 0) {
|
|
|
- if (!pfn_valid(i))
|
|
|
- continue;
|
|
|
- page = pfn_to_page(i);
|
|
|
- total++;
|
|
|
- if (PageReserved(page))
|
|
|
- reserved++;
|
|
|
- else if (PageSwapCache(page))
|
|
|
- cached++;
|
|
|
- else if (page_count(page))
|
|
|
- shared += page_count(page) - 1;
|
|
|
+ for_each_online_pgdat(pgdat) {
|
|
|
+ pgdat_resize_lock(pgdat, &flags);
|
|
|
+ for (i = 0; i < pgdat->node_spanned_pages; i++) {
|
|
|
+ if (!pfn_valid(pgdat->node_start_pfn + i))
|
|
|
+ continue;
|
|
|
+ page = pfn_to_page(pgdat->node_start_pfn + i);
|
|
|
+ total++;
|
|
|
+ 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("%d pages of RAM\n", total);
|
|
|
- printk("%d reserved pages\n", reserved);
|
|
|
- printk("%d pages shared\n", shared);
|
|
|
- printk("%d pages swap cached\n", cached);
|
|
|
-
|
|
|
- printk("%lu pages dirty\n", global_page_state(NR_FILE_DIRTY));
|
|
|
- printk("%lu pages writeback\n", global_page_state(NR_WRITEBACK));
|
|
|
- printk("%lu pages mapped\n", global_page_state(NR_FILE_MAPPED));
|
|
|
- printk("%lu pages slab\n",
|
|
|
- global_page_state(NR_SLAB_RECLAIMABLE) +
|
|
|
- global_page_state(NR_SLAB_UNRECLAIMABLE));
|
|
|
- printk("%lu pages pagetables\n", global_page_state(NR_PAGETABLE));
|
|
|
+ printk("%ld pages of RAM\n", total);
|
|
|
+ printk("%ld reserved pages\n", reserved);
|
|
|
+ printk("%ld pages shared\n", shared);
|
|
|
+ printk("%ld pages swap cached\n", cached);
|
|
|
}
|
|
|
|
|
|
/*
|