From cb908a64349e1e4623cbfe2a160788332eb0ce80 Mon Sep 17 00:00:00 2001 From: John Hodge Date: Sun, 26 Feb 2012 21:24:42 +0800 Subject: [PATCH] Kernel/x86 - Added option to disable preemption, and used it --- KernelLand/Kernel/arch/x86/proc.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/KernelLand/Kernel/arch/x86/proc.c b/KernelLand/Kernel/arch/x86/proc.c index aef72785..281b6288 100644 --- a/KernelLand/Kernel/arch/x86/proc.c +++ b/KernelLand/Kernel/arch/x86/proc.c @@ -18,6 +18,7 @@ #define DEBUG_TRACE_SWITCH 0 #define DEBUG_DISABLE_DOUBLEFAULT 1 #define DEBUG_VERY_SLOW_PERIOD 0 +#define DEBUG_NOPREEMPT 1 // === CONSTANTS === // Base is 1193182 @@ -989,6 +990,7 @@ void Proc_Scheduler(int CPU) // Call the timer update code Timer_CallTimers(); + #if !DEBUG_NOPREEMPT // If two ticks happen within the same task, and it's not an idle task, swap if( gaCPUs[CPU].Current->TID > giNumCPUs && gaCPUs[CPU].Current == gaCPUs[CPU].LastTimerThread ) { @@ -996,6 +998,7 @@ void Proc_Scheduler(int CPU) } gaCPUs[CPU].LastTimerThread = gaCPUs[CPU].Current; + #endif } // === EXPORTS === -- 2.20.1