diff options
author | Andi Kleen <andi@firstfloor.org> | 2008-08-29 14:06:23 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2008-08-29 17:46:29 -0400 |
commit | 316d9679f33caf7e683471647d1472bfe133d858 (patch) | |
tree | 46271cdd7405468fbc4e9abbaf65e01edd6ae0a3 /kernel | |
parent | b4609472116bb806a95e98d04767189406c74c70 (diff) |
Don't trigger softlockup detector on network fs blocked tasks
Pulling the ethernet cable on a 2.6.27-rc system with NFS mounts
currently leads to an ongoing flood of soft lockup detector backtraces
for all tasks blocked on the NFS mounts when the hickup takes
longer than 120s.
I don't think NFS problems should be all that noisy.
Luckily there's a reasonably easy way to distingush this case.
Don't report task softlockup warnings for tasks in TASK_KILLABLE
state, which is used by the network file systems.
I believe this patch is a 2.6.27 candidate.
Signed-off-by: Andi Kleen <ak@linux.intel.com>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'kernel')
-rw-r--r-- | kernel/softlockup.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/kernel/softlockup.c b/kernel/softlockup.c index b75b492fbfcf..1a07f8ca4b92 100644 --- a/kernel/softlockup.c +++ b/kernel/softlockup.c | |||
@@ -180,6 +180,10 @@ static void check_hung_task(struct task_struct *t, unsigned long now) | |||
180 | if (t->flags & PF_FROZEN) | 180 | if (t->flags & PF_FROZEN) |
181 | return; | 181 | return; |
182 | 182 | ||
183 | /* Don't check for tasks waiting on network file systems like NFS */ | ||
184 | if (t->state & TASK_KILLABLE) | ||
185 | return; | ||
186 | |||
183 | if (switch_count != t->last_switch_count || !t->last_switch_timestamp) { | 187 | if (switch_count != t->last_switch_count || !t->last_switch_timestamp) { |
184 | t->last_switch_count = switch_count; | 188 | t->last_switch_count = switch_count; |
185 | t->last_switch_timestamp = now; | 189 | t->last_switch_timestamp = now; |