summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRon Dreslinski <rdreslin@umich.edu>2007-04-16 11:31:54 -0400
committerRon Dreslinski <rdreslin@umich.edu>2007-04-16 11:31:54 -0400
commit2952c34096357dffc207778ea1b73e71387ac010 (patch)
treee5e1fe222dd282b4a1678ed88a704107d0f20350
parenteefbda7f7c54735791dab70626a40a7d29aa8a80 (diff)
downloadgem5-2952c34096357dffc207778ea1b73e71387ac010.tar.xz
Fixes for splash, may conflict with Korey's SMT work and doesn't support 03cpu yet.
src/cpu/simple/base.cc: Cpu's should start as unallocated, not suspended src/cpu/simple_thread.cc: Wait for a thread to be assigned to activate the cpu src/kern/tru64/tru64.hh: When looking for a open cpu to assign threads, look for an unallocated one, not a suspended one. --HG-- extra : convert_revision : 5e3ad2e96b4a715ed38293ceaccff5b9f4ea7985
-rw-r--r--src/cpu/simple/base.cc2
-rw-r--r--src/cpu/simple_thread.cc8
-rw-r--r--src/kern/tru64/tru64.hh2
3 files changed, 6 insertions, 6 deletions
diff --git a/src/cpu/simple/base.cc b/src/cpu/simple/base.cc
index 877dc5bd4..4fed2059b 100644
--- a/src/cpu/simple/base.cc
+++ b/src/cpu/simple/base.cc
@@ -79,7 +79,7 @@ BaseSimpleCPU::BaseSimpleCPU(Params *p)
/* asid */ 0);
#endif // !FULL_SYSTEM
- thread->setStatus(ThreadContext::Suspended);
+ thread->setStatus(ThreadContext::Unallocated);
tc = thread->getTC();
diff --git a/src/cpu/simple_thread.cc b/src/cpu/simple_thread.cc
index 39f31782b..191ae2f2e 100644
--- a/src/cpu/simple_thread.cc
+++ b/src/cpu/simple_thread.cc
@@ -221,10 +221,10 @@ SimpleThread::activate(int delay)
lastActivate = curTick;
- if (status() == ThreadContext::Unallocated) {
- cpu->activateWhenReady(tid);
- return;
- }
+// if (status() == ThreadContext::Unallocated) {
+// cpu->activateWhenReady(tid);
+// return;
+// }
_status = ThreadContext::Active;
diff --git a/src/kern/tru64/tru64.hh b/src/kern/tru64/tru64.hh
index b94276035..a7703be7c 100644
--- a/src/kern/tru64/tru64.hh
+++ b/src/kern/tru64/tru64.hh
@@ -792,7 +792,7 @@ class Tru64 : public OperatingSystem
for (int i = 0; i < process->numCpus(); ++i) {
ThreadContext *tc = process->threadContexts[i];
- if (tc->status() == ThreadContext::Suspended) {
+ if (tc->status() == ThreadContext::Unallocated) {
// inactive context... grab it
init_thread_context(tc, attrp, uniq_val);