Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit d58fdd9d authored by Nicholas Piggin's avatar Nicholas Piggin Committed by Michael Ellerman
Browse files

powerpc/watchdog: Do not backtrace locked CPUs twice if allcpus backtrace is enabled



If sysctl_hardlockup_all_cpu_backtrace is enabled, there is no need to
IPI stuck CPUs for backtrace before trigger_allbutself_cpu_backtrace(),
which does the same thing again.

Signed-off-by: default avatarNicholas Piggin <npiggin@gmail.com>
Signed-off-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
parent 842dc1db
Loading
Loading
Loading
Loading
+11 −8
Original line number Diff line number Diff line
@@ -133,8 +133,10 @@ static void watchdog_smp_panic(int cpu, u64 tb)
	pr_emerg("Watchdog CPU:%d detected Hard LOCKUP other CPUS:%*pbl\n",
			cpu, cpumask_pr_args(&wd_smp_cpus_pending));

	if (!sysctl_hardlockup_all_cpu_backtrace) {
		/*
	 * Try to trigger the stuck CPUs.
		 * Try to trigger the stuck CPUs, unless we are going to
		 * get a backtrace on all of them anyway.
		 */
		for_each_cpu(c, &wd_smp_cpus_pending) {
			if (c == cpu)
@@ -142,6 +144,7 @@ static void watchdog_smp_panic(int cpu, u64 tb)
			smp_send_nmi_ipi(c, wd_lockup_ipi, 1000000);
		}
		smp_flush_nmi_ipi(1000000);
	}

	/* Take the stuck CPUs out of the watch group */
	set_cpumask_stuck(&wd_smp_cpus_pending, tb);