cpu-o3: Reset fault status for mem access in pushRequest
Reset the fault status always before translation is initiated in pushRequest() in the LSQ. This avoids the problem when a strictly ordered load needs to be re-executed multiple times. If the translation is delayed at one of those attempts then the internal panicFault (from the previous execution attempt) can get fired at commit. Change-Id: I0c22b2f7afd6e2cb00bc359a4a01042efd2d01d2 Signed-off-by: Gabor Dozsa <gabor.dozsa@arm.com> Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/19388 Reviewed-by: Ciro Santilli <ciro.santilli@arm.com> Maintainer: Andreas Sandberg <andreas.sandberg@arm.com> Tested-by: kokoro <noreply+kokoro@google.com>
This commit is contained in:
@@ -724,6 +724,10 @@ LSQ<Impl>::pushRequest(const DynInstPtr& inst, bool isLoad, uint8_t *data,
|
||||
inst->setRequest();
|
||||
req->taskId(cpu->taskId());
|
||||
|
||||
// There might be fault from a previous execution attempt if this is
|
||||
// a strictly ordered load
|
||||
inst->getFault() = NoFault;
|
||||
|
||||
req->initiateTranslation();
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user