linux/arch/ia64
Mel Gorman d9c2340052 Do not depend on MAX_ORDER when grouping pages by mobility
Currently mobility grouping works at the MAX_ORDER_NR_PAGES level.  This makes
sense for the majority of users where this is also the huge page size.
However, on platforms like ia64 where the huge page size is runtime
configurable it is desirable to group at a lower order.  On x86_64 and
occasionally on x86, the hugepage size may not always be MAX_ORDER_NR_PAGES.

This patch groups pages together based on the value of HUGETLB_PAGE_ORDER.  It
uses a compile-time constant if possible and a variable where the huge page
size is runtime configurable.

It is assumed that grouping should be done at the lowest sensible order and
that the user would not want to override this.  If this is not true,
page_block order could be forced to a variable initialised via a boot-time
kernel parameter.

One potential issue with this patch is that IA64 now parses hugepagesz with
early_param() instead of __setup().  __setup() is called after the memory
allocator has been initialised and the pageblock bitmaps already setup.  In
tests on one IA64 there did not seem to be any problem with using
early_param() and in fact may be more correct as it guarantees the parameter
is handled before the parsing of hugepages=.

Signed-off-by: Mel Gorman <mel@csn.ul.ie>
Acked-by: Andy Whitcroft <apw@shadowen.org>
Acked-by: Christoph Lameter <clameter@sgi.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2007-10-16 09:43:00 -07:00
..
configs [IA64] update sn2_defconfig 2007-10-15 08:47:39 -07:00
dig [PATCH] tty: Remove include of screen_info.h from tty.h 2006-07-10 13:24:16 -07:00
hp Merge branch 'release' of git://git.kernel.org/pub/scm/linux/kernel/git/aegl/linux-2.6 2007-10-15 09:57:54 -07:00
ia32 i386/x86_64: move headers to include/asm-x86 2007-10-11 11:20:03 +02:00
kernel Memoryless nodes: Uncached allocator updates 2007-10-16 09:42:58 -07:00
lib missing exports of csum_... 2007-07-17 11:01:07 -07:00
mm Do not depend on MAX_ORDER when grouping pages by mobility 2007-10-16 09:43:00 -07:00
oprofile Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
pci [IA64] Nail two more simple section mismatch errors 2007-07-25 13:08:41 -07:00
scripts Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
sn Driver core: change add_uevent_var to use a struct 2007-10-12 14:51:01 -07:00
defconfig [IA64] Update arch/ia64/configs/* s/SLAB/SLUB/ 2007-08-13 14:54:34 -07:00
install.sh Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
Kconfig Do not depend on MAX_ORDER when grouping pages by mobility 2007-10-16 09:43:00 -07:00
Kconfig.debug [PATCH] Move Kprobes and Oprofile to "Instrumentation Support" menu 2005-11-07 07:53:35 -08:00
Makefile [IA64] add vmlinuz target 2006-06-21 14:31:07 -07:00
module.lds Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00