Linux MIPS Architecture development
 help / color / mirror / Atom feed
* [PATCH] smp sched typo
@ 2002-05-15 20:17 Jun Sun
  0 siblings, 0 replies; only message in thread
From: Jun Sun @ 2002-05-15 20:17 UTC (permalink / raw)
  To: Linus Torvalds; +Cc: Alan Cox, ralf, linux-mips, linuxppc-dev

[-- Attachment #1: Type: text/plain, Size: 343 bytes --]


Linus,

I found this bug in 2.4 kernel. I have verified that the bug exists on MIPS 
SMP and PPC SMP, but not on i386 SMP.  See the detailed explanation inside the 
patch.

2.5 sched.c has been re-written quite a bit and does not have this problem.


http://linux.junsun.net/patches/generic/submitted/020515-2.4.18-smp-sched-typo.patch

Jun


[-- Attachment #2: 020515-2.4.18-smp-sched-typo.patch --]
[-- Type: text/plain, Size: 757 bytes --]


Gcc will optimizie out the whole 'if' branch on platforms where
cycles_t is not unsigned long long (such as MIPS, PPC).

The symptom for this bug is not fatal - perhaps that is ther reason
why nobody has found it so far.  Higher priority process will be delayed
to start its execution.  One of my tests shows on a heavy-loaded system 
the delay is about 5 to 6 jiffies.  

Jun, 020515

diff -Nru link/kernel/sched.c.orig link/kernel/sched.c
--- link/kernel/sched.c.orig	Fri Dec 21 09:42:04 2001
+++ link/kernel/sched.c	Wed May 15 12:38:12 2002
@@ -282,7 +282,7 @@
 				target_tsk = tsk;
 			}
 		} else {
-			if (oldest_idle == -1ULL) {
+			if (oldest_idle == (cycles_t)-1) {
 				int prio = preemption_goodness(tsk, p, cpu);
 
 				if (prio > max_prio) {

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2002-05-15 20:19 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2002-05-15 20:17 [PATCH] smp sched typo Jun Sun

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox