[csd-lock,1/2] smp: Reduce logging due to dump_stack of CSD waiters

Message ID 20230717183602.1099773-1-paulmck@kernel.org
State New
Headers
Series TSC and clocksource-watchdog updates for v6.6 |

Commit Message

Paul E. McKenney July 17, 2023, 6:36 p.m. UTC
  From: Imran Khan <imran.f.khan@oracle.com>

If a waiter is waiting for CSD lock, its call stack will not change
between first and subsequent hang detection for the same CSD lock.
Therefore, do dump_stack only for first-time detection for a given waiter.

This avoids excessive logging on systems with hundreds of CPUs where
repetitive dump_stack from hundreds of CPUs would otherwise flood the
console.

Signed-off-by: Imran Khan <imran.f.khan@oracle.com>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Juergen Gross <jgross@suse.com>
Cc: Valentin Schneider <vschneid@redhat.com>
Cc: Yury Norov <yury.norov@gmail.com>
Signed-off-by: Paul E. McKenney <paulmck@kernel.org>
---
 kernel/smp.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)
  

Patch

diff --git a/kernel/smp.c b/kernel/smp.c
index 385179dae360..1d41a0cb54f1 100644
--- a/kernel/smp.c
+++ b/kernel/smp.c
@@ -259,7 +259,8 @@  static bool csd_lock_wait_toolong(struct __call_single_data *csd, u64 ts0, u64 *
 			arch_send_call_function_single_ipi(cpu);
 		}
 	}
-	dump_stack();
+	if (firsttime)
+		dump_stack();
 	*ts1 = ts2;
 
 	return false;