diff options
| author | Ciunas Bennett <ciunas@linux.ibm.com> | 2026-07-23 10:42:29 +0200 |
|---|---|---|
| committer | Vasily Gorbik <gor@linux.ibm.com> | 2026-07-30 00:29:09 +0200 |
| commit | ffa796cc1f45903b55801d5bd437060ea012a12d (patch) | |
| tree | e319e07716ecd83b7f001e557bb8784b13618c06 | |
| parent | bc5d0909eef4effa9ed4136b42e5650f96856f16 (diff) | |
| download | linux-next-ffa796cc1f45903b55801d5bd437060ea012a12d.tar.gz linux-next-ffa796cc1f45903b55801d5bd437060ea012a12d.zip | |
s390/spinlock: Add contention tracepoints to lock slowpath
Instrument arch_spin_lock_wait() with trace_contention_begin() and
trace_contention_end().
These tracepoints are used by lock contention analysis tools such as
perf lock contention to identify contended locks and measure wait times.
Both the generic implementation and powerpc emit the same events from
their spinlock slow path.
Place the tracepoints in arch_spin_lock_wait(), which is only entered
when lock acquisition falls back to the contention path.
Acked-by: Heiko Carstens <hca@linux.ibm.com>
Signed-off-by: Ciunas Bennett <ciunas@linux.ibm.com>
Signed-off-by: Vasily Gorbik <gor@linux.ibm.com>
| -rw-r--r-- | arch/s390/lib/spinlock.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/arch/s390/lib/spinlock.c b/arch/s390/lib/spinlock.c index 10db1e56a811..dbabca35c008 100644 --- a/arch/s390/lib/spinlock.c +++ b/arch/s390/lib/spinlock.c @@ -18,6 +18,7 @@ #include <asm/alternative.h> #include <asm/machine.h> #include <asm/asm.h> +#include <trace/events/lock.h> int spin_retry = -1; @@ -281,10 +282,12 @@ static inline void arch_spin_lock_classic(arch_spinlock_t *lp) void arch_spin_lock_wait(arch_spinlock_t *lp) { + trace_contention_begin(lp, LCB_F_SPIN); if (test_cpu_flag(CIF_DEDICATED_CPU)) arch_spin_lock_queued(lp); else arch_spin_lock_classic(lp); + trace_contention_end(lp, 0); } EXPORT_SYMBOL(arch_spin_lock_wait); |
