mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2025-04-08 20:18:00 +07:00
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>
This commit is contained in:
parent
1da85fdff5
commit
69361eef90
@ -268,6 +268,8 @@ characters, each representing a particular tainted value.
|
|||||||
14: 'E' if an unsigned module has been loaded in a kernel supporting
|
14: 'E' if an unsigned module has been loaded in a kernel supporting
|
||||||
module signature.
|
module signature.
|
||||||
|
|
||||||
|
15: 'L' if a soft lockup has previously occurred on the system.
|
||||||
|
|
||||||
The primary reason for the 'Tainted: ' string is to tell kernel
|
The primary reason for the 'Tainted: ' string is to tell kernel
|
||||||
debuggers if this is a clean kernel or if anything unusual has
|
debuggers if this is a clean kernel or if anything unusual has
|
||||||
occurred. Tainting is permanent: even if an offending module is
|
occurred. Tainting is permanent: even if an offending module is
|
||||||
|
@ -826,6 +826,7 @@ can be ORed together:
|
|||||||
4096 - An out-of-tree module has been loaded.
|
4096 - An out-of-tree module has been loaded.
|
||||||
8192 - An unsigned module has been loaded in a kernel supporting module
|
8192 - An unsigned module has been loaded in a kernel supporting module
|
||||||
signature.
|
signature.
|
||||||
|
16384 - A soft lockup has previously occurred on the system.
|
||||||
|
|
||||||
==============================================================
|
==============================================================
|
||||||
|
|
||||||
|
@ -470,6 +470,7 @@ extern enum system_states {
|
|||||||
#define TAINT_FIRMWARE_WORKAROUND 11
|
#define TAINT_FIRMWARE_WORKAROUND 11
|
||||||
#define TAINT_OOT_MODULE 12
|
#define TAINT_OOT_MODULE 12
|
||||||
#define TAINT_UNSIGNED_MODULE 13
|
#define TAINT_UNSIGNED_MODULE 13
|
||||||
|
#define TAINT_SOFTLOCKUP 14
|
||||||
|
|
||||||
extern const char hex_asc[];
|
extern const char hex_asc[];
|
||||||
#define hex_asc_lo(x) hex_asc[((x) & 0x0f)]
|
#define hex_asc_lo(x) hex_asc[((x) & 0x0f)]
|
||||||
|
@ -224,6 +224,7 @@ static const struct tnt tnts[] = {
|
|||||||
{ TAINT_FIRMWARE_WORKAROUND, 'I', ' ' },
|
{ TAINT_FIRMWARE_WORKAROUND, 'I', ' ' },
|
||||||
{ TAINT_OOT_MODULE, 'O', ' ' },
|
{ TAINT_OOT_MODULE, 'O', ' ' },
|
||||||
{ TAINT_UNSIGNED_MODULE, 'E', ' ' },
|
{ TAINT_UNSIGNED_MODULE, 'E', ' ' },
|
||||||
|
{ TAINT_SOFTLOCKUP, 'L', ' ' },
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -368,6 +368,7 @@ static enum hrtimer_restart watchdog_timer_fn(struct hrtimer *hrtimer)
|
|||||||
smp_mb__after_atomic();
|
smp_mb__after_atomic();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
add_taint(TAINT_SOFTLOCKUP, LOCKDEP_STILL_OK);
|
||||||
if (softlockup_panic)
|
if (softlockup_panic)
|
||||||
panic("softlockup: hung tasks");
|
panic("softlockup: hung tasks");
|
||||||
__this_cpu_write(soft_watchdog_warn, true);
|
__this_cpu_write(soft_watchdog_warn, true);
|
||||||
|
Loading…
Reference in New Issue
Block a user