Skip to contentSkip to conversation

Better "Losing Ticks" Error Message

PATCH In review timothy parkinson 3 participants 3 messages Jan 24, 2004 – Jan 26, 2004

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 Better "Losing Ticks" Error Message

Andrew,

Seems like a lot of people see the below error message, but aren't quite sure why it happens or how to fix it. I sure didn't.

Here's my attempt at remedying that - Should apply cleanly against 2.6.1.

Thanks,
Timothy

arch/i386/kernel/timers/timer_tsc.c +7 -3
diff -urN linux-2.6.1-orig/arch/i386/kernel/timers/timer_tsc.c linux-2.6.1/arch/i386/kernel/timers/timer_tsc.c
@@ -232,9 +232,13 @@
 		/* sanity check to ensure we're not always losing ticks */
 		if (lost_count++ > 100) {
 			printk(KERN_WARNING "Losing too many ticks!\n");
-			printk(KERN_WARNING "TSC cannot be used as a timesource."
-					" (Are you running with SpeedStep?)\n");
-			printk(KERN_WARNING "Falling back to a sane timesource.\n");
+			printk(KERN_WARNING "TSC cannot be used as a timesource.  ");
+			printk(KERN_WARNING "Possible reasons for this are:\n");
+			printk(KERN_WARNING "  You're running with Speedstep,\n");
+			printk(KERN_WARNING "  You don't have DMA enabled for your hard disk (see hdparm),\n");
+			printk(KERN_WARNING "  Incorrect TSC synchronization on an SMP system (see dmesg).\n");
+			printk(KERN_WARNING "Falling back to a sane timesource now.\n");
+
 			clock_fallback();
 		}
 	} else
#1 lore raw
Quoted 16 lines · timothy parkinson

Andrew,

Seems like a lot of people see the below error message, but aren't quite sure why it happens or how to fix it. I sure didn't.

Here's my attempt at remedying that - Should apply cleanly against 2.6.1.

Thanks,
Timothy

diff -urN linux-2.6.1-orig/arch/i386/kernel/timers/timer_tsc.c linux-2.6.1/arch/i386/kernel/timers/timer_tsc.c

arch/i386/kernel/timers/timer_tsc.c +0 -0
@@ -232,9 +232,13 @@
 		/* sanity check to ensure we're not always losing ticks */

arch/i386/kernel/timers/timer_tsc.c line 239

Quoted 10 lines
arch/i386/kernel/timers/timer_tsc.c +5 -3
 		if (lost_count++ > 100) {
 			printk(KERN_WARNING "Losing too many ticks!\n");
-			printk(KERN_WARNING "TSC cannot be used as a timesource."
-					" (Are you running with SpeedStep?)\n");
-			printk(KERN_WARNING "Falling back to a sane timesource.\n");
+			printk(KERN_WARNING "TSC cannot be used as a timesource.  ");
+			printk(KERN_WARNING "Possible reasons for this are:\n");
+			printk(KERN_WARNING "  You're running with Speedstep,\n");
+			printk(KERN_WARNING "  You don't have DMA enabled for your hard disk (see hdparm),\n");
+			printk(KERN_WARNING "  Incorrect TSC synchronization on an SMP system (see dmesg).\n");

+#ifdef CONFIG_KGDB
+ printk(KERN_WARNING " You're single-stepping under kgdb (see what you are doing).\n");
+#endif

Modulo that person debugging kernel with kgdb probably understands this anyway.

arch/i386/kernel/timers/timer_tsc.c line 241

Quoted 2 lines
arch/i386/kernel/timers/timer_tsc.c +2 -0
+			printk(KERN_WARNING "Falling back to a sane timesource now.\n");
+

Nikita.

#2 lore raw
In reply to timothy parkinson

Hi!

Quoted 21 lines

Andrew,

Seems like a lot of people see the below error message, but aren't quite sure why it happens or how to fix it. I sure didn't.

Here's my attempt at remedying that - Should apply cleanly against 2.6.1.

Thanks,
Timothy

diff -urN linux-2.6.1-orig/arch/i386/kernel/timers/timer_tsc.c linux-2.6.1/arch/i386/kernel/timers/timer_tsc.c

arch/i386/kernel/timers/timer_tsc.c +0 -3
@@ -232,9 +232,13 @@
 		/* sanity check to ensure we're not always losing ticks */
 		if (lost_count++ > 100) {
 			printk(KERN_WARNING "Losing too many ticks!\n");
-			printk(KERN_WARNING "TSC cannot be used as a timesource."
-					" (Are you running with SpeedStep?)\n");
-			printk(KERN_WARNING "Falling back to a sane timesource.\n");

arch/i386/kernel/timers/timer_tsc.c line 244

Quoted 10 lines
arch/i386/kernel/timers/timer_tsc.c +7 -0
+			printk(KERN_WARNING "TSC cannot be used as a timesource.  ");
+			printk(KERN_WARNING "Possible reasons for this are:\n");
+			printk(KERN_WARNING "  You're running with Speedstep,\n");
+			printk(KERN_WARNING "  You don't have DMA enabled for your hard disk (see hdparm),\n");
+			printk(KERN_WARNING "  Incorrect TSC synchronization on an SMP system (see dmesg).\n");
+			printk(KERN_WARNING "Falling back to a sane timesource now.\n");
+
 			clock_fallback();
 		}
 	} else

If something, make it "Loosing too many ticks, TSC cannot be used as a timesource (see Documentation/time.txt)". We do not want 7 lines of messages....
Pavel

Signature · 2 lines
When do you have a heart between your knees?
[Johanka's followup: and *two* hearts?]