Commit 20e425d3 authored by Kent Overstreet's avatar Kent Overstreet

six locks: Lock contended tracepoints

Signed-off-by: default avatarKent Overstreet <kent.overstreet@linux.dev>
parent ee526b88
......@@ -11,6 +11,8 @@
#include <linux/sched/task.h>
#include <linux/slab.h>
#include <trace/events/lock.h>
#include "six.h"
#ifdef DEBUG
......@@ -462,11 +464,12 @@ static int six_lock_slowpath(struct six_lock *lock, enum six_lock_type type,
smp_mb__after_atomic();
}
trace_contention_begin(lock, 0);
lock_contended(&lock->dep_map, ip);
if (six_optimistic_spin(lock, type))
goto out;
lock_contended(&lock->dep_map, ip);
wait->task = current;
wait->lock_want = type;
wait->lock_acquired = false;
......@@ -546,6 +549,7 @@ static int six_lock_slowpath(struct six_lock *lock, enum six_lock_type type,
six_clear_bitmask(lock, SIX_LOCK_HELD_write);
six_lock_wakeup(lock, atomic_read(&lock->state), SIX_LOCK_read);
}
trace_contention_end(lock, 0);
return ret;
}
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment