Messages in this thread | | | Date | Tue, 31 Jan 2012 15:28:09 +0800 | Subject | In many cases softlockup can not be reported after disabling IRQ for long time | From | TAO HU <> |
| |
Resend with a new subject
On Wed, Jan 25, 2012 at 4:24 PM, TAO HU <tghk48@motorola.com> wrote: > Hi, All > > While playing kernel 3.0.8 with below test code, it does NOT report > any softlockup with 60%~70% chances. > NOTE: the softlockup timeout is set to 10 seconds (i.e. > watchdog_thresh=5) in my test. > ... ... > preempt_disable(); > local_irq_disable(); > for (i = 0; i < 20; i++) > mdelay(1000); > local_irq_enable(); > preempt_enable(); > ... ... > > However, if I remove local_irq_disable()/local_irq_enable() it will > report softlockup with no problem. > I believe it is due to that after local_irq_enable() > touch_softlockup_watchdog() is called prior softlockup timer. > > touch_softlockup_watchdog() basically resets the lockup detection > process which implies that the 20-second lockup will be ignored. > I noticed that touch_softlockup_watchdog() is called in dozens of > places in kernel. > > Is that a design limitation or a bug? Any way to improve the situation? > > kernel/debug/debug_core.c:453: touch_softlockup_watchdog_sync(); > kernel/power/hibernate.c:443: touch_softlockup_watchdog(); > kernel/panic.c:153: touch_softlockup_watchdog(); > kernel/time/timekeeping.c:684: touch_softlockup_watchdog(); > kernel/time/tick-sched.c:149: touch_softlockup_watchdog(); > kernel/time/tick-sched.c:543: touch_softlockup_watchdog(); > kernel/time/tick-sched.c:596: touch_softlockup_watchdog(); > kernel/time/tick-sched.c:756: touch_softlockup_watchdog(); > kernel/sched_clock.c:277: touch_softlockup_watchdog(); > > > > -- > Best Regards > Hu Tao
-- Best Regards Hu Tao -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |