sim-se: Update mmap, munmap, mremap to use MemState
authorMatthew Poremba <matthew.poremba@amd.com>
Tue, 24 Mar 2020 18:32:18 +0000 (13:32 -0500)
committerMatthew Poremba <matthew.poremba@amd.com>
Wed, 25 Mar 2020 19:18:15 +0000 (19:18 +0000)
commit8824f25da40856412539b0321f8f63059c1441c5
tree513e9fefbf49d45f12f9f63d5f7a461e79948c88
parent5c2fb0c65204960bb743ec06197d8994da71c82b
sim-se: Update mmap, munmap, mremap to use MemState

This updates the syscalls for mmap, munmap, and mremap. The mmap
changes now create a virtual memory area through the MemState class
to allow for lazy allocation of mmapped regions. This provides
substantial performance boost for sparse usage of mmaps. The munmap
syscall is added to reclaim the virtual memory area reserved for the
mmapped region. The mremap syscall moves or resizes an mmapped region
and updates the corresponding virtual memory area region to keep the
page tables in sync.

Change-Id: Ide158e69cdff19bc81157e3e9826bcabc2a51140
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/26863
Tested-by: Gem5 Cloud Project GCB service account <345032938727@cloudbuild.gserviceaccount.com>
Tested-by: kokoro <noreply+kokoro@google.com>
Reviewed-by: Jason Lowe-Power <power.jg@gmail.com>
Maintainer: Jason Lowe-Power <power.jg@gmail.com>
src/sim/syscall_emul.cc
src/sim/syscall_emul.hh