| From: |
| KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com> |
| To: |
| "linux-mm@kvack.org" <linux-mm@kvack.org> |
| Subject: |
| [RFC][PATCH 0/3] big chunk memory allocator v2 |
| Date: |
| Tue, 26 Oct 2010 19:00:42 +0900 |
| Message-ID: |
| <20101026190042.57f30338.kamezawa.hiroyu@jp.fujitsu.com> |
| Cc: |
| "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
"minchan.kim@gmail.com" <minchan.kim@gmail.com>,
andi.kleen@intel.com, KOSAKI Motohiro <kosaki.motohiro@gmail.com>,
fujita.tomonori@lab.ntt.co.jp, felipe.contreras@gmail.com |
| Archive‑link: | |
Article |
Hi, here is version 2.
I only did small test and it seems to work (but I think there will be bug...)
I post this now just because I'll be out of office 10/31-11/15 with ksummit and
a private trip.
Any comments are welcome but please see the interface is enough for use cases or
not. For example) If MAX_ORDER alignment is too bad, I need to rewrite almost
all code.
Now interface is:
struct page *__alloc_contig_pages(unsigned long base, unsigned long end,
unsigned long nr_pages, int align_order,
int node, gfp_t gfpflag, nodemask_t *mask)
* @base: the lowest pfn which caller wants.
* @end: the highest pfn which caller wants.
* @nr_pages: the length of a chunk of pages to be allocated.
* @align_order: alignment of start address of returned chunk in order.
* Returned' page's order will be aligned to (1 << align_order).If smaller
* than MAX_ORDER, it's raised to MAX_ORDER.
* @node: allocate near memory to the node, If -1, current node is used.
* @gfpflag: see include/linux/gfp.h
* @nodemask: allocate memory within the nodemask.
If the caller wants a FIXED address, set end - base == nr_pages.
The patch is based onto the latest mmotm + Bob's 3 patches for fixing
memory_hotplug.c (they are queued.)
Thanks,
-Kame
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/