linux-stable/arch
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
..
alpha During VM oom condition, kill all threads in process group 2007-10-16 09:42:52 -07:00
arm During VM oom condition, kill all threads in process group 2007-10-16 09:42:52 -07:00
avr32 During VM oom condition, kill all threads in process group 2007-10-16 09:42:52 -07:00
blackfin Consolidate PTRACE_DETACH 2007-10-16 09:42:49 -07:00
cris During VM oom condition, kill all threads in process group 2007-10-16 09:42:52 -07:00
frv During VM oom condition, kill all threads in process group 2007-10-16 09:42:52 -07:00
h8300 H8/300: Fix misnamed "CONFIG_BLKDEV_RESERVE_ADDRESS" Kconfig variable 2007-09-11 17:21:20 -07:00
i386 sched: x86: allow single-depth wchan output 2007-10-15 17:00:07 +02:00
ia64 Do not depend on MAX_ORDER when grouping pages by mobility 2007-10-16 09:43:00 -07:00
m32r During VM oom condition, kill all threads in process group 2007-10-16 09:42:52 -07:00
m68k During VM oom condition, kill all threads in process group 2007-10-16 09:42:52 -07:00
m68knommu m68k(nommu): add missing syscalls 2007-09-11 17:21:20 -07:00
mips During VM oom condition, kill all threads in process group 2007-10-16 09:42:52 -07:00
parisc During VM oom condition, kill all threads in process group 2007-10-16 09:42:52 -07:00
powerpc ppc64: SPARSEMEM_VMEMMAP support 2007-10-16 09:42:51 -07:00
ppc During VM oom condition, kill all threads in process group 2007-10-16 09:42:52 -07:00
s390 During VM oom condition, kill all threads in process group 2007-10-16 09:42:52 -07:00
sh During VM oom condition, kill all threads in process group 2007-10-16 09:42:52 -07:00
sh64 During VM oom condition, kill all threads in process group 2007-10-16 09:42:52 -07:00
sparc During VM oom condition, kill all threads in process group 2007-10-16 09:42:52 -07:00
sparc64 During VM oom condition, kill all threads in process group 2007-10-16 09:42:52 -07:00
um Consolidate PTRACE_DETACH 2007-10-16 09:42:49 -07:00
v850 PTRACE_POKEDATA consolidation 2007-07-17 10:23:03 -07:00
x86 During VM oom condition, kill all threads in process group 2007-10-16 09:42:52 -07:00
x86_64 x86_64: SPARSEMEM_VMEMMAP 2M page size support 2007-10-16 09:42:51 -07:00
xtensa During VM oom condition, kill all threads in process group 2007-10-16 09:42:52 -07:00