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 03/12] mm: introduce MIGRATE_MIRROR to manage the mirrored, pages
Date: Thu, 4 Jun 2015 20:58:52 +0800 [thread overview]
Message-ID: <55704B8C.7080506@huawei.com> (raw)
In-Reply-To: <55704A7E.5030507@huawei.com>
This patch introduces a new MIGRATE_TYPES called "MIGRATE_MIRROR", it is used
to storage the mirrored pages list.
When cat /proc/pagetypeinfo, you can see the count of free mirrored blocks.
e.g.
euler-linux:~ # cat /proc/pagetypeinfo
Page block order: 9
Pages per block: 512
Free pages count per migrate type at order 0 1 2 3 4 5 6 7 8 9 10
Node 0, zone DMA, type Unmovable 1 1 0 0 2 1 1 0 1 0 0
Node 0, zone DMA, type Reclaimable 0 0 0 0 0 0 0 0 0 0 0
Node 0, zone DMA, type Movable 0 0 0 0 0 0 0 0 0 0 3
Node 0, zone DMA, type Mirror 0 0 0 0 0 0 0 0 0 0 0
Node 0, zone DMA, type Reserve 0 0 0 0 0 0 0 0 0 1 0
Node 0, zone DMA, type Isolate 0 0 0 0 0 0 0 0 0 0 0
Node 0, zone DMA32, type Unmovable 0 0 1 0 0 0 0 1 1 1 0
Node 0, zone DMA32, type Reclaimable 0 0 0 0 0 0 0 0 0 0 0
Node 0, zone DMA32, type Movable 1 2 6 6 6 4 5 3 3 2 738
Node 0, zone DMA32, type Mirror 0 0 0 0 0 0 0 0 0 0 0
Node 0, zone DMA32, type Reserve 0 0 0 0 0 0 0 0 0 0 1
Node 0, zone DMA32, type Isolate 0 0 0 0 0 0 0 0 0 0 0
Node 0, zone Normal, type Unmovable 0 0 0 0 0 0 0 0 0 0 0
Node 0, zone Normal, type Reclaimable 0 0 0 0 0 0 0 0 0 0 0
Node 0, zone Normal, type Movable 0 0 1 1 0 0 0 2 1 0 4254
Node 0, zone Normal, type Mirror 148 104 63 70 26 11 2 2 1 1 973
Node 0, zone Normal, type Reserve 0 0 0 0 0 0 0 0 0 0 1
Node 0, zone Normal, type Isolate 0 0 0 0 0 0 0 0 0 0 0
Number of blocks type Unmovable Reclaimable Movable Mirror Reserve Isolate
Node 0, zone DMA 1 0 6 0 1 0
Node 0, zone DMA32 2 0 1525 0 1 0
Node 0, zone Normal 0 0 8702 2048 2 0
Page block order: 9
Pages per block: 512
Free pages count per migrate type at order 0 1 2 3 4 5 6 7 8 9 10
Node 1, zone Normal, type Unmovable 0 0 0 0 0 0 0 0 0 0 0
Node 1, zone Normal, type Reclaimable 0 0 0 0 0 0 0 0 0 0 0
Node 1, zone Normal, type Movable 2 2 1 1 2 1 2 2 2 3 3996
Node 1, zone Normal, type Mirror 68 94 57 6 8 1 0 0 3 1 2003
Node 1, zone Normal, type Reserve 0 0 0 0 0 0 0 0 0 0 1
Node 1, zone Normal, type Isolate 0 0 0 0 0 0 0 0 0 0 0
Number of blocks type Unmovable Reclaimable Movable Mirror Reserve Isolate
Node 1, zone Normal 0 0 8190 4096 2 0
Signed-off-by: Xishi Qiu <qiuxishi@huawei.com>
---
include/linux/mmzone.h | 6 ++++++
mm/page_alloc.c | 3 +++
mm/vmstat.c | 3 +++
3 files changed, 12 insertions(+)
diff --git a/include/linux/mmzone.h b/include/linux/mmzone.h
index 1fae07b..b444335 100644
--- a/include/linux/mmzone.h
+++ b/include/linux/mmzone.h
@@ -39,6 +39,9 @@ enum {
MIGRATE_UNMOVABLE,
MIGRATE_RECLAIMABLE,
MIGRATE_MOVABLE,
+#ifdef CONFIG_MEMORY_MIRROR
+ MIGRATE_MIRROR,
+#endif
MIGRATE_PCPTYPES, /* the number of types on the pcp lists */
MIGRATE_RESERVE = MIGRATE_PCPTYPES,
#ifdef CONFIG_CMA
@@ -82,6 +85,9 @@ struct mirror_info {
};
extern struct mirror_info mirror_info;
+# define is_migrate_mirror(migratetype) unlikely((migratetype) == MIGRATE_MIRROR)
+#else
+# define is_migrate_mirror(migratetype) false
#endif
#define for_each_migratetype_order(order, type) \
diff --git a/mm/page_alloc.c b/mm/page_alloc.c
index 41a95a7..3b2ff46 100644
--- a/mm/page_alloc.c
+++ b/mm/page_alloc.c
@@ -3245,6 +3245,9 @@ static void show_migration_types(unsigned char type)
[MIGRATE_UNMOVABLE] = 'U',
[MIGRATE_RECLAIMABLE] = 'E',
[MIGRATE_MOVABLE] = 'M',
+#ifdef CONFIG_MEMORY_MIRROR
+ [MIGRATE_MIRROR] = 'O',
+#endif
[MIGRATE_RESERVE] = 'R',
#ifdef CONFIG_CMA
[MIGRATE_CMA] = 'C',
diff --git a/mm/vmstat.c b/mm/vmstat.c
index 4f5cd97..d0323e0 100644
--- a/mm/vmstat.c
+++ b/mm/vmstat.c
@@ -901,6 +901,9 @@ static char * const migratetype_names[MIGRATE_TYPES] = {
"Unmovable",
"Reclaimable",
"Movable",
+#ifdef CONFIG_MEMORY_MIRROR
+ "Mirror",
+#endif
"Reserve",
#ifdef CONFIG_CMA
"CMA",
--
2.0.0
--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org. For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>
next prev parent reply other threads:[~2015-06-04 13:07 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 ` Xishi Qiu [this message]
2015-06-09 6:54 ` [RFC PATCH 03/12] mm: introduce MIGRATE_MIRROR to manage the mirrored, pages 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 ` [RFC PATCH 06/12] mm: add free mirrored pages info Xishi Qiu
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=55704B8C.7080506@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;
as well as URLs for NNTP newsgroup(s).