# Node ID c32578991199dcbca0f7a55230e6b396a531941f # Parent 2a0f7f75fe9c814a2969f4ac52bc14e9c53e336d diff --git a/src/cpu/o3/commit.hh b/src/cpu/o3/commit.hh --- a/src/cpu/o3/commit.hh +++ b/src/cpu/o3/commit.hh @@ -218,6 +218,9 @@ /** Takes over from another CPU's thread. */ void takeOverFrom(); + /** Activates a thread */ + void activateThread(ThreadID tid); + /** Deschedules a thread from scheduling */ void deactivateThread(ThreadID tid); diff --git a/src/cpu/o3/commit_impl.hh b/src/cpu/o3/commit_impl.hh --- a/src/cpu/o3/commit_impl.hh +++ b/src/cpu/o3/commit_impl.hh @@ -456,6 +456,15 @@ template void +DefaultCommit::activateThread(ThreadID tid) +{ + DPRINTF(Commit, "Activating thread\n"); + commitStatus[tid] = Running; + priority_list.push_back(tid); +} + +template +void DefaultCommit::deactivateThread(ThreadID tid) { list::iterator thread_it = std::find(priority_list.begin(), diff --git a/src/cpu/o3/cpu.cc b/src/cpu/o3/cpu.cc --- a/src/cpu/o3/cpu.cc +++ b/src/cpu/o3/cpu.cc @@ -738,6 +738,7 @@ // deschedule itself. activityRec.activity(); fetch.wakeFromQuiesce(tid); + commit.activateThread(tid); Cycles cycles(curCycle() - lastRunningCycle); // @todo: This is an oddity that is only here to match the stats