From: John Hodge Date: Sun, 26 Feb 2012 13:24:42 +0000 (+0800) Subject: Kernel/x86 - Added option to disable preemption, and used it X-Git-Tag: rel0.15~751 X-Git-Url: https://git.ucc.asn.au/?a=commitdiff_plain;h=cb908a64349e1e4623cbfe2a160788332eb0ce80;p=tpg%2Facess2.git Kernel/x86 - Added option to disable preemption, and used it --- 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 ===