lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <20090221023943.GA4894@spacedout.fries.net>
Date:	Fri, 20 Feb 2009 20:39:43 -0600
From:	David Fries <david@...es.net>
To:	Ingo Molnar <mingo@...e.hu>
Cc:	linux-kernel <linux-kernel@...r.kernel.org>
Subject: TSC marked unstable on suspend and resume

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@...es.net>
http://fries.net/~david/ (PGP encryption key available)
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ