CHROMIUM: timer: add debug_msleep warnings for long sleeps
[cascardo/linux.git] / kernel / timer.c
index a297ffc..761fb83 100644 (file)
@@ -40,6 +40,7 @@
 #include <linux/irq_work.h>
 #include <linux/sched.h>
 #include <linux/slab.h>
+#include <linux/module.h>
 
 #include <asm/uaccess.h>
 #include <asm/unistd.h>
@@ -1790,6 +1791,9 @@ void __init init_timers(void)
        open_softirq(TIMER_SOFTIRQ, run_timer_softirq);
 }
 
+static int debug_msleep;
+module_param(debug_msleep, int, 0);
+
 /**
  * msleep - sleep safely even with waitqueue interruptions
  * @msecs: Time in milliseconds to sleep for
@@ -1798,6 +1802,9 @@ void msleep(unsigned int msecs)
 {
        unsigned long timeout = msecs_to_jiffies(msecs) + 1;
 
+       if (debug_msleep && msecs >= debug_msleep)
+               WARN(1, "Long sleep detected (%d msec)\n", msecs);
+
        while (timeout)
                timeout = schedule_timeout_uninterruptible(timeout);
 }