O3: Mark fetch stage as active if it faults.
authorSteve Reinhardt <steve.reinhardt@amd.com>
Sat, 26 Sep 2009 17:50:50 +0000 (10:50 -0700)
committerSteve Reinhardt <steve.reinhardt@amd.com>
Sat, 26 Sep 2009 17:50:50 +0000 (10:50 -0700)
Otherwise if the rest of the pipeline is idle then
fault will never propagate to commit to be handled,
causing CPU to deadlock.

src/cpu/o3/fetch_impl.hh

index 5c6e287dcb421657625ad234ad258d4fd724b9ad..e6815ef8aa6085b81d080d46674bfd2ffdf945fb 100644 (file)
@@ -1264,6 +1264,8 @@ DefaultFetch<Impl>::fetch(bool &status_change)
         toDecode->insts[numInst] = instruction;
         toDecode->size++;
 
+        wroteToTimeBuffer = true;
+
         DPRINTF(Fetch, "[tid:%i]: Blocked, need to handle the trap.\n",tid);
 
         fetchStatus[tid] = TrapPending;