Re: [PATCH] panic: add TAINT_SOFTLOCKUP

Andrew Morton
2014-06-23T22:11:23Z

On Tue, 3 Jun 2014 22:12:35 -0400 Josh Hunt <johunt@akamai.com> wrote:

> This taint flag will be set if the system has ever entered a softlockup
> state. Similar to TAINT_WARN it is useful to know whether or not the system
> has been in a softlockup state when debugging.
>
> ...
>
> @@ -329,6 +329,7 @@ static enum hrtimer_restart watchdog_timer_fn(struct hrtimer *hrtimer)
>
> if (softlockup_panic)
> panic("softlockup: hung tasks");
> + add_taint(TAINT_SOFTLOCKUP, LOCKDEP_STILL_OK);
> __this_cpu_write(soft_watchdog_warn, true);
> } else
> __this_cpu_write(soft_watchdog_warn, false);

Would make more sense to have applied the taint *before* calling
panic()?

diff -puN kernel/watchdog.c~panic-add-taint_softlockup-fix kernel/watchdog.c
--- a/kernel/watchdog.c~panic-add-taint_softlockup-fix
+++ a/kernel/watchdog.c
@@ -368,9 +368,9 @@ static enum hrtimer_restart watchdog_tim
smp_mb__after_atomic();
}

+ add_taint(TAINT_SOFTLOCKUP, LOCKDEP_STILL_OK);
if (softlockup_panic)
panic("softlockup: hung tasks");
- add_taint(TAINT_SOFTLOCKUP, LOCKDEP_STILL_OK);
__this_cpu_write(soft_watchdog_warn, true);
} else
__this_cpu_write(soft_watchdog_warn, false);