diff options
author | Geoffrey Blake <Geoffrey.Blake@arm.com> | 2014-03-07 15:56:23 -0500 |
---|---|---|
committer | Geoffrey Blake <Geoffrey.Blake@arm.com> | 2014-03-07 15:56:23 -0500 |
commit | c4a8e5c36cbc30feee6ecd5c706e3275301b25ef (patch) | |
tree | 6df832ed4d134b38286073dd488122e136e34613 /src/cpu/base.cc | |
parent | e88cffb30a808bcfe30858167ae704ca890c72df (diff) | |
download | gem5-c4a8e5c36cbc30feee6ecd5c706e3275301b25ef.tar.xz |
arm: Handle functional TLB walks properly
The table walker code currently accounts for two types of walks,
Atomic and Timing, and treats them differently. Atomic walks keep a
single instance of WalkerState around for all walks to use in
currState. Timing mode keeps a queue of in-flight WalkerStates and
maintains currState as NULL between walks.
If a functional walk is done during Timing mode, it is treated as an
atomic walk and either creates a persistent WalkerState if in between
Timing walks, or stomps an existing currState for an in-progress
Timing walk.
This patch distinguishes functional walks as being able to exist at
any time and sets up a temporary WalkerState for its exclusive use and
then cleans up when finished, leaving any in progress Atomic or Timing
walks undisturbed.
Diffstat (limited to 'src/cpu/base.cc')
0 files changed, 0 insertions, 0 deletions