sim-se: Extend MemState API to use VMAs
authorMatthew Poremba <matthew.poremba@amd.com>
Tue, 17 Mar 2020 18:34:22 +0000 (13:34 -0500)
committerMatthew Poremba <matthew.poremba@amd.com>
Wed, 25 Mar 2020 15:42:45 +0000 (15:42 +0000)
commit56ee199b3d67943fda4f91c466cbdecfc5d54cb8
tree539437c692525d77edf5592e4a88c364c760511e
parentbf38808666a11272bee9fa6290cf8bc4afb03d69
sim-se: Extend MemState API to use VMAs

Extend the MemState API to handle tracking dynamically sized memory
regions of a Process class which may be added, moved, removed, or
change in size during the course of simulation. This utilizes the
virtual memory areas (VMA) class to track individual regions and
provides a fixup method to handle physical page allocation in case of
a page fault. This allows for lazy allocation of the stack, heap, and
mmap regions of memory.

Change-Id: I3ef10657e5f8e8f0e328bdf0aa15a27b1dde39bf
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/25483
Tested-by: Gem5 Cloud Project GCB service account <345032938727@cloudbuild.gserviceaccount.com>
Reviewed-by: Jason Lowe-Power <power.jg@gmail.com>
Maintainer: Jason Lowe-Power <power.jg@gmail.com>
src/arch/arm/process.cc
src/arch/mips/process.cc
src/arch/power/process.cc
src/arch/riscv/process.cc
src/arch/sparc/process.hh
src/arch/x86/process.cc
src/sim/SConscript
src/sim/mem_state.cc [new file with mode: 0644]
src/sim/mem_state.hh