Prarit Bhargava wrote:
Jeremy Fitzhardinge wrote:
Prarit Bhargava wrote:In case of misuse, yes. But there are cases where we know that all CPUs will have softlockup issues, such as when doing a "big" sysrq-t dump. When doing the sysrq-t we take the tasklist_lock which prevents all other CPUs from scheduling -- this leads to bogus softlockup messages, so we need to reset everyone's watchdog just before releasing the tasklist_lock.
I'd like to see this patch implement/fix touch_cpu_softlockup_watchdogWhy? Is that more correct? It seems to me that you're interested in
and touch_softlockup_watchdog to mimic touch_nmi_watchdog's behaviour.
whether a specific CPU has gone and locked up. If touching the watchdog
makes it update all CPU timestamps, then you'll hide the fact that other
CPUs have locked up, won't it?
Another question -- are you going to expose disable/enable_watchdog to other subsystems? Or are you going to expose touch_softlockup_watchdog?
Well, it depends on who turns up.
My first thought is to export both the global enable/disable interfaces
and touch_softlockup_watchdog. But on second thoughts maybe
touch_softlockup_watchdog is completely redundant, since you'd only do
it if you're holding off timer interrupts, but the lockup only getsI like to think of the softlockup watchdog letting me know that a cpu hasn't scheduled in a long time.
reported if timer interrupts are enabled (in other words, the best it
can tell you is "you locked up for a while there", which isn't terribly
useful).
So perhaps this can just be dropped. I haven't looked at the
users to see what they're really trying to achieve.
The enable/disable interfaces are more generally useful in that you can-
say "I *know* I'm going to go away for a while, so don't bother
reporting it".
J