summaryrefslogtreecommitdiffstats
path: root/kernel/lib/show_mem.c
diff options
context:
space:
mode:
authorYunhong Jiang <yunhong.jiang@intel.com>2015-08-04 12:17:53 -0700
committerYunhong Jiang <yunhong.jiang@intel.com>2015-08-04 15:44:42 -0700
commit9ca8dbcc65cfc63d6f5ef3312a33184e1d726e00 (patch)
tree1c9cafbcd35f783a87880a10f85d1a060db1a563 /kernel/lib/show_mem.c
parent98260f3884f4a202f9ca5eabed40b1354c489b29 (diff)
Add the rt linux 4.1.3-rt3 as base
Import the rt linux 4.1.3-rt3 as OPNFV kvm base. It's from git://git.kernel.org/pub/scm/linux/kernel/git/rt/linux-rt-devel.git linux-4.1.y-rt and the base is: commit 0917f823c59692d751951bf5ea699a2d1e2f26a2 Author: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Date: Sat Jul 25 12:13:34 2015 +0200 Prepare v4.1.3-rt3 Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> We lose all the git history this way and it's not good. We should apply another opnfv project repo in future. Change-Id: I87543d81c9df70d99c5001fbdf646b202c19f423 Signed-off-by: Yunhong Jiang <yunhong.jiang@intel.com>
Diffstat (limited to 'kernel/lib/show_mem.c')
-rw-r--r--kernel/lib/show_mem.c54
1 files changed, 54 insertions, 0 deletions
diff --git a/kernel/lib/show_mem.c b/kernel/lib/show_mem.c
new file mode 100644
index 000000000..adc98e182
--- /dev/null
+++ b/kernel/lib/show_mem.c
@@ -0,0 +1,54 @@
+/*
+ * Generic show_mem() implementation
+ *
+ * Copyright (C) 2008 Johannes Weiner <hannes@saeurebad.de>
+ * All code subject to the GPL version 2.
+ */
+
+#include <linux/mm.h>
+#include <linux/quicklist.h>
+#include <linux/cma.h>
+
+void show_mem(unsigned int filter)
+{
+ pg_data_t *pgdat;
+ unsigned long total = 0, reserved = 0, highmem = 0;
+
+ printk("Mem-Info:\n");
+ show_free_areas(filter);
+
+ for_each_online_pgdat(pgdat) {
+ unsigned long flags;
+ int zoneid;
+
+ pgdat_resize_lock(pgdat, &flags);
+ 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;
+
+ if (is_highmem_idx(zoneid))
+ highmem += zone->present_pages;
+ }
+ pgdat_resize_unlock(pgdat, &flags);
+ }
+
+ printk("%lu pages RAM\n", total);
+ printk("%lu pages HighMem/MovableOnly\n", highmem);
+#ifdef CONFIG_CMA
+ printk("%lu pages reserved\n", (reserved - totalcma_pages));
+ printk("%lu pages cma reserved\n", totalcma_pages);
+#else
+ printk("%lu pages reserved\n", reserved);
+#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
+}