Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

panic: add TAINT_SOFTLOCKUP

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.

[akpm@linux-foundation.org: apply the taint before calling panic()]
Signed-off-by: Josh Hunt <johunt@akamai.com>
Cc: Jason Baron <jbaron@akamai.com>
Cc: Randy Dunlap <rdunlap@infradead.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>

authored by

Josh Hunt and committed by
Linus Torvalds
69361eef 1da85fdf

+6
+2
Documentation/oops-tracing.txt
··· 268 268 14: 'E' if an unsigned module has been loaded in a kernel supporting 269 269 module signature. 270 270 271 + 15: 'L' if a soft lockup has previously occurred on the system. 272 + 271 273 The primary reason for the 'Tainted: ' string is to tell kernel 272 274 debuggers if this is a clean kernel or if anything unusual has 273 275 occurred. Tainting is permanent: even if an offending module is
+1
Documentation/sysctl/kernel.txt
··· 826 826 4096 - An out-of-tree module has been loaded. 827 827 8192 - An unsigned module has been loaded in a kernel supporting module 828 828 signature. 829 + 16384 - A soft lockup has previously occurred on the system. 829 830 830 831 ============================================================== 831 832
+1
include/linux/kernel.h
··· 470 470 #define TAINT_FIRMWARE_WORKAROUND 11 471 471 #define TAINT_OOT_MODULE 12 472 472 #define TAINT_UNSIGNED_MODULE 13 473 + #define TAINT_SOFTLOCKUP 14 473 474 474 475 extern const char hex_asc[]; 475 476 #define hex_asc_lo(x) hex_asc[((x) & 0x0f)]
+1
kernel/panic.c
··· 224 224 { TAINT_FIRMWARE_WORKAROUND, 'I', ' ' }, 225 225 { TAINT_OOT_MODULE, 'O', ' ' }, 226 226 { TAINT_UNSIGNED_MODULE, 'E', ' ' }, 227 + { TAINT_SOFTLOCKUP, 'L', ' ' }, 227 228 }; 228 229 229 230 /**
+1
kernel/watchdog.c
··· 368 368 smp_mb__after_atomic(); 369 369 } 370 370 371 + add_taint(TAINT_SOFTLOCKUP, LOCKDEP_STILL_OK); 371 372 if (softlockup_panic) 372 373 panic("softlockup: hung tasks"); 373 374 __this_cpu_write(soft_watchdog_warn, true);