All of lore.kernel.org
 help / color / mirror / Atom feed
* TSC marked unstable on suspend and resume
@ 2009-02-21  2:39 David Fries
  2009-02-23 23:23 ` Rafael J. Wysocki
  2009-04-29 16:45 ` john stultz
  0 siblings, 2 replies; 11+ messages in thread
From: David Fries @ 2009-02-21  2:39 UTC (permalink / raw)
  To: Ingo Molnar; +Cc: linux-kernel

I'm getting TSC marked as unsable on hibernate to disk with
2.6.29-rc3.  The last kernel I ran 2.6.24.4 ran 300+ days without a
problem and does not loose TSC on hibernate.

I'm hibernating with `echo disk > /sys/power/state`.
These look like the relavant messages,

CPU 0 irqstacks, hard=c0379000 soft=c0378000
PID hash table entries: 1024 (order: 10, 4096 bytes)
Fast TSC calibration using PIT
Detected 300.705 MHz processor.
Calibrating delay loop (skipped), value calculated using timer frequency.. 601.41 BogoMIPS (lpj=300705)
hibernate to disk,
Restarting tasks ... done.
Clocksource tsc unstable (delta = 499883531 ns)

another reboot,
Restarting tasks ... done.
Clocksource tsc unstable (delta = 499883531 ns)

another reboot,
Freezing user space processes ... (elapsed 0.07 seconds) done.
Freezing remaining freezable tasks ... (elapsed 0.00 seconds) done.
PM: Shrinking memory...  ^H-<4>Clocksource tsc unstable (delta = 78961880 ns)
^H\^H|^H/^Hdone (34745 pages freed)



I didn't spot the problem until I raw the HP48 calculator emulator x48
and it was running like a dog, but the same binary ran fine on my
other systems.  It was looping on gettimeofday intending to delay 2us,
but was getting 1ms when TSC wasn't available.

On Thu, Feb 05, 2009 at 10:02:39PM +0100, Ingo Molnar wrote:
> What does this tool output:
> 
>  http://people.redhat.com/mingo/time-warp-test/time-warp-test.c

time-warp-test is getting the number of CPUs wrong here, trivial
patch included.

./time-warp-test  
2 CPUs, running 2 parallel test-tasks.

grep processor /proc/cpuinfo
processor       : 0
model name      : AMD-K6(tm) 3D processor


--- time-warp-test.c.orig	2009-02-19 20:52:40.000000000 -0600
+++ time-warp-test.c	2009-02-19 21:32:58.000000000 -0600
@@ -295,7 +295,7 @@ int main(int argc, char **argv)
 	unsigned long *shared;
 	unsigned long cpus, tasks;
 
-	cpus = system("exit `grep processor /proc/cpuinfo  | wc -l`");
+	cpus = system("exit `grep ^processor /proc/cpuinfo  | wc -l`");
 	cpus = WEXITSTATUS(cpus);
 
 	if (argc > 2) {




With any optimizations, -O or -O1 or -O2 I don't get any status
output, with -O0 I get,

./time-warp-test 
1 CPUs, running 1 parallel test-tasks.
checking for time-warps via:
- read time stamp counter (RDTSC) instruction (cycle resolution)

 | TSC: 0.82us, fail:0 /


-- 
David Fries <david@fries.net>
http://fries.net/~david/ (PGP encryption key available)

^ permalink raw reply	[flat|nested] 11+ messages in thread

end of thread, other threads:[~2009-05-09 10:03 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2009-02-21  2:39 TSC marked unstable on suspend and resume David Fries
2009-02-23 23:23 ` Rafael J. Wysocki
2009-02-24  4:58   ` David Fries
2009-02-27 21:05     ` Pavel Machek
2009-04-29 16:45 ` john stultz
2009-04-29 23:25   ` David Fries
2009-04-30  3:37     ` john stultz
2009-05-01  3:13       ` David Fries
2009-05-08 21:53       ` Ondrej Zary
2009-05-09  0:34         ` David Fries
2009-05-09 10:02           ` Ondrej Zary

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.