mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-24 05:29:04 -04:00
[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>
This commit is contained in:
parent
b5e7ae5dd0
commit
a91690ddd0
4 changed files with 189 additions and 10 deletions
|
|
@ -752,8 +752,11 @@ extern int io_remap_pfn_range(struct vm_area_struct *vma, unsigned long from,
|
|||
|
||||
#include <asm-generic/pgtable.h>
|
||||
|
||||
/* We provide our own get_unmapped_area to cope with VA holes for userland */
|
||||
/* We provide our own get_unmapped_area to cope with VA holes and
|
||||
* SHM area cache aliasing for userland.
|
||||
*/
|
||||
#define HAVE_ARCH_UNMAPPED_AREA
|
||||
#define HAVE_ARCH_UNMAPPED_AREA_TOPDOWN
|
||||
|
||||
/* We provide a special get_unmapped_area for framebuffer mmaps to try and use
|
||||
* the largest alignment possible such that larget PTEs can be used.
|
||||
|
|
|
|||
|
|
@ -217,6 +217,8 @@ static inline void prefetchw(const void *x)
|
|||
|
||||
#define spin_lock_prefetch(x) prefetchw(x)
|
||||
|
||||
#define HAVE_ARCH_PICK_MMAP_LAYOUT
|
||||
|
||||
#endif /* !(__ASSEMBLY__) */
|
||||
|
||||
#endif /* !(__ASM_SPARC64_PROCESSOR_H) */
|
||||
|
|
|
|||
Loading…
Reference in a new issue