From: Xishi Qiu <qiuxishi@huawei.com>
To: Xishi Qiu <qiuxishi@huawei.com>,
Andrew Morton <akpm@linux-foundation.org>,
<nao.horiguchi@gmail.com>, Yinghai Lu <yinghai@kernel.org>,
"H. Peter Anvin" <hpa@zytor.com>,
Thomas Gleixner <tglx@linutronix.de>, <mingo@elte.hu>,
Xiexiuqi <xiexiuqi@huawei.com>, Hanjun Guo <guohanjun@huawei.com>,
"Luck, Tony" <tony.luck@intel.com>
Cc: Linux MM <linux-mm@kvack.org>, LKML <linux-kernel@vger.kernel.org>
Subject: [RFC PATCH 06/12] mm: add free mirrored pages info
Date: Thu, 4 Jun 2015 21:01:16 +0800 [thread overview]
Message-ID: <55704C1C.6040101@huawei.com> (raw)
In-Reply-To: <55704A7E.5030507@huawei.com>
Add the count of free mirrored pages in the following paths:
/proc/meminfo
/proc/zoneinfo
/sys/devices/system/node/node XX/meminfo
/sys/devices/system/node/node XX/vmstat
Signed-off-by: Xishi Qiu <qiuxishi@huawei.com>
---
drivers/base/node.c | 17 +++++++++++------
fs/proc/meminfo.c | 6 ++++++
mm/page_alloc.c | 7 +++++--
3 files changed, 22 insertions(+), 8 deletions(-)
diff --git a/drivers/base/node.c b/drivers/base/node.c
index a2aa65b..d1a3556 100644
--- a/drivers/base/node.c
+++ b/drivers/base/node.c
@@ -114,6 +114,9 @@ static ssize_t node_read_meminfo(struct device *dev,
#ifdef CONFIG_TRANSPARENT_HUGEPAGE
"Node %d AnonHugePages: %8lu kB\n"
#endif
+#ifdef CONFIG_MEMORY_MIRROR
+ "Node %d MirrorFree: %8lu kB\n"
+#endif
,
nid, K(node_page_state(nid, NR_FILE_DIRTY)),
nid, K(node_page_state(nid, NR_WRITEBACK)),
@@ -130,14 +133,16 @@ static ssize_t node_read_meminfo(struct device *dev,
nid, K(node_page_state(nid, NR_SLAB_RECLAIMABLE) +
node_page_state(nid, NR_SLAB_UNRECLAIMABLE)),
nid, K(node_page_state(nid, NR_SLAB_RECLAIMABLE)),
-#ifdef CONFIG_TRANSPARENT_HUGEPAGE
nid, K(node_page_state(nid, NR_SLAB_UNRECLAIMABLE))
- , nid,
- K(node_page_state(nid, NR_ANON_TRANSPARENT_HUGEPAGES) *
- HPAGE_PMD_NR));
-#else
- nid, K(node_page_state(nid, NR_SLAB_UNRECLAIMABLE)));
+#ifdef CONFIG_TRANSPARENT_HUGEPAGE
+ , nid, K(node_page_state(nid, NR_ANON_TRANSPARENT_HUGEPAGES) *
+ HPAGE_PMD_NR)
+#endif
+#ifdef CONFIG_MEMORY_MIRROR
+ , nid, K(node_page_state(nid, NR_FREE_MIRROR_PAGES))
#endif
+ );
+
n += hugetlb_report_node_meminfo(nid, buf + n);
return n;
}
diff --git a/fs/proc/meminfo.c b/fs/proc/meminfo.c
index d3ebf2e..d1ebb20 100644
--- a/fs/proc/meminfo.c
+++ b/fs/proc/meminfo.c
@@ -145,6 +145,9 @@ static int meminfo_proc_show(struct seq_file *m, void *v)
"CmaTotal: %8lu kB\n"
"CmaFree: %8lu kB\n"
#endif
+#ifdef CONFIG_MEMORY_MIRROR
+ "MirrorFree: %8lu kB\n"
+#endif
,
K(i.totalram),
K(i.freeram),
@@ -204,6 +207,9 @@ static int meminfo_proc_show(struct seq_file *m, void *v)
, K(totalcma_pages)
, K(global_page_state(NR_FREE_CMA_PAGES))
#endif
+#ifdef CONFIG_MEMORY_MIRROR
+ , K(global_page_state(NR_FREE_MIRROR_PAGES))
+#endif
);
hugetlb_report_meminfo(m);
diff --git a/mm/page_alloc.c b/mm/page_alloc.c
index 8fe0187..249a8f6 100644
--- a/mm/page_alloc.c
+++ b/mm/page_alloc.c
@@ -3316,7 +3316,7 @@ void show_free_areas(unsigned int filter)
" unevictable:%lu dirty:%lu writeback:%lu unstable:%lu\n"
" slab_reclaimable:%lu slab_unreclaimable:%lu\n"
" mapped:%lu shmem:%lu pagetables:%lu bounce:%lu\n"
- " free:%lu free_pcp:%lu free_cma:%lu\n",
+ " free:%lu free_pcp:%lu free_cma:%lu free_mirror:%lu\n",
global_page_state(NR_ACTIVE_ANON),
global_page_state(NR_INACTIVE_ANON),
global_page_state(NR_ISOLATED_ANON),
@@ -3335,7 +3335,8 @@ void show_free_areas(unsigned int filter)
global_page_state(NR_BOUNCE),
global_page_state(NR_FREE_PAGES),
free_pcp,
- global_page_state(NR_FREE_CMA_PAGES));
+ global_page_state(NR_FREE_CMA_PAGES),
+ global_page_state(NR_FREE_MIRROR_PAGES));
for_each_populated_zone(zone) {
int i;
@@ -3376,6 +3377,7 @@ void show_free_areas(unsigned int filter)
" free_pcp:%lukB"
" local_pcp:%ukB"
" free_cma:%lukB"
+ " free_mirror:%lukB"
" writeback_tmp:%lukB"
" pages_scanned:%lu"
" all_unreclaimable? %s"
@@ -3409,6 +3411,7 @@ void show_free_areas(unsigned int filter)
K(free_pcp),
K(this_cpu_read(zone->pageset->pcp.count)),
K(zone_page_state(zone, NR_FREE_CMA_PAGES)),
+ K(zone_page_state(zone, NR_FREE_MIRROR_PAGES)),
K(zone_page_state(zone, NR_WRITEBACK_TEMP)),
K(zone_page_state(zone, NR_PAGES_SCANNED)),
(!zone_reclaimable(zone) ? "yes" : "no")
--
2.0.0
next prev parent reply other threads:[~2015-06-04 13:10 UTC|newest]
Thread overview: 62+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-06-04 12:54 [RFC PATCH 00/12] mm: mirrored memory support for page buddy allocations Xishi Qiu
2015-06-04 12:56 ` [RFC PATCH 01/12] mm: add a new config to manage the code Xishi Qiu
2015-06-08 11:52 ` Leon Romanovsky
2015-06-08 15:14 ` Luck, Tony
2015-06-08 16:36 ` Leon Romanovsky
2015-06-09 6:44 ` Kamezawa Hiroyuki
2015-06-09 10:10 ` Xishi Qiu
2015-06-10 3:07 ` Kamezawa Hiroyuki
2015-06-04 12:57 ` [RFC PATCH 02/12] mm: introduce mirror_info Xishi Qiu
2015-06-04 16:57 ` Luck, Tony
2015-06-05 1:53 ` Xishi Qiu
2015-06-09 6:48 ` Kamezawa Hiroyuki
2015-06-04 12:58 ` [RFC PATCH 03/12] mm: introduce MIGRATE_MIRROR to manage the mirrored, pages Xishi Qiu
2015-06-09 6:54 ` Kamezawa Hiroyuki
2015-06-04 12:59 ` [RFC PATCH 04/12] mm: add mirrored pages to buddy system Xishi Qiu
2015-06-04 13:00 ` [RFC PATCH 05/12] mm: introduce a new zone_stat_item NR_FREE_MIRROR_PAGES Xishi Qiu
2015-06-04 13:01 ` Xishi Qiu [this message]
2015-06-04 13:02 ` [RFC PATCH 07/12] mm: introduce __GFP_MIRROR to allocate mirrored pages Xishi Qiu
2015-06-09 7:01 ` Kamezawa Hiroyuki
2015-06-04 13:02 ` [RFC PATCH 08/12] mm: use mirrorable to switch allocate mirrored memory Xishi Qiu
2015-06-04 17:01 ` Luck, Tony
2015-06-04 18:41 ` Dave Hansen
2015-06-05 3:13 ` Xishi Qiu
2015-06-09 7:06 ` Kamezawa Hiroyuki
2015-06-09 10:09 ` Xishi Qiu
2015-06-10 3:09 ` Kamezawa Hiroyuki
2015-06-12 8:05 ` Naoya Horiguchi
2015-06-04 13:03 ` [RFC PATCH 09/12] mm: enable allocate mirrored memory at boot time Xishi Qiu
2015-06-04 13:04 ` [RFC PATCH 10/12] mm: add the buddy system interface Xishi Qiu
2015-06-04 17:09 ` Luck, Tony
2015-06-05 3:14 ` Xishi Qiu
2015-06-09 7:12 ` Kamezawa Hiroyuki
2015-06-09 10:04 ` Xishi Qiu
2015-06-10 3:06 ` Kamezawa Hiroyuki
2015-06-10 20:40 ` Luck, Tony
2015-06-15 8:47 ` Kamezawa Hiroyuki
2015-06-15 17:20 ` Luck, Tony
2015-06-16 0:31 ` Kamezawa Hiroyuki
2015-06-25 9:44 ` Xishi Qiu
2015-06-25 23:54 ` Kamezawa Hiroyuki
2015-06-26 1:43 ` Xishi Qiu
2015-06-26 8:34 ` Kamezawa Hiroyuki
2015-06-26 10:38 ` Xishi Qiu
2015-06-26 18:42 ` Luck, Tony
2015-06-04 13:04 ` [RFC PATCH 11/12] mm: add the PCP interface Xishi Qiu
2015-06-04 18:44 ` Dave Hansen
2015-06-04 13:05 ` [RFC PATCH 12/12] mm: let slab/slub/slob use mirrored memory Xishi Qiu
2015-06-04 17:14 ` Luck, Tony
2015-06-12 8:42 ` [RFC PATCH 00/12] mm: mirrored memory support for page buddy allocations Naoya Horiguchi
2015-06-12 9:09 ` Xishi Qiu
2015-06-12 19:03 ` Luck, Tony
2015-06-15 0:25 ` Naoya Horiguchi
2015-06-16 7:53 ` Vlastimil Babka
2015-06-16 8:17 ` Xishi Qiu
2015-06-16 9:46 ` Vlastimil Babka
2015-06-18 1:23 ` Xishi Qiu
2015-06-18 5:58 ` Vlastimil Babka
2015-06-18 9:37 ` Xishi Qiu
2015-06-18 9:55 ` Vlastimil Babka
2015-06-18 20:33 ` Luck, Tony
2015-06-19 1:36 ` Xishi Qiu
2015-06-19 18:42 ` Luck, Tony
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=55704C1C.6040101@huawei.com \
--to=qiuxishi@huawei.com \
--cc=akpm@linux-foundation.org \
--cc=guohanjun@huawei.com \
--cc=hpa@zytor.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=mingo@elte.hu \
--cc=nao.horiguchi@gmail.com \
--cc=tglx@linutronix.de \
--cc=tony.luck@intel.com \
--cc=xiexiuqi@huawei.com \
--cc=yinghai@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
Powered by JetHome