2004-01-24 03:21:53

by timothy parkinson

[permalink] [raw]
Subject: [PATCH] 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

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
--- linux-2.6.1-orig/arch/i386/kernel/timers/timer_tsc.c 2004-01-09 01:59:46.000000000 -0500
+++ linux-2.6.1/arch/i386/kernel/timers/timer_tsc.c 2004-01-23 21:16:24.000000000 -0500
@@ -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


2004-01-26 11:10:49

by Nikita Danilov

[permalink] [raw]
Subject: Re: [PATCH] Better "Losing Ticks" Error Message

timothy parkinson writes:
>
> 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
> --- linux-2.6.1-orig/arch/i386/kernel/timers/timer_tsc.c 2004-01-09 01:59:46.000000000 -0500
> +++ linux-2.6.1/arch/i386/kernel/timers/timer_tsc.c 2004-01-23 21:16:24.000000000 -0500
> @@ -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");

+#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.

> + printk(KERN_WARNING "Falling back to a sane timesource now.\n");
> +

Nikita.

2004-01-26 18:13:00

by Pavel Machek

[permalink] [raw]
Subject: Re: [PATCH] Better "Losing Ticks" Error Message

Hi!
>
> 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
> --- linux-2.6.1-orig/arch/i386/kernel/timers/timer_tsc.c 2004-01-09 01:59:46.000000000 -0500
> +++ linux-2.6.1/arch/i386/kernel/timers/timer_tsc.c 2004-01-23 21:16:24.000000000 -0500
> @@ -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

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
--
When do you have a heart between your knees?
[Johanka's followup: and *two* hearts?]