mem-ruby: fix possible MOESI_CMP deadlock
Freeing the L2 block only after local invalidates are acked in the OLSF state may lead to a deadlock. Change-Id: Ia4b60e5bc9e2d3315b874a8c6616478db6eb38c1 Signed-off-by: Tiago Mück <tiago.muck@arm.com> Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/21929 Reviewed-by: Jason Lowe-Power <power.jg@gmail.com> Maintainer: Jason Lowe-Power <power.jg@gmail.com> Tested-by: kokoro <noreply+kokoro@google.com>
This commit is contained in:
@@ -1910,6 +1910,9 @@ machine(MachineType:L2Cache, "Token protocol")
|
||||
i_allocateTBE;
|
||||
t_recordFwdXID;
|
||||
ee_sendLocalInv;
|
||||
gg_clearLocalSharers;
|
||||
checkCacheNoSharersNoOwner;
|
||||
rr_deallocateL2CacheBlock;
|
||||
m_popRequestQueue;
|
||||
}
|
||||
|
||||
@@ -1921,10 +1924,7 @@ machine(MachineType:L2Cache, "Token protocol")
|
||||
|
||||
transition(OLSF, All_Acks, I) {
|
||||
c_sendDataFromTBEToFwdGETX;
|
||||
gg_clearLocalSharers;
|
||||
s_deallocateTBE;
|
||||
checkCacheNoSharersNoOwner;
|
||||
rr_deallocateL2CacheBlock;
|
||||
n_popTriggerQueue;
|
||||
wa_wakeUpDependents;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user