Mel Gorman
ba72cb8cb0
Fix boot problem with iSeries lacking hugepage support
...
Ordinarily the size of a pageblock is determined at compile-time based on the
hugepage size. On PPC64, the hugepage size is determined at runtime based on
what is supported by the machine. With legacy machines such as iSeries that
do not support hugepages, HPAGE_SHIFT is 0. This results in pageblock_order
being set to -PAGE_SHIFT and a crash results shortly afterwards.
This patch adds a function to select a sensible value for pageblock order by
default when HUGETLB_PAGE_SIZE_VARIABLE is set. It checks that HPAGE_SHIFT
is a sensible value before using the hugepage size; if it is not MAX_ORDER-1
is used.
This is a fix for 2.6.24.
Credit goes to Stephen Rothwell for identifying the bug and testing candidate
patches. Additional credit goes to Andy Whitcroft for spotting a problem
with respects to IA-64 before releasing. Additional credit to David Gibson
for testing with the libhugetlbfs test suite.
Signed-off-by: Mel Gorman <mel@csn.ul.ie>
Tested-by: Stephen Rothwell <sfr@canb.auug.org.au>
Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Acked-by: Paul Mackerras <paulus@samba.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2007-11-29 09:24:51 -08:00
..
allocpercpu.c
Slab allocators: Replace explicit zeroing with __GFP_ZERO
2007-07-17 10:23:02 -07:00
backing-dev.c
mm: per device dirty threshold
2007-10-17 08:42:45 -07:00
bootmem.c
[PATCH] remove EXPORT_UNUSED_SYMBOL'ed symbols
2006-12-07 08:39:44 -08:00
bounce.c
block: Initial support for data-less (or empty) barrier support
2007-10-16 11:03:56 +02:00
fadvise.c
[PATCH] mm: change uses of f_{dentry,vfsmnt} to use f_path
2006-12-08 08:28:43 -08:00
filemap.c
Remove broken ptrace() special-case code from file mapping
2007-10-31 09:19:46 -07:00
filemap_xip.c
mm: write iovec cleanup
2007-10-16 09:42:54 -07:00
fremap.c
remap_file_pages: kernel-doc corrections
2007-10-17 08:43:07 -07:00
highmem.c
Create the ZONE_MOVABLE zone
2007-07-17 10:22:59 -07:00
hugetlb.c
hugetlb: fix i_blocks accounting
2007-11-14 18:45:40 -08:00
internal.h
Breakout page_order() to internal.h to avoid special knowledge of the buddy allocator
2007-10-16 09:43:01 -07:00
Kconfig
small documentation fixes
2007-10-20 02:46:58 +02:00
madvise.c
speed up madvise_need_mmap_write() usage
2007-07-16 09:05:36 -07:00
Makefile
memory unplug: page isolation
2007-10-16 09:43:02 -07:00
memory.c
Swap delay accounting, include lock_page() delays
2007-11-14 18:45:44 -08:00
memory_hotplug.c
Add IORESOUCE_BUSY flag for System RAM
2007-11-14 18:45:39 -08:00
mempolicy.c
Migration: find correct vma in new_vma_page()
2007-11-14 18:45:38 -08:00
mempool.c
spelling fixes: mm/
2007-10-20 01:27:18 +02:00
migrate.c
Typo fixes retrun -> return
2007-10-20 02:13:26 +02:00
mincore.c
[PATCH] mincore: vma crossing fix
2007-02-15 09:57:03 -08:00
mlock.c
do not limit locked memory when RLIMIT_MEMLOCK is RLIM_INFINITY
2007-07-16 09:05:37 -07:00
mmap.c
fix mprotect vma_wants_writenotify prot
2007-10-23 08:32:06 -07:00
mmzone.c
[PATCH] remove EXPORT_UNUSED_SYMBOL'ed symbols
2006-12-07 08:39:44 -08:00
mprotect.c
fix mprotect vma_wants_writenotify prot
2007-10-23 08:32:06 -07:00
mremap.c
sparse pointer use of zero as null
2007-10-18 14:37:31 -07:00
msync.c
Detach sched.h from mm.h
2007-05-21 09:18:19 -07:00
nommu.c
NOMMU: mm/nommu.c needs linux/module.h
2007-10-29 07:53:26 -07:00
oom_kill.c
oom_kill bug
2007-10-20 15:04:06 -07:00
page-writeback.c
dirty page balancing: Get rid of broken unmapped_ratio logic
2007-11-15 16:41:52 -08:00
page_alloc.c
Fix boot problem with iSeries lacking hugepage support
2007-11-29 09:24:51 -08:00
page_io.c
Drop 'size' argument from bio_endio and bi_end_io
2007-10-10 09:25:57 +02:00
page_isolation.c
memory hotremove: unset migrate type "ISOLATE" after removal
2007-11-14 18:45:38 -08:00
pdflush.c
Freezer: make kernel threads nonfreezable by default
2007-07-17 10:23:02 -07:00
prio_tree.c
spelling fixes: mm/
2007-10-20 01:27:18 +02:00
quicklist.c
Quicklists for page table pages
2007-05-07 12:12:54 -07:00
readahead.c
mm: bdi init hooks
2007-10-17 08:42:45 -07:00
rmap.c
[S390] Optimize storage key handling for anonymous pages
2007-11-20 11:13:46 +01:00
shmem.c
tmpfs: restore missing clear_highpage
2007-11-28 11:04:28 -08:00
shmem_acl.c
[PATCH] Fix typos in mm/shmem_acl.c
2006-10-11 11:14:23 -07:00
slab.c
slab: fix typo in allocation failure handling
2007-11-14 18:45:36 -08:00
slob.c
slob: fix memory corruption
2007-11-15 08:36:27 -08:00
slub.c
SLUB: killed the unused "end" variable
2007-11-12 10:32:29 -08:00
sparse-vmemmap.c
mm/sparse-vmemmap.c: make sure init_mm is included
2007-10-30 08:06:55 -07:00
sparse.c
Revert "x86_64: allocate sparsemem memmap above 4G"
2007-10-29 14:05:37 -07:00
swap.c
spelling fixes: mm/
2007-10-20 01:27:18 +02:00
swap_state.c
mm: clarify __add_to_swap_cache locking
2007-10-16 09:42:53 -07:00
swapfile.c
Replace CONFIG_SOFTWARE_SUSPEND with CONFIG_HIBERNATION
2007-07-29 16:45:38 -07:00
thrash.c
Bug in mm/thrash.c function grab_swap_token()
2007-05-11 08:29:32 -07:00
tiny-shmem.c
r/o bind mounts: filesystem helpers for custom 'struct file's
2007-10-17 08:43:04 -07:00
truncate.c
Drop some headers from mm.h
2007-10-17 08:42:55 -07:00
util.c
fix mm/util.c:krealloc()
2007-11-14 18:45:41 -08:00
vmalloc.c
spelling fixes: mm/
2007-10-20 01:27:18 +02:00
vmscan.c
spelling fixes: mm/
2007-10-20 01:27:18 +02:00
vmstat.c
vmstat: fix section mismatch warning
2007-11-14 18:45:42 -08:00