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

six locks: Lock contended tracepoints

parent ee526b88
Loading
Loading
Loading
Loading
+6 −2
Original line number Diff line number Diff line
@@ -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;
}