mem-ruby: MOESI_CMP_directory sync fix
authorTimothy Hayes <timothy.hayes@arm.com>
Thu, 7 May 2020 10:07:05 +0000 (11:07 +0100)
committerGiacomo Travaglini <giacomo.travaglini@arm.com>
Mon, 11 May 2020 07:54:38 +0000 (07:54 +0000)
The recent commit dd6cd33 modified the behaviour of the the Ruby
sequencer to handle load linked requests as loads rather than
stores. This caused the regression test
realview-simple-timing-dual-ruby-ARM-x86_64-opt
to become stuck when booting Linux. This patch fixes the issue by
adding a missing forward_eviction_to_cpu action to the state
transition(OM, Fwd_GETX, IM).

Change-Id: I8f253c5709488b07ddc5143a15eda406e31f3cc6
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/28787
Reviewed-by: Jason Lowe-Power <power.jg@gmail.com>
Maintainer: Jason Lowe-Power <power.jg@gmail.com>
Tested-by: kokoro <noreply+kokoro@google.com>
src/mem/ruby/protocol/MOESI_CMP_directory-L1cache.sm

index b8d8ab4a0f4527a98d25f19ff67cc118b4c38a54..5a31d281fdf2bb85d2e4f223548b832834869706 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2019 ARM Limited
+ * Copyright (c) 2019-2020 ARM Limited
  * All rights reserved
  *
  * The license below extends only to copyright in the software and shall
@@ -1189,6 +1189,7 @@ machine(MachineType:L1Cache, "L1 cache protocol")
   // transition(OM, Fwd_GETX, OMF) {
   transition(OM, Fwd_GETX, IM) {
     ee_sendDataExclusive;
+    forward_eviction_to_cpu;
     l_popForwardQueue;
   }