forked from mirrors/linux
		
	 31e12cb679
			
		
	
	
		31e12cb679
		
	
	
	
	
		
			
			Based on 1 normalized pattern(s): all code subject to the gpl version 2 extracted by the scancode license scanner the SPDX license identifier GPL-2.0-only has been chosen to replace the boilerplate/reference in 1 file(s). Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Reviewed-by: Armijn Hemel <armijn@tjaldur.nl> Reviewed-by: Allison Randal <allison@lohutok.net> Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190531190114.938134445@linutronix.de Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
		
			
				
	
	
		
			49 lines
		
	
	
	
		
			1.2 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			49 lines
		
	
	
	
		
			1.2 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| // SPDX-License-Identifier: GPL-2.0-only
 | |
| /*
 | |
|  * Generic show_mem() implementation
 | |
|  *
 | |
|  * Copyright (C) 2008 Johannes Weiner <hannes@saeurebad.de>
 | |
|  */
 | |
| 
 | |
| #include <linux/mm.h>
 | |
| #include <linux/quicklist.h>
 | |
| #include <linux/cma.h>
 | |
| 
 | |
| void show_mem(unsigned int filter, nodemask_t *nodemask)
 | |
| {
 | |
| 	pg_data_t *pgdat;
 | |
| 	unsigned long total = 0, reserved = 0, highmem = 0;
 | |
| 
 | |
| 	printk("Mem-Info:\n");
 | |
| 	show_free_areas(filter, nodemask);
 | |
| 
 | |
| 	for_each_online_pgdat(pgdat) {
 | |
| 		int zoneid;
 | |
| 
 | |
| 		for (zoneid = 0; zoneid < MAX_NR_ZONES; zoneid++) {
 | |
| 			struct zone *zone = &pgdat->node_zones[zoneid];
 | |
| 			if (!populated_zone(zone))
 | |
| 				continue;
 | |
| 
 | |
| 			total += zone->present_pages;
 | |
| 			reserved += zone->present_pages - zone_managed_pages(zone);
 | |
| 
 | |
| 			if (is_highmem_idx(zoneid))
 | |
| 				highmem += zone->present_pages;
 | |
| 		}
 | |
| 	}
 | |
| 
 | |
| 	printk("%lu pages RAM\n", total);
 | |
| 	printk("%lu pages HighMem/MovableOnly\n", highmem);
 | |
| 	printk("%lu pages reserved\n", reserved);
 | |
| #ifdef CONFIG_CMA
 | |
| 	printk("%lu pages cma reserved\n", totalcma_pages);
 | |
| #endif
 | |
| #ifdef CONFIG_QUICKLIST
 | |
| 	printk("%lu pages in pagetable cache\n",
 | |
| 		quicklist_total_size());
 | |
| #endif
 | |
| #ifdef CONFIG_MEMORY_FAILURE
 | |
| 	printk("%lu pages hwpoisoned\n", atomic_long_read(&num_poisoned_pages));
 | |
| #endif
 | |
| }
 |