From: Kamezawa Hiroyuki <kamezawa.hiroyu@jp.fujitsu.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: Re: [RFC PATCH 03/12] mm: introduce MIGRATE_MIRROR to manage the mirrored, pages
Date: Tue, 09 Jun 2015 15:54:53 +0900 [thread overview]
Message-ID: <55768DBD.9010203@jp.fujitsu.com> (raw)
In-Reply-To: <55704B8C.7080506@huawei.com>
On 2015/06/04 21:58, Xishi Qiu wrote:
> 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.
>
I guess you need to add Mel to CC.
> 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
I can't imagine how the fallback logic will work at reading this patch.
I think an update for fallback order array should be in this patch...
> 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",
>
--
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-09 6:55 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 [this message]
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=55768DBD.9010203@jp.fujitsu.com \
--to=kamezawa.hiroyu@jp.fujitsu.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=qiuxishi@huawei.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).