Yury Polyanskiy
940370fc86
hangcheck-timer: fix x86_32 bugs
...
drivers/char/hangcheck-timer.c is doubly broken. When the overflown value
of TIMER_FREQ is abnormally low, it spams the syslog with KERN_CRIT
messages "Hangcheck: hangcheck value past margin!" But whether it happens
or not depends on HZ and lpj in a complex way. People have hit it
occasionally as far as google search can tell.
First, the following line overflows unsigned long:
# define TIMER_FREQ (HZ*loops_per_jiffy)
Second, and more importantly, loops_per_jiffy has little to do with the
con= version from the the time scale of get_cycles() (aka rdtsc) to the
time scale of jiffies.
The attached patch resolves both of the problems.
Acked-by: Joel Becker <joel.becker@oracle.com>
Cc: john stultz <johnstul@us.ibm.com>
Cc: Jan Glauber <jan.glauber@de.ibm.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2010-05-25 08:07:02 -07:00
..
2010-05-21 11:14:52 -07:00
2010-05-22 00:36:56 -06:00
2010-03-08 16:55:37 +01:00
2010-05-24 08:01:10 -07:00
2009-09-24 07:21:03 -07:00
2010-05-10 10:23:16 +02:00
2010-03-30 22:02:32 +09:00
2010-05-17 09:08:18 +10:00
2010-05-22 00:10:40 -06:00
2010-04-07 08:38:02 -07:00
2010-05-17 05:27:41 +02:00
2010-05-17 05:27:41 +02:00
2010-03-30 22:02:32 +09:00
2009-10-01 16:11:11 -07:00
2010-03-30 22:02:32 +09:00
2010-04-23 02:08:44 +02:00
2009-10-14 17:36:48 +02:00
2010-03-30 22:02:32 +09:00
2010-05-17 05:27:41 +02:00
2010-03-30 22:02:32 +09:00
2010-05-17 05:27:41 +02:00
2009-12-16 07:19:59 -08:00
2010-03-30 22:02:32 +09:00
2010-05-17 05:27:41 +02:00
2010-03-30 22:02:32 +09:00
2010-05-17 05:27:41 +02:00
2010-05-25 08:07:02 -07:00
2010-05-17 05:27:41 +02:00
2010-02-25 15:38:37 -08:00
2010-04-08 09:46:20 +09:30
2010-02-24 14:22:32 +10:30
2010-03-08 16:55:37 +01:00
2010-03-30 22:02:32 +09:00
2010-02-24 14:22:32 +10:30
2010-02-24 14:22:32 +10:30
2010-02-24 14:22:32 +10:30
2010-02-24 14:22:32 +10:30
2010-03-30 22:02:32 +09:00
2009-08-20 10:29:28 +10:00
2010-05-17 03:06:12 +02:00
2010-05-21 09:34:30 -07:00
2010-04-30 09:20:33 -07:00
2010-05-21 09:34:29 -07:00
2010-04-13 23:26:35 -07:00
2009-12-10 22:55:36 +01:00
2010-05-21 09:34:29 -07:00
2010-03-30 22:02:32 +09:00
2010-04-07 08:38:05 -07:00
2010-03-30 22:02:32 +09:00
2010-03-30 22:02:32 +09:00
2010-03-30 22:02:32 +09:00
2009-12-04 15:39:55 +01:00
2010-04-30 09:20:33 -07:00
2010-05-21 09:34:29 -07:00
2009-07-12 12:22:34 -07:00
2009-12-04 15:39:55 +01:00
2010-03-12 15:52:43 -08:00
2010-03-30 22:02:32 +09:00
2010-05-17 05:27:41 +02:00
2010-05-17 05:27:41 +02:00
2009-10-14 17:36:52 +02:00
2010-03-30 22:02:32 +09:00
2010-03-30 22:02:32 +09:00
2010-03-30 22:02:32 +09:00
2010-05-20 19:55:01 +10:00
2010-05-17 05:27:41 +02:00
2010-04-30 09:20:33 -07:00
2009-07-12 12:22:34 -07:00
2009-11-18 08:37:40 -08:00
2009-10-14 17:36:53 +02:00
2009-10-11 11:20:58 -07:00
2010-05-21 09:34:31 -07:00
2010-03-30 22:02:32 +09:00
2010-03-30 22:02:32 +09:00
2010-03-30 22:02:32 +09:00
2010-04-30 09:20:33 -07:00
2009-07-12 12:22:34 -07:00
2010-03-02 14:43:08 -08:00
2010-03-02 14:43:16 -08:00
2009-09-01 01:13:31 -07:00
2010-05-20 10:33:06 -07:00
2009-10-14 17:36:53 +02:00
2009-10-11 11:20:58 -07:00
2010-01-04 12:31:21 -08:00
2010-03-30 22:02:32 +09:00
2010-05-21 09:34:30 -07:00
2010-05-13 12:10:56 -07:00
2009-11-09 09:40:54 +01:00
2010-03-02 14:43:22 -08:00
2010-03-19 07:17:57 -07:00
2010-01-27 11:33:53 +01:00
2009-07-20 16:38:43 -07:00
2010-05-18 16:10:44 -06:00
2010-05-19 22:15:51 +09:30
2010-03-30 22:02:32 +09:00
2010-03-19 07:17:52 -07:00
2010-02-09 11:13:56 +01:00