From dbad391a9b4e861fd3d660069ed448db85144e17 Mon Sep 17 00:00:00 2001 From: Brandon Potter Date: Thu, 17 Mar 2016 10:30:33 -0700 Subject: syscall_emul: update x86 mmap base address --- src/arch/x86/process.cc | 24 ++++++++++++++++++------ 1 file changed, 18 insertions(+), 6 deletions(-) (limited to 'src/arch/x86') diff --git a/src/arch/x86/process.cc b/src/arch/x86/process.cc index f0b8370c0..d2ce4dbd1 100644 --- a/src/arch/x86/process.cc +++ b/src/arch/x86/process.cc @@ -112,9 +112,15 @@ X86_64LiveProcess::X86_64LiveProcess(LiveProcessParams *params, // Set pointer for next thread stack. Reserve 8M for main stack. next_thread_stack_base = stack_base - (8 * 1024 * 1024); - // Set up region for mmaps. This was determined empirically and may not - // always be correct. - mmap_end = (Addr)0x2aaaaaaab000ULL; + // "mmap_base" is a function which defines where mmap region starts in + // the process address space. + // mmap_base: PAGE_ALIGN(TASK_SIZE-MIN_GAP-mmap_rnd()) + // TASK_SIZE: (1<<47)-PAGE_SIZE + // MIN_GAP: 128*1024*1024+stack_maxrandom_size() + // We do not use any address space layout randomization in gem5 + // therefore the random fields become zero; the smallest gap space was + // chosen but gap could potentially be much larger. + mmap_end = (Addr)0x7FFFF7FFF000ULL; } void @@ -149,9 +155,15 @@ I386LiveProcess::I386LiveProcess(LiveProcessParams *params, // Set pointer for next thread stack. Reserve 8M for main stack. next_thread_stack_base = stack_base - (8 * 1024 * 1024); - // Set up region for mmaps. This was determined empirically and may not - // always be correct. - mmap_end = (Addr)0xf7ffe000ULL; + // "mmap_base" is a function which defines where mmap region starts in + // the process address space. + // mmap_base: PAGE_ALIGN(TASK_SIZE-MIN_GAP-mmap_rnd()) + // TASK_SIZE: 0xC0000000 + // MIN_GAP: 128*1024*1024+stack_maxrandom_size() + // We do not use any address space layout randomization in gem5 + // therefore the random fields become zero; the smallest gap space was + // chosen but gap could potentially be much larger. + mmap_end = (Addr)0xB7FFF000ULL; } SyscallDesc* -- cgit v1.2.3