From: "Aneesh Kumar K.V" <aneesh.kumar@linux.vnet.ibm.com>
To: Joonsoo Kim <iamjoonsoo.kim@lge.com>,
Andrew Morton <akpm@linux-foundation.org>
Cc: Rik van Riel <riel@redhat.com>,
Johannes Weiner <hannes@cmpxchg.org>,
Mel Gorman <mgorman@suse.de>,
Laura Abbott <lauraa@codeaurora.org>,
Minchan Kim <minchan@kernel.org>,
Heesub Shin <heesub.shin@samsung.com>,
Marek Szyprowski <m.szyprowski@samsung.com>,
Michal Nazarewicz <mina86@mina86.com>,
linux-mm@kvack.org, linux-kernel@vger.kernel.org,
Hui Zhu <zhuhui@xiaomi.com>, Gioh Kim <gioh.kim@lge.com>,
Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>,
Ritesh Harjani <ritesh.list@gmail.com>,
Vlastimil Babka <vbabka@suse.cz>
Subject: Re: [RFC 13/16] mm/cma: populate ZONE_CMA and use this zone when GFP_HIGHUSERMOVABLE
Date: Tue, 03 Mar 2015 13:58:46 +0530 [thread overview]
Message-ID: <87vbiia3i9.fsf@linux.vnet.ibm.com> (raw)
In-Reply-To: <1423726340-4084-14-git-send-email-iamjoonsoo.kim@lge.com>
Joonsoo Kim <iamjoonsoo.kim@lge.com> writes:
> Until now, reserved pages for CMA are managed altogether with normal
> page in the same zone. This approach has numorous problems and fixing
> them isn't easy. To fix this situation, ZONE_CMA is introduced in
> previous patch, but, not yet populated. This patch implement population
> of ZONE_CMA by stealing reserved pages from normal zones. This stealing
> break one uncertain assumption on zone, that is, zone isn't overlapped.
> In the early of this series, some check is inserted to every zone's span
> iterator to handle zone overlap so there would be no problem with
> this assumption break.
>
> To utilize this zone, user should use GFP_HIGHUSERMOVABLE, because
> these pages are only applicable for movable type and ZONE_CMA could
> contain highmem.
>
> Implementation itself is very easy to understand. Do steal when cma
> area is initialized and recalculate values for per zone data structure.
>
> Signed-off-by: Joonsoo Kim <iamjoonsoo.kim@lge.com>
> ---
> include/linux/gfp.h | 10 ++++++++--
> include/linux/mm.h | 1 +
> mm/cma.c | 23 ++++++++++++++++-------
> mm/page_alloc.c | 42 +++++++++++++++++++++++++++++++++++++++---
> 4 files changed, 64 insertions(+), 12 deletions(-)
>
> diff --git a/include/linux/gfp.h b/include/linux/gfp.h
> index 619eb20..d125440 100644
> --- a/include/linux/gfp.h
> +++ b/include/linux/gfp.h
> @@ -186,6 +186,12 @@ static inline int gfpflags_to_migratetype(const gfp_t gfp_flags)
> #define OPT_ZONE_DMA32 ZONE_NORMAL
> #endif
>
> +#ifdef CONFIG_CMA
> +#define OPT_ZONE_CMA ZONE_CMA
> +#else
> +#define OPT_ZONE_CMA ZONE_MOVABLE
> +#endif
> +
Does that mean with CONFIG_CMA we always try ZONE_CMA first and then
fallback to ZONE_MOVABLE ? If so won't we hit termporary CMA allocation
failures that can result with pinned movable pages ?
-aneesh
--
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>
WARNING: multiple messages have this Message-ID (diff)
From: "Aneesh Kumar K.V" <aneesh.kumar@linux.vnet.ibm.com>
To: Joonsoo Kim <iamjoonsoo.kim@lge.com>,
Andrew Morton <akpm@linux-foundation.org>
Cc: Rik van Riel <riel@redhat.com>,
Johannes Weiner <hannes@cmpxchg.org>,
Mel Gorman <mgorman@suse.de>,
Laura Abbott <lauraa@codeaurora.org>,
Minchan Kim <minchan@kernel.org>,
Heesub Shin <heesub.shin@samsung.com>,
Marek Szyprowski <m.szyprowski@samsung.com>,
Michal Nazarewicz <mina86@mina86.com>,
linux-mm@kvack.org, linux-kernel@vger.kernel.org,
Hui Zhu <zhuhui@xiaomi.com>, Gioh Kim <gioh.kim@lge.com>,
Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>,
Ritesh Harjani <ritesh.list@gmail.com>,
Vlastimil Babka <vbabka@suse.cz>,
Joonsoo Kim <iamjoonsoo.kim@lge.com>
Subject: Re: [RFC 13/16] mm/cma: populate ZONE_CMA and use this zone when GFP_HIGHUSERMOVABLE
Date: Tue, 03 Mar 2015 13:58:46 +0530 [thread overview]
Message-ID: <87vbiia3i9.fsf@linux.vnet.ibm.com> (raw)
In-Reply-To: <1423726340-4084-14-git-send-email-iamjoonsoo.kim@lge.com>
Joonsoo Kim <iamjoonsoo.kim@lge.com> writes:
> Until now, reserved pages for CMA are managed altogether with normal
> page in the same zone. This approach has numorous problems and fixing
> them isn't easy. To fix this situation, ZONE_CMA is introduced in
> previous patch, but, not yet populated. This patch implement population
> of ZONE_CMA by stealing reserved pages from normal zones. This stealing
> break one uncertain assumption on zone, that is, zone isn't overlapped.
> In the early of this series, some check is inserted to every zone's span
> iterator to handle zone overlap so there would be no problem with
> this assumption break.
>
> To utilize this zone, user should use GFP_HIGHUSERMOVABLE, because
> these pages are only applicable for movable type and ZONE_CMA could
> contain highmem.
>
> Implementation itself is very easy to understand. Do steal when cma
> area is initialized and recalculate values for per zone data structure.
>
> Signed-off-by: Joonsoo Kim <iamjoonsoo.kim@lge.com>
> ---
> include/linux/gfp.h | 10 ++++++++--
> include/linux/mm.h | 1 +
> mm/cma.c | 23 ++++++++++++++++-------
> mm/page_alloc.c | 42 +++++++++++++++++++++++++++++++++++++++---
> 4 files changed, 64 insertions(+), 12 deletions(-)
>
> diff --git a/include/linux/gfp.h b/include/linux/gfp.h
> index 619eb20..d125440 100644
> --- a/include/linux/gfp.h
> +++ b/include/linux/gfp.h
> @@ -186,6 +186,12 @@ static inline int gfpflags_to_migratetype(const gfp_t gfp_flags)
> #define OPT_ZONE_DMA32 ZONE_NORMAL
> #endif
>
> +#ifdef CONFIG_CMA
> +#define OPT_ZONE_CMA ZONE_CMA
> +#else
> +#define OPT_ZONE_CMA ZONE_MOVABLE
> +#endif
> +
Does that mean with CONFIG_CMA we always try ZONE_CMA first and then
fallback to ZONE_MOVABLE ? If so won't we hit termporary CMA allocation
failures that can result with pinned movable pages ?
-aneesh
next prev parent reply other threads:[~2015-03-03 8:28 UTC|newest]
Thread overview: 60+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-02-12 7:32 [RFC 00/16] Introduce ZONE_CMA Joonsoo Kim
2015-02-12 7:32 ` Joonsoo Kim
2015-02-12 7:32 ` [RFC 01/16] mm/page_alloc: correct highmem memory statistics Joonsoo Kim
2015-02-12 7:32 ` Joonsoo Kim
2015-02-12 7:32 ` [RFC 02/16] mm/writeback: correct dirty page calculation for highmem Joonsoo Kim
2015-02-12 7:32 ` Joonsoo Kim
2015-02-12 7:32 ` [RFC 03/16] mm/highmem: make nr_free_highpages() handles all highmem zones by itself Joonsoo Kim
2015-02-12 7:32 ` Joonsoo Kim
2015-02-12 7:32 ` [RFC 04/16] mm/vmstat: make node_page_state() handles all " Joonsoo Kim
2015-02-12 7:32 ` Joonsoo Kim
2015-02-12 7:32 ` [RFC 05/16] mm/vmstat: watch out zone range overlap Joonsoo Kim
2015-02-12 7:32 ` Joonsoo Kim
2015-02-12 7:32 ` [RFC 06/16] mm/page_alloc: " Joonsoo Kim
2015-02-12 7:32 ` Joonsoo Kim
2015-02-12 7:32 ` [RFC 07/16] mm/page_isolation: " Joonsoo Kim
2015-02-12 7:32 ` Joonsoo Kim
2015-02-13 6:40 ` Gioh Kim
2015-02-13 6:40 ` Gioh Kim
2015-02-17 5:24 ` Joonsoo Kim
2015-02-17 5:24 ` Joonsoo Kim
2015-02-12 7:32 ` [RFC 08/16] power: " Joonsoo Kim
2015-02-12 7:32 ` Joonsoo Kim
2015-02-12 7:32 ` [RFC 09/16] mm/cma: introduce cma_total_pages() for future use Joonsoo Kim
2015-02-12 7:32 ` Joonsoo Kim
2015-02-12 7:32 ` [RFC 10/16] mm/highmem: remove is_highmem_idx() Joonsoo Kim
2015-02-12 7:32 ` Joonsoo Kim
2015-02-12 7:32 ` [RFC 11/16] mm/page_alloc: clean-up free_area_init_core() Joonsoo Kim
2015-02-12 7:32 ` Joonsoo Kim
2015-02-12 7:32 ` [RFC 12/16] mm/cma: introduce new zone, ZONE_CMA Joonsoo Kim
2015-02-12 7:32 ` Joonsoo Kim
2015-02-12 7:32 ` [RFC 13/16] mm/cma: populate ZONE_CMA and use this zone when GFP_HIGHUSERMOVABLE Joonsoo Kim
2015-02-12 7:32 ` Joonsoo Kim
2015-02-14 5:02 ` Gioh Kim
2015-02-14 5:02 ` Gioh Kim
2015-02-17 5:25 ` Joonsoo Kim
2015-02-17 5:25 ` Joonsoo Kim
2015-03-03 8:28 ` Aneesh Kumar K.V [this message]
2015-03-03 8:28 ` Aneesh Kumar K.V
2015-03-06 7:13 ` Joonsoo Kim
2015-03-06 7:13 ` Joonsoo Kim
2015-03-18 10:03 ` Aneesh Kumar K.V
2015-03-18 10:03 ` Aneesh Kumar K.V
2015-03-20 4:28 ` Joonsoo Kim
2015-03-20 4:28 ` Joonsoo Kim
2015-02-12 7:32 ` [RFC 14/16] mm/cma: print stealed page count Joonsoo Kim
2015-02-12 7:32 ` Joonsoo Kim
2015-02-12 7:32 ` [RFC 15/16] mm/cma: remove ALLOC_CMA Joonsoo Kim
2015-02-12 7:32 ` Joonsoo Kim
2015-02-12 7:32 ` [RFC 16/16] mm/cma: remove MIGRATE_CMA Joonsoo Kim
2015-02-12 7:32 ` Joonsoo Kim
2015-03-05 16:53 ` [RFC 00/16] Introduce ZONE_CMA Vlastimil Babka
2015-03-05 16:53 ` Vlastimil Babka
2015-03-05 17:48 ` Vlastimil Babka
2015-03-05 17:48 ` Vlastimil Babka
2015-03-06 7:26 ` Joonsoo Kim
2015-03-06 7:26 ` Joonsoo Kim
2015-03-17 9:46 ` Aneesh Kumar K.V
2015-03-17 9:46 ` Aneesh Kumar K.V
2015-03-18 6:01 ` Joonsoo Kim
2015-03-18 6:01 ` Joonsoo Kim
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=87vbiia3i9.fsf@linux.vnet.ibm.com \
--to=aneesh.kumar@linux.vnet.ibm.com \
--cc=akpm@linux-foundation.org \
--cc=b.zolnierkie@samsung.com \
--cc=gioh.kim@lge.com \
--cc=hannes@cmpxchg.org \
--cc=heesub.shin@samsung.com \
--cc=iamjoonsoo.kim@lge.com \
--cc=lauraa@codeaurora.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=m.szyprowski@samsung.com \
--cc=mgorman@suse.de \
--cc=mina86@mina86.com \
--cc=minchan@kernel.org \
--cc=riel@redhat.com \
--cc=ritesh.list@gmail.com \
--cc=vbabka@suse.cz \
--cc=zhuhui@xiaomi.com \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.