From: Minchan Kim <minchan.kim@gmail.com>
To: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>
Cc: "linux-mm@kvack.org" <linux-mm@kvack.org>,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
Bob Liu <lliubbo@gmail.com>,
fujita.tomonori@lab.ntt.co.jp, m.nazarewicz@samsung.com,
pawel@osciak.com, andi.kleen@intel.com,
felipe.contreras@gmail.com,
"akpm@linux-foundation.org" <akpm@linux-foundation.org>,
"kosaki.motohiro@jp.fujitsu.com" <kosaki.motohiro@jp.fujitsu.com>
Subject: Re: [PATCH 3/4] alloc_contig_pages() allocate big chunk memory using migration
Date: Mon, 22 Nov 2010 00:25:56 +0900 [thread overview]
Message-ID: <20101121152556.GC20947@barrios-desktop> (raw)
In-Reply-To: <20101119171528.32674ef4.kamezawa.hiroyu@jp.fujitsu.com>
On Fri, Nov 19, 2010 at 05:15:28PM +0900, KAMEZAWA Hiroyuki wrote:
> From: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>
>
> Add an function to allocate contiguous memory larger than MAX_ORDER.
> The main difference between usual page allocator is that this uses
> memory offline technique (Isolate pages and migrate remaining pages.).
>
> I think this is not 100% solution because we can't avoid fragmentation,
> but we have kernelcore= boot option and can create MOVABLE zone. That
> helps us to allow allocate a contiguous range on demand.
>
> The new function is
>
> alloc_contig_pages(base, end, nr_pages, alignment)
>
> This function will allocate contiguous pages of nr_pages from the range
> [base, end). If [base, end) is bigger than nr_pages, some pfn which
> meats alignment will be allocated. If alignment is smaller than MAX_ORDER,
> it will be raised to be MAX_ORDER.
>
> __alloc_contig_pages() has much more arguments.
>
>
> Some drivers allocates contig pages by bootmem or hiding some memory
> from the kernel at boot. But if contig pages are necessary only in some
> situation, kernelcore= boot option and using page migration is a choice.
>
> Changelog: 2010-11-19
> - removed no_search
> - removed some drain_ functions because they are heavy.
> - check -ENOMEM case
>
> Changelog: 2010-10-26
> - support gfp_t
> - support zonelist/nodemask
> - support [base, end)
> - support alignment
>
> Signed-off-by: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>
Acked-by: Minchan Kim <minchan.kim@gmail.com>
Trivial comment below.
> +EXPORT_SYMBOL_GPL(alloc_contig_pages);
> +
> +struct page *alloc_contig_pages_host(unsigned long nr_pages, int align_order)
> +{
> + return __alloc_contig_pages(0, max_pfn, nr_pages, align_order, -1,
> + GFP_KERNEL | __GFP_MOVABLE, NULL);
> +}
We need include #include <linux/bootmem.h> for using max_pfn.
--
Kind regards,
Minchan Kim
WARNING: multiple messages have this Message-ID (diff)
From: Minchan Kim <minchan.kim@gmail.com>
To: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>
Cc: "linux-mm@kvack.org" <linux-mm@kvack.org>,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
Bob Liu <lliubbo@gmail.com>,
fujita.tomonori@lab.ntt.co.jp, m.nazarewicz@samsung.com,
pawel@osciak.com, andi.kleen@intel.com,
felipe.contreras@gmail.com,
"akpm@linux-foundation.org" <akpm@linux-foundation.org>,
"kosaki.motohiro@jp.fujitsu.com" <kosaki.motohiro@jp.fujitsu.com>
Subject: Re: [PATCH 3/4] alloc_contig_pages() allocate big chunk memory using migration
Date: Mon, 22 Nov 2010 00:25:56 +0900 [thread overview]
Message-ID: <20101121152556.GC20947@barrios-desktop> (raw)
In-Reply-To: <20101119171528.32674ef4.kamezawa.hiroyu@jp.fujitsu.com>
On Fri, Nov 19, 2010 at 05:15:28PM +0900, KAMEZAWA Hiroyuki wrote:
> From: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>
>
> Add an function to allocate contiguous memory larger than MAX_ORDER.
> The main difference between usual page allocator is that this uses
> memory offline technique (Isolate pages and migrate remaining pages.).
>
> I think this is not 100% solution because we can't avoid fragmentation,
> but we have kernelcore= boot option and can create MOVABLE zone. That
> helps us to allow allocate a contiguous range on demand.
>
> The new function is
>
> alloc_contig_pages(base, end, nr_pages, alignment)
>
> This function will allocate contiguous pages of nr_pages from the range
> [base, end). If [base, end) is bigger than nr_pages, some pfn which
> meats alignment will be allocated. If alignment is smaller than MAX_ORDER,
> it will be raised to be MAX_ORDER.
>
> __alloc_contig_pages() has much more arguments.
>
>
> Some drivers allocates contig pages by bootmem or hiding some memory
> from the kernel at boot. But if contig pages are necessary only in some
> situation, kernelcore= boot option and using page migration is a choice.
>
> Changelog: 2010-11-19
> - removed no_search
> - removed some drain_ functions because they are heavy.
> - check -ENOMEM case
>
> Changelog: 2010-10-26
> - support gfp_t
> - support zonelist/nodemask
> - support [base, end)
> - support alignment
>
> Signed-off-by: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>
Acked-by: Minchan Kim <minchan.kim@gmail.com>
Trivial comment below.
> +EXPORT_SYMBOL_GPL(alloc_contig_pages);
> +
> +struct page *alloc_contig_pages_host(unsigned long nr_pages, int align_order)
> +{
> + return __alloc_contig_pages(0, max_pfn, nr_pages, align_order, -1,
> + GFP_KERNEL | __GFP_MOVABLE, NULL);
> +}
We need include #include <linux/bootmem.h> for using max_pfn.
--
Kind regards,
Minchan Kim
--
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/ .
Fight unfair telecom policy in Canada: sign http://dissolvethecrtc.ca/
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>
next prev parent reply other threads:[~2010-11-21 15:26 UTC|newest]
Thread overview: 44+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-11-19 8:10 [PATCH 0/4] big chunk memory allocator v4 KAMEZAWA Hiroyuki
2010-11-19 8:10 ` KAMEZAWA Hiroyuki
2010-11-19 8:12 ` [PATCH 1/4] alloc_contig_pages() move some functions to page_isolation.c KAMEZAWA Hiroyuki
2010-11-19 8:12 ` KAMEZAWA Hiroyuki
2010-11-21 15:07 ` Minchan Kim
2010-11-21 15:07 ` Minchan Kim
2010-11-19 8:14 ` [PATCH 2/4] alloc_contig_pages() find appropriate physical memory range KAMEZAWA Hiroyuki
2010-11-19 8:14 ` KAMEZAWA Hiroyuki
2010-11-21 15:21 ` Minchan Kim
2010-11-21 15:21 ` Minchan Kim
2010-11-22 0:11 ` KAMEZAWA Hiroyuki
2010-11-22 0:11 ` KAMEZAWA Hiroyuki
2010-11-22 11:20 ` Minchan Kim
2010-11-22 11:20 ` Minchan Kim
2010-11-24 0:15 ` KAMEZAWA Hiroyuki
2010-11-24 0:15 ` KAMEZAWA Hiroyuki
2010-11-19 8:15 ` [PATCH 3/4] alloc_contig_pages() allocate big chunk memory using migration KAMEZAWA Hiroyuki
2010-11-19 8:15 ` KAMEZAWA Hiroyuki
2010-11-21 15:25 ` Minchan Kim [this message]
2010-11-21 15:25 ` Minchan Kim
2010-11-22 0:13 ` KAMEZAWA Hiroyuki
2010-11-22 0:13 ` KAMEZAWA Hiroyuki
2010-11-22 11:44 ` Minchan Kim
2010-11-22 11:44 ` Minchan Kim
2010-11-24 0:20 ` KAMEZAWA Hiroyuki
2010-11-24 0:20 ` KAMEZAWA Hiroyuki
2010-11-19 8:16 ` [PATCH 4/4] alloc_contig_pages() use better allocation function for migration KAMEZAWA Hiroyuki
2010-11-19 8:16 ` KAMEZAWA Hiroyuki
2010-11-22 12:01 ` Minchan Kim
2010-11-22 12:01 ` Minchan Kim
2010-11-19 20:56 ` [PATCH 0/4] big chunk memory allocator v4 Andrew Morton
2010-11-19 20:56 ` Andrew Morton
2010-11-22 0:04 ` KAMEZAWA Hiroyuki
2010-11-22 0:04 ` KAMEZAWA Hiroyuki
2010-11-23 15:46 ` Michał Nazarewicz
2010-11-23 15:46 ` Michał Nazarewicz
2010-11-24 0:36 ` KAMEZAWA Hiroyuki
2010-11-24 0:36 ` KAMEZAWA Hiroyuki
2010-11-22 0:30 ` Felipe Contreras
2010-11-22 0:30 ` Felipe Contreras
2010-11-22 8:59 ` Kleen, Andi
2010-11-22 8:59 ` Kleen, Andi
2010-11-23 15:44 ` Michał Nazarewicz
2010-11-23 15:44 ` Michał Nazarewicz
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=20101121152556.GC20947@barrios-desktop \
--to=minchan.kim@gmail.com \
--cc=akpm@linux-foundation.org \
--cc=andi.kleen@intel.com \
--cc=felipe.contreras@gmail.com \
--cc=fujita.tomonori@lab.ntt.co.jp \
--cc=kamezawa.hiroyu@jp.fujitsu.com \
--cc=kosaki.motohiro@jp.fujitsu.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=lliubbo@gmail.com \
--cc=m.nazarewicz@samsung.com \
--cc=pawel@osciak.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.