summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorGabe Black <gabeblack@google.com>2018-08-31 17:34:38 -0700
committerGabe Black <gabeblack@google.com>2018-10-03 00:31:01 +0000
commit643918fe491421823ecfba72500b19cc2b435ffc (patch)
tree196dd93f089dd9df7616e4e814011e8711c5d9d6 /src
parente99a575c78735ad9e35e30ee8714d5e2798e3014 (diff)
downloadgem5-643918fe491421823ecfba72500b19cc2b435ffc.tar.xz
systemc: Toggle off clumping methods together in the ready list.
This is totally legal and good for performance, but because some of Accellera's tests depend on processes which can run in any order running in a particular order to reproduce the golden output, it needs to be disabled to pass the tests. This change leaves it as an option which could even be plumbed out in the future to support some sort of "compatibility" mode with the tests. An alternative would be to verify that the tests pass, change the ordering to the alternative (but still correct) order, and then update the reference output. Change-Id: I113a40dec52f8b623253f8a27886b4a0abe89485 Reviewed-on: https://gem5-review.googlesource.com/c/12457 Reviewed-by: Gabe Black <gabeblack@google.com> Maintainer: Gabe Black <gabeblack@google.com>
Diffstat (limited to 'src')
-rw-r--r--src/systemc/core/scheduler.cc4
1 files changed, 3 insertions, 1 deletions
diff --git a/src/systemc/core/scheduler.cc b/src/systemc/core/scheduler.cc
index d5081c667..eda4ed7e4 100644
--- a/src/systemc/core/scheduler.cc
+++ b/src/systemc/core/scheduler.cc
@@ -190,7 +190,9 @@ void
Scheduler::ready(Process *p)
{
// Clump methods together to minimize context switching.
- if (p->procKind() == ::sc_core::SC_METHOD_PROC_)
+ static bool cluster_methods = false;
+
+ if (cluster_methods && p->procKind() == ::sc_core::SC_METHOD_PROC_)
readyList.pushFirst(p);
else
readyList.pushLast(p);