summaryrefslogtreecommitdiffstats
path: root/src/kernel
diff options
context:
space:
mode:
authorPatrick Williams <iawillia@us.ibm.com>2011-03-24 10:28:22 -0500
committerPatrick Williams <iawillia@us.ibm.com>2011-03-24 10:28:22 -0500
commitb2a79686aca623ed5577da9f28ea80ba6d979034 (patch)
treeac2182ba31ac695b843c6c910f63795b20fc9347 /src/kernel
parenta9f22d0cc3a200599815f45ba1414eb67f44222b (diff)
downloadtalos-hostboot-b2a79686aca623ed5577da9f28ea80ba6d979034.tar.gz
talos-hostboot-b2a79686aca623ed5577da9f28ea80ba6d979034.zip
Ensure decrementer is initialized for normal task execution.
Diffstat (limited to 'src/kernel')
-rw-r--r--src/kernel/scheduler.C7
1 files changed, 6 insertions, 1 deletions
diff --git a/src/kernel/scheduler.C b/src/kernel/scheduler.C
index 3aab660b3..48902de7c 100644
--- a/src/kernel/scheduler.C
+++ b/src/kernel/scheduler.C
@@ -26,7 +26,12 @@ void Scheduler::setNextRunnable()
if (NULL == t)
{
t = CpuManager::getCurrentCPU()->idle_task;
- // Set short decrementer.
+ // TODO: Set short decrementer.
+ register uint64_t decrementer = TimeManager::getTimeSliceCount();
+ asm volatile("mtdec %0" :: "r"(decrementer));
+ }
+ else // Set normal timeslice to decrementer.
+ {
register uint64_t decrementer = TimeManager::getTimeSliceCount();
asm volatile("mtdec %0" :: "r"(decrementer));
}
OpenPOWER on IntegriCloud