[RFC][PATCH 0/3] big chunk memory allocator v2

KAMEZAWA Hiroyuki
2010-10-26T10:06:36Z

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