changeset fc2e234b4404 in /z/repo/m5
details: http://repo.m5sim.org/m5?cmd=changeset;node=fc2e234b4404
description:
o3, inorder: fix FS bug due to initializing ThreadState to Halted.
For some reason o3 FS init() only called initCPU if the thread state
was Suspended, which was no longer the case. There's no apparent
reason to check, so I whacked the test completely rather than
changing the check to Halted.
The inorder init() was also updated to be symmetric, though the
previous code was just a fancy no-op.
diffstat:
2 files changed, 9 insertions(+), 20 deletions(-)
src/cpu/inorder/cpu.cc | 14 ++++++--------
src/cpu/o3/cpu.cc | 15 +++------------
diffs (61 lines):
diff -r f1a9f7f6e7c6 -r fc2e234b4404 src/cpu/inorder/cpu.cc
--- a/src/cpu/inorder/cpu.cc Wed Apr 15 23:12:00 2009 -0700
+++ b/src/cpu/inorder/cpu.cc Fri Apr 17 16:54:58 2009 -0700
@@ -29,6 +29,8 @@
*
*/
+#include "config/full_system.hh"
+
#include "arch/utility.hh"
#include "cpu/exetrace.hh"
#include "cpu/activity.hh"
@@ -420,16 +422,12 @@
for (int i = 0; i < number_of_threads; ++i)
thread[i]->inSyscall = true;
+#if FULL_SYSTEM
for (int tid=0; tid < number_of_threads; tid++) {
-
- ThreadContext *src_tc = thread[tid]->getTC();
-
- // Threads start in the Suspended State
- if (src_tc->status() != ThreadContext::Suspended) {
- continue;
- }
-
+ ThreadContext *src_tc = threadContexts[tid];
+ TheISA::initCPU(src_tc, src_tc->contextId());
}
+#endif
// Clear inSyscall.
for (int i = 0; i < number_of_threads; ++i)
diff -r f1a9f7f6e7c6 -r fc2e234b4404 src/cpu/o3/cpu.cc
--- a/src/cpu/o3/cpu.cc Wed Apr 15 23:12:00 2009 -0700
+++ b/src/cpu/o3/cpu.cc Fri Apr 17 16:54:58 2009 -0700
@@ -568,21 +568,12 @@
for (int i = 0; i < number_of_threads; ++i)
thread[i]->inSyscall = true;
+#if FULL_SYSTEM
for (int tid=0; tid < number_of_threads; tid++) {
-#if FULL_SYSTEM
ThreadContext *src_tc = threadContexts[tid];
-#else
- ThreadContext *src_tc = thread[tid]->getTC();
+ TheISA::initCPU(src_tc, src_tc->contextId());
+ }
#endif
- // Threads start in the Suspended State
- if (src_tc->status() != ThreadContext::Suspended) {
- continue;
- }
-
-#if FULL_SYSTEM
- TheISA::initCPU(src_tc, src_tc->contextId());
-#endif
- }
// Clear inSyscall.
for (int i = 0; i < number_of_threads; ++i)
_______________________________________________
m5-dev mailing list
[email protected]
http://m5sim.org/mailman/listinfo/m5-dev