diff options
author | David S. Miller <davem@sunset.davemloft.net> | 2006-03-17 17:41:03 -0500 |
---|---|---|
committer | David S. Miller <davem@sunset.davemloft.net> | 2006-03-20 04:16:35 -0500 |
commit | a91690ddd05ab0b7fbdd37733875525ac75c20f2 (patch) | |
tree | f6937c0ce29c79078d6df8346a374a7b9947f360 /include/asm-sparc64 | |
parent | b5e7ae5dd034c2c0ed75c31fca04a805097817bc (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.h | 5 | ||||
-rw-r--r-- | include/asm-sparc64/processor.h | 2 |
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) */ |