1566e47017b33c58fbd6325bb3d0f73f40e0befe
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>
This is the gem5 simulator. The main website can be found at http://www.gem5.org A good starting point is http://www.gem5.org/about, and for more information about building the simulator and getting started please see http://www.gem5.org/documentation and http://www.gem5.org/documentation/learning_gem5/introduction. To build gem5, you will need the following software: g++ or clang, Python (gem5 links in the Python interpreter), SCons, SWIG, zlib, m4, and lastly protobuf if you want trace capture and playback support. Please see http://www.gem5.org/documentation/general_docs/building for more details concerning the minimum versions of the aforementioned tools. Once you have all dependencies resolved, type 'scons build/<ARCH>/gem5.opt' where ARCH is one of ARM, NULL, MIPS, POWER, SPARC, or X86. This will build an optimized version of the gem5 binary (gem5.opt) for the the specified architecture. See http://www.gem5.org/documentation/general_docs/building for more details and options. The basic source release includes these subdirectories: - configs: example simulation configuration scripts - ext: less-common external packages needed to build gem5 - src: source code of the gem5 simulator - system: source for some optional system software for simulated systems - tests: regression tests - util: useful utility programs and files To run full-system simulations, you will need compiled system firmware (console and PALcode for Alpha), kernel binaries and one or more disk images. If you have questions, please send mail to gem5-users@gem5.org Enjoy using gem5 and please share your modifications and extensions.
Description