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 m5-dev@m5sim.org http://m5sim.org/mailman/listinfo/m5-dev