summaryrefslogtreecommitdiff
path: root/arch/x86/machine
diff options
context:
space:
mode:
authorRichard Braun <rbraun@sceen.net>2012-12-12 21:56:44 +0100
committerRichard Braun <rbraun@sceen.net>2012-12-12 21:56:44 +0100
commit51bff7b18de9329d7bd77324cc597e72173fae74 (patch)
tree779b279c8ccb9f1d91b4ee8055718ae62771c8a1 /arch/x86/machine
parent36cce230ead886a82521dd6988e2fe120eeef3fc (diff)
kern/thread: support multiprocessor scheduling
In practice, this merely means an idle thread now exists for each CPU, and threads can be preempted and rescheduled on each of them. There is currently no migration between processors.
Diffstat (limited to 'arch/x86/machine')
-rw-r--r--arch/x86/machine/lapic.c4
-rw-r--r--arch/x86/machine/trap.c3
2 files changed, 1 insertions, 6 deletions
diff --git a/arch/x86/machine/lapic.c b/arch/x86/machine/lapic.c
index e65d5a3b..10d6b40e 100644
--- a/arch/x86/machine/lapic.c
+++ b/arch/x86/machine/lapic.c
@@ -340,10 +340,8 @@ lapic_intr_timer(struct trap_frame *frame)
{
(void)frame;
-#if 0
- thread_tick();
-#endif
lapic_eoi();
+ thread_tick();
}
void
diff --git a/arch/x86/machine/trap.c b/arch/x86/machine/trap.c
index a26212a2..18bff6bc 100644
--- a/arch/x86/machine/trap.c
+++ b/arch/x86/machine/trap.c
@@ -150,10 +150,7 @@ trap_main(struct trap_frame *frame)
{
assert(frame->vector < ARRAY_SIZE(trap_handlers));
trap_handlers[frame->vector].fn(frame);
-
-#if 0
thread_reschedule();
-#endif
}
#ifdef __LP64__