cpu: quiesce pseudoinsts: Always do full quiesce
authorEmilio Castillo <ecastill@bsc.es>
Wed, 26 Aug 2015 19:20:30 +0000 (14:20 -0500)
committerEmilio Castillo <ecastill@bsc.es>
Wed, 26 Aug 2015 19:20:30 +0000 (14:20 -0500)
The O3CPU blocks the Fetch when it sees a quiesce instruction (IsQuiesce flag).
When the inst. is executed, a quiesce event is created to reactivate the
context and unblock the Fetch.

If the quiesceNs or quiesceCycles are called with a value of 0, the
QuiesceEvent will not be created and the Fetch stage will remain blocked.

Committed by Joel Hestness <jthestness@gmail.com>

src/sim/pseudo_inst.cc

index 80737003c4e6de7e25cdd763d81c1f69651741aa..d4e2085df4f855e8f69cd57bef3b42790656fb86 100644 (file)
@@ -280,7 +280,7 @@ quiesceNs(ThreadContext *tc, uint64_t ns)
 
     BaseCPU *cpu = tc->getCpuPtr();
 
-    if (!cpu->params()->do_quiesce || ns == 0)
+    if (!cpu->params()->do_quiesce)
         return;
 
     EndQuiesceEvent *quiesceEvent = tc->getQuiesceEvent();
@@ -306,7 +306,7 @@ quiesceCycles(ThreadContext *tc, uint64_t cycles)
 
     BaseCPU *cpu = tc->getCpuPtr();
 
-    if (!cpu->params()->do_quiesce || cycles == 0)
+    if (!cpu->params()->do_quiesce)
         return;
 
     EndQuiesceEvent *quiesceEvent = tc->getQuiesceEvent();