aboutsummaryrefslogtreecommitdiffstats
path: root/include/asm-sparc64
diff options
context:
space:
mode:
authorDavid S. Miller <davem@sunset.davemloft.net>2006-03-17 17:41:03 -0500
committerDavid S. Miller <davem@sunset.davemloft.net>2006-03-20 04:16:35 -0500
commita91690ddd05ab0b7fbdd37733875525ac75c20f2 (patch)
treef6937c0ce29c79078d6df8346a374a7b9947f360 /include/asm-sparc64
parentb5e7ae5dd034c2c0ed75c31fca04a805097817bc (diff)
[SPARC64]: Top-down address space allocation for 32-bit tasks.
Currently allocations are very constrained for 32-bit processes. It grows down-up from 0x70000000 to 0xf0000000 which gives about 2GB of stack + dynamic mmap() space. So support the top-down method, and we need to override the generic helper function in order to deal with D-cache coloring. With these changes I was able to squeeze out a mmap() just over 3.6GB in size in a 32-bit process. Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'include/asm-sparc64')
-rw-r--r--include/asm-sparc64/pgtable.h5
-rw-r--r--include/asm-sparc64/processor.h2
2 files changed, 6 insertions, 1 deletions
diff --git a/include/asm-sparc64/pgtable.h b/include/asm-sparc64/pgtable.h
index d427ce649214..ed4124edf837 100644
--- a/include/asm-sparc64/pgtable.h
+++ b/include/asm-sparc64/pgtable.h
@@ -752,8 +752,11 @@ extern int io_remap_pfn_range(struct vm_area_struct *vma, unsigned long from,
752 752
753#include <asm-generic/pgtable.h> 753#include <asm-generic/pgtable.h>
754 754
755/* We provide our own get_unmapped_area to cope with VA holes for userland */ 755/* We provide our own get_unmapped_area to cope with VA holes and
756 * SHM area cache aliasing for userland.
757 */
756#define HAVE_ARCH_UNMAPPED_AREA 758#define HAVE_ARCH_UNMAPPED_AREA
759#define HAVE_ARCH_UNMAPPED_AREA_TOPDOWN
757 760
758/* We provide a special get_unmapped_area for framebuffer mmaps to try and use 761/* We provide a special get_unmapped_area for framebuffer mmaps to try and use
759 * the largest alignment possible such that larget PTEs can be used. 762 * the largest alignment possible such that larget PTEs can be used.
diff --git a/include/asm-sparc64/processor.h b/include/asm-sparc64/processor.h
index 685479fb4364..c6896b88283e 100644
--- a/include/asm-sparc64/processor.h
+++ b/include/asm-sparc64/processor.h
@@ -217,6 +217,8 @@ static inline void prefetchw(const void *x)
217 217
218#define spin_lock_prefetch(x) prefetchw(x) 218#define spin_lock_prefetch(x) prefetchw(x)
219 219
220#define HAVE_ARCH_PICK_MMAP_LAYOUT
221
220#endif /* !(__ASSEMBLY__) */ 222#endif /* !(__ASSEMBLY__) */
221 223
222#endif /* !(__ASM_SPARC64_PROCESSOR_H) */ 224#endif /* !(__ASM_SPARC64_PROCESSOR_H) */