Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

at v3.19-rc2 55 lines 1.4 kB view raw
1/* 2 * Generic show_mem() implementation 3 * 4 * Copyright (C) 2008 Johannes Weiner <hannes@saeurebad.de> 5 * All code subject to the GPL version 2. 6 */ 7 8#include <linux/mm.h> 9#include <linux/nmi.h> 10#include <linux/quicklist.h> 11#include <linux/cma.h> 12 13void show_mem(unsigned int filter) 14{ 15 pg_data_t *pgdat; 16 unsigned long total = 0, reserved = 0, highmem = 0; 17 18 printk("Mem-Info:\n"); 19 show_free_areas(filter); 20 21 for_each_online_pgdat(pgdat) { 22 unsigned long flags; 23 int zoneid; 24 25 pgdat_resize_lock(pgdat, &flags); 26 for (zoneid = 0; zoneid < MAX_NR_ZONES; zoneid++) { 27 struct zone *zone = &pgdat->node_zones[zoneid]; 28 if (!populated_zone(zone)) 29 continue; 30 31 total += zone->present_pages; 32 reserved += zone->present_pages - zone->managed_pages; 33 34 if (is_highmem_idx(zoneid)) 35 highmem += zone->present_pages; 36 } 37 pgdat_resize_unlock(pgdat, &flags); 38 } 39 40 printk("%lu pages RAM\n", total); 41 printk("%lu pages HighMem/MovableOnly\n", highmem); 42#ifdef CONFIG_CMA 43 printk("%lu pages reserved\n", (reserved - totalcma_pages)); 44 printk("%lu pages cma reserved\n", totalcma_pages); 45#else 46 printk("%lu pages reserved\n", reserved); 47#endif 48#ifdef CONFIG_QUICKLIST 49 printk("%lu pages in pagetable cache\n", 50 quicklist_total_size()); 51#endif 52#ifdef CONFIG_MEMORY_FAILURE 53 printk("%lu pages hwpoisoned\n", atomic_long_read(&num_poisoned_pages)); 54#endif 55}