mirror of
https://github.com/torvalds/linux
synced 2024-09-06 18:01:05 +00:00
watchdog/softlockup: Remove obsolete check of last reported task
commit9cf57731b6
("watchdog/softlockup: Replace "watchdog/%u" threads with cpu_stop_work") ensures that the watchdog is reliably touched during a task switch. As a result the check for an unnoticed task switch is not longer needed. Remove the relevant code, which effectively reverts commitb1a8de1f53
("softlockup: make detector be aware of task switch of processes hogging cpu") Signed-off-by: Petr Mladek <pmladek@suse.com> Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Acked-by: Peter Ziljstra <peterz@infradead.org> Link: https://lore.kernel.org/r/20191024114928.15377-2-pmladek@suse.com
This commit is contained in:
parent
d129479f1f
commit
3a51449b79
|
@ -173,7 +173,6 @@ static DEFINE_PER_CPU(struct hrtimer, watchdog_hrtimer);
|
|||
static DEFINE_PER_CPU(bool, softlockup_touch_sync);
|
||||
static DEFINE_PER_CPU(bool, soft_watchdog_warn);
|
||||
static DEFINE_PER_CPU(unsigned long, hrtimer_interrupts);
|
||||
static DEFINE_PER_CPU(struct task_struct *, softlockup_task_ptr_saved);
|
||||
static DEFINE_PER_CPU(unsigned long, hrtimer_interrupts_saved);
|
||||
static unsigned long soft_lockup_nmi_warn;
|
||||
|
||||
|
@ -413,22 +412,8 @@ static enum hrtimer_restart watchdog_timer_fn(struct hrtimer *hrtimer)
|
|||
return HRTIMER_RESTART;
|
||||
|
||||
/* only warn once */
|
||||
if (__this_cpu_read(soft_watchdog_warn) == true) {
|
||||
/*
|
||||
* When multiple processes are causing softlockups the
|
||||
* softlockup detector only warns on the first one
|
||||
* because the code relies on a full quiet cycle to
|
||||
* re-arm. The second process prevents the quiet cycle
|
||||
* and never gets reported. Use task pointers to detect
|
||||
* this.
|
||||
*/
|
||||
if (__this_cpu_read(softlockup_task_ptr_saved) !=
|
||||
current) {
|
||||
__this_cpu_write(soft_watchdog_warn, false);
|
||||
__touch_watchdog();
|
||||
}
|
||||
if (__this_cpu_read(soft_watchdog_warn) == true)
|
||||
return HRTIMER_RESTART;
|
||||
}
|
||||
|
||||
if (softlockup_all_cpu_backtrace) {
|
||||
/* Prevent multiple soft-lockup reports if one cpu is already
|
||||
|
@ -444,7 +429,6 @@ static enum hrtimer_restart watchdog_timer_fn(struct hrtimer *hrtimer)
|
|||
pr_emerg("BUG: soft lockup - CPU#%d stuck for %us! [%s:%d]\n",
|
||||
smp_processor_id(), duration,
|
||||
current->comm, task_pid_nr(current));
|
||||
__this_cpu_write(softlockup_task_ptr_saved, current);
|
||||
print_modules();
|
||||
print_irqtrace_events(current);
|
||||
if (regs)
|
||||
|
|
Loading…
Reference in a new issue