KernelVMAddressing
Regular addressing:
|
TASK_SIZE |
TASK_UNMAPPED_BASE |
mmap_base |
i386 |
PAGE_OFFSET=0xC00000000 (3GB) |
PAGE_ALIGN(TASK_SIZE/3) |
PAGE_ALIGN( TASK_SIZE - bound(128M, stack_limit, TASK_SIZE/6*5) (- (get_random_int() % (1024*1024)) |
sparc32 |
|
|
PAGE_ALIGN( TASK_SIZE - bound(128M, stack_limit, TASK_SIZE/6*5) (- (get_random_int() & (1024*1024 - 1)) |
powerpc32 |
|
|
|
Legacy VM addressing is enabled in any of the following situations: personality & ADDR_COMPAT_LAYOUT TASK_SIZE TASK_UNMAPPED_BASE mmap_base i386 PAGE_OFFSET=0xC00000000 (3GB) PAGE_ALIGN(TASK_SIZE/3) TASK_UNMAPPED_BASE x86_64 0x800000000000 - 4096 PAGE_ALIGN(TASK_SIZE/3) TASK_UNMAPPED_BASE (+ (get_random_int() & 0x0fffffff) << PAGE_SHIFT) sparc32 TASK_UNMAPPED_BASE (+ (get_random_int() & (1024*1024 - 1)) sparc64 TASK_UNMAPPED_BASE (+ (get_random_int() << PAGE_SHIFT) & 0xffffffff) powerpc32 powerpc64