X-Git-Url: http://git.cascardo.eti.br/?a=blobdiff_plain;f=kernel%2Ftimer.c;h=761fb83d898839b44c4a4fe3a77ce98a8774e5e9;hb=014b3bd6dd20cf60ebffbfef8fc7a91fba1703c7;hp=a297ffcf888eb20093b0609485e03edbd85cd214;hpb=44a683971119bafb5bc30778f92ee773680ebb6f;p=cascardo%2Flinux.git diff --git a/kernel/timer.c b/kernel/timer.c index a297ffcf888e..761fb83d8988 100644 --- a/kernel/timer.c +++ b/kernel/timer.c @@ -40,6 +40,7 @@ #include #include #include +#include #include #include @@ -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); }