Review Board 2.0.15


arm: Handle functional TLB walks properly

Review Request #2176 - Created Feb. 26, 2014 and submitted

Information
Andreas Hansson
gem5
default
Reviewers
Default
Changeset 10099:29f058c6b703
---------------------------
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.
All regressions pass

Runs with the checker that previously caused problems now work fine
Review request changed
Updated (March 7, 2014, 12:57 p.m.)

Status: Closed (submitted)