sim-se: Implement Virtual Memory Area API
authorMatthew Poremba <matthew.poremba@amd.com>
Tue, 11 Feb 2020 23:46:16 +0000 (15:46 -0800)
committerMatthew Poremba <matthew.poremba@amd.com>
Thu, 19 Mar 2020 14:24:19 +0000 (14:24 +0000)
commit1566e47017b33c58fbd6325bb3d0f73f40e0befe
tree782c2c5424cc59b8252ed523a88c4fec745d6270
parent9edd7357f61dd1a5ea43320d988124a43f74a9ea
sim-se: Implement Virtual Memory Area API

Virtual memory areas are used to track regions of memory which may
change over the course of execution, such as heap, stack, and mmap. It
is a high-level mimicry of Linux' memory management. VMAs are intended
to be used to support lazy allocation of physical pages to valid VMAs
as the virtual addresses are touched. Lazy allocation increases speed
of simulation for SE mode processes which, for example, mmap large
files.

The VMAs can also be queried to generate a map of the process' memory
which is used in some libraries such as pthreads.

This changeset only adds APIs for virtual memory areas. These are used
in a subsequent changeset.

Change-Id: Ibbdce5be79a95e3231d2e1c9ee8f397b4503f0fb
Signed-off-by: Brandon Potter <Brandon.Potter@amd.com>
Signed-off-by: Michael LeBeane <Michael.Lebeane@amd.com>
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/25365
Reviewed-by: Giacomo Travaglini <giacomo.travaglini@arm.com>
Reviewed-by: Jason Lowe-Power <power.jg@gmail.com>
Maintainer: Jason Lowe-Power <power.jg@gmail.com>
Tested-by: kokoro <noreply+kokoro@google.com>
src/sim/SConscript
src/sim/vma.cc [new file with mode: 0644]
src/sim/vma.hh [new file with mode: 0644]