Could be that some random piece of code forgot to reenable interrupts, and
things stay that way until they get reenabled again by schedule() or
syscall return.
One way of finding the culprit would be:
my_isr()
{
if (this interrupt is more than 5 milliseconds delayed)
dump_stack();
}
the stack dump will point up at the place where interrupts finally got
enabled.
If you can describe what drivers are in use, and what workload triggers the
problem then it may be locatable by inspection.
-
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/