From: Kevin Lim Date: Tue, 21 Aug 2007 23:16:56 +0000 (-0700) Subject: o3: Fix for retry ID bug. X-Git-Tag: m5_2.0_beta4~157^2~2 X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=e1054170b54c37043d768d454f7b0eafcf1c119e;p=gem5.git o3: Fix for retry ID bug. It should be cleared prior to the call to recvRetry. Add extra DPRINTF statement for clearer debugging output. --HG-- extra : convert_revision : e2332754743f42d60e159ac89f6fb0fd8b7f57f8 --- diff --git a/src/cpu/o3/lsq_impl.hh b/src/cpu/o3/lsq_impl.hh index 10c0afd38..c71a0ad9d 100644 --- a/src/cpu/o3/lsq_impl.hh +++ b/src/cpu/o3/lsq_impl.hh @@ -101,10 +101,11 @@ LSQ::DcachePort::recvRetry() //Squashed, so drop it return; } - lsq->thread[lsq->retryTid].recvRetry(); + int curr_retry_tid = lsq->retryTid; // Speculatively clear the retry Tid. This will get set again if // the LSQUnit was unable to complete its access. lsq->retryTid = -1; + lsq->thread[curr_retry_tid].recvRetry(); } template diff --git a/src/cpu/o3/lsq_unit_impl.hh b/src/cpu/o3/lsq_unit_impl.hh index 8b2e82d8e..4ab149cee 100644 --- a/src/cpu/o3/lsq_unit_impl.hh +++ b/src/cpu/o3/lsq_unit_impl.hh @@ -928,6 +928,7 @@ void LSQUnit::recvRetry() { if (isStoreBlocked) { + DPRINTF(LSQUnit, "Receiving retry: store blocked\n"); assert(retryPkt != NULL); if (dcachePort->sendTiming(retryPkt)) {