diff options
author | Mel Gorman <mel@csn.ul.ie> | 2006-09-27 04:49:56 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@g5.osdl.org> | 2006-09-27 11:26:11 -0400 |
commit | 0e0b864e069c52a7b3e4a7da56e29b03a012fd75 (patch) | |
tree | e3fcfd997ef912ed3c61cb2b5c2ca57a7f45ec58 /arch/x86_64/mm | |
parent | 05e0caad3b7bd0d0fbeff980bca22f186241a501 (diff) |
[PATCH] Account for memmap and optionally the kernel image as holes
The x86_64 code accounted for memmap and some portions of the the DMA zone as
holes. This was because those areas would never be reclaimed and accounting
for them as memory affects min watermarks. This patch will account for the
memmap as a memory hole. Architectures may optionally use set_dma_reserve()
if they wish to account for a portion of memory in ZONE_DMA as a hole.
Signed-off-by: Mel Gorman <mel@csn.ul.ie>
Cc: Dave Hansen <haveblue@us.ibm.com>
Cc: Andy Whitcroft <apw@shadowen.org>
Cc: Andi Kleen <ak@muc.de>
Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Cc: Paul Mackerras <paulus@samba.org>
Cc: "Keith Mannthey" <kmannth@gmail.com>
Cc: "Luck, Tony" <tony.luck@intel.com>
Cc: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>
Cc: Yasunori Goto <y-goto@jp.fujitsu.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'arch/x86_64/mm')
-rw-r--r-- | arch/x86_64/mm/init.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/arch/x86_64/mm/init.c b/arch/x86_64/mm/init.c index 47928399e38a..3e16fe08150e 100644 --- a/arch/x86_64/mm/init.c +++ b/arch/x86_64/mm/init.c | |||
@@ -655,8 +655,10 @@ void __init reserve_bootmem_generic(unsigned long phys, unsigned len) | |||
655 | #else | 655 | #else |
656 | reserve_bootmem(phys, len); | 656 | reserve_bootmem(phys, len); |
657 | #endif | 657 | #endif |
658 | if (phys+len <= MAX_DMA_PFN*PAGE_SIZE) | 658 | if (phys+len <= MAX_DMA_PFN*PAGE_SIZE) { |
659 | dma_reserve += len / PAGE_SIZE; | 659 | dma_reserve += len / PAGE_SIZE; |
660 | set_dma_reserve(dma_reserve); | ||
661 | } | ||
660 | } | 662 | } |
661 | 663 | ||
662 | int kern_addr_valid(unsigned long addr) | 664 | int kern_addr_valid(unsigned long addr) |