Review Board 2.0.15


arm: Fix TLB ignoring faults when table walking

Review Request #2533 - Created Nov. 25, 2014 and submitted

Information
Andreas Hansson
gem5
default
Reviewers
Default
Changeset 10580:6273e4f44a7a
---------------------------
arm: Fix TLB ignoring faults when table walking

This patch fixes a case where the Minor CPU can deadlock due to the lack
of a response to TLB request because of a bug in fault handling in the ARM
table walker.

TableWalker::processWalkWrapper is the scheduler-called wrapper which
handles deferred walks which calls to TableWalker::wait cannot immediately
process.  The handling of faults generated by processWalk{AArch64,LPAE,}
calls in those two functions is is different.  processWalkWrapper ignores
fault returns from processWalk... which can lead to ::finish not being
called on a translation.

This fix provides fault handling in processWalkWrapper similar to that
found in the leaf functions which BaseTLB::Translation::finish.

   
Review request changed
Updated (Dec. 2, 2014, 3:06 a.m.)

Status: Closed (submitted)