clockevents: remove WARN_ON which was used to gather information
Thomas Gleixner [Tue, 9 Sep 2008 19:38:57 +0000 (21:38 +0200)]
The issue of the endless reprogramming loop due to a too small
min_delta_ns was fixed with the previous updates of the clock events
code, but we had no information about the spread of this problem. I
added a WARN_ON to get automated information via kerneloops.org and to
get some direct reports, which allowed me to analyse the affected
machines.

The WARN_ON has served its purpose and would be annoying for a release
kernel. Remove it and just keep the information about the increase of
the min_delta_ns value.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>

kernel/time/tick-oneshot.c

index 2e35501..2e8de67 100644 (file)
@@ -43,19 +43,17 @@ int tick_dev_program_event(struct clock_event_device *dev, ktime_t expires,
                 * and emit a warning.
                 */
                if (++i > 2) {
-                       printk(KERN_WARNING "CE: __tick_program_event of %s is "
-                              "stuck %llx %llx\n", dev->name ? dev->name : "?",
-                              now.tv64, expires.tv64);
-                       printk(KERN_WARNING
-                              "CE: increasing min_delta_ns %ld to %ld nsec\n",
-                              dev->min_delta_ns, dev->min_delta_ns << 1);
-                       WARN_ON(1);
-
-                       /* Double the min. delta and try again */
+                       /* Increase the min. delta and try again */
                        if (!dev->min_delta_ns)
                                dev->min_delta_ns = 5000;
                        else
-                               dev->min_delta_ns <<= 1;
+                               dev->min_delta_ns += dev->min_delta_ns >> 1;
+
+                       printk(KERN_WARNING
+                              "CE: %s increasing min_delta_ns to %lu nsec\n",
+                              dev->name ? dev->name : "?",
+                              dev->min_delta_ns << 1);
+
                        i = 0;
                }