Re: 2.6.7-bk way too fast

From: Andrew Morton
Date: Mon Jun 21 2004 - 03:52:14 EST


Jeff Garzik <jgarzik@xxxxxxxxx> wrote:
>
> Something is definitely screwy with the latest -bk.

Would you believe that there is a totally separate bug in the latest -mm
which has exactly the same symptoms?

mark_offset_tsc() does

if (lost && abs(delay - delay_at_last_interrupt) > (900000/HZ))
jiffies_64++;

which is doing abs(unsigned long).

Which works OK if abs() in a function, but I made it a macro.

This fixes it up.


diff -puN include/linux/kernel.h~abs-fix-fix include/linux/kernel.h
--- 25/include/linux/kernel.h~abs-fix-fix 2004-06-21 01:42:24.283873616 -0700
+++ 25-akpm/include/linux/kernel.h 2004-06-21 01:43:08.150204920 -0700
@@ -55,7 +55,12 @@ void __might_sleep(char *file, int line)
#endif

#define abs(x) ({ \
- typeof(x) __x = (x); \
+ int __x = (x); \
+ (__x < 0) ? -__x : __x; \
+ })
+
+#define labs(x) ({ \
+ long __x = (x); \
(__x < 0) ? -__x : __x; \
})

_

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/