Re: In many cases softlockup can not be reported after disabling IRQfor long time

From: Don Zickus
Date: Thu Feb 02 2012 - 10:59:06 EST


On Thu, Feb 02, 2012 at 04:17:02PM +0800, TAO HU wrote:
> Hi, Don
>
> My concern is not actually that the softlockup could not be reported
> while the IRQ is disabled.
> What bothering me is that even AFTER re-enable the IRQ, it will not
> give warning in many cases.
>
> In theory, disabling IRQ for long time (10s in my case) also implies
> the high priority thread (watchdog) is blocked
> as well.
> So the ideal case is that softlockup driver could give warning right
> after the IRQ is re-enabled.
> It does so occasionally but fails to be consistent.

The only thing I can think of is that the clock/jiffies isn't updated
until after the hrtimer is run. I'm not sure if there is any guarantee
for ordering once interrupts are enabled.

But that is just a guess.

I guess in theory, I would expect that when interrupts are enabled, the
system would immediately jump into an IRQ context, update the
clock/jiffies, then run all the other irq handlers like hrtimers, which
would see the new time and do the right thing. After everything is done,
the system would return to your test code and re-enable preemption
allowing the softlockup thread to run again.

I could be very wrong though. :-)

Cheers,
Don
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/