aboutsummaryrefslogtreecommitdiffstats
path: root/kernel/lockdep.c
diff options
context:
space:
mode:
Diffstat (limited to 'kernel/lockdep.c')
-rw-r--r--kernel/lockdep.c17
1 files changed, 17 insertions, 0 deletions
diff --git a/kernel/lockdep.c b/kernel/lockdep.c
index 02014f7ccc86..cb70c1db85d0 100644
--- a/kernel/lockdep.c
+++ b/kernel/lockdep.c
@@ -42,6 +42,7 @@
42#include <linux/hash.h> 42#include <linux/hash.h>
43#include <linux/ftrace.h> 43#include <linux/ftrace.h>
44#include <linux/stringify.h> 44#include <linux/stringify.h>
45#include <trace/lockdep.h>
45 46
46#include <asm/sections.h> 47#include <asm/sections.h>
47 48
@@ -2913,6 +2914,8 @@ void lock_set_class(struct lockdep_map *lock, const char *name,
2913} 2914}
2914EXPORT_SYMBOL_GPL(lock_set_class); 2915EXPORT_SYMBOL_GPL(lock_set_class);
2915 2916
2917DEFINE_TRACE(lock_acquire);
2918
2916/* 2919/*
2917 * We are not always called with irqs disabled - do that here, 2920 * We are not always called with irqs disabled - do that here,
2918 * and also avoid lockdep recursion: 2921 * and also avoid lockdep recursion:
@@ -2923,6 +2926,8 @@ void lock_acquire(struct lockdep_map *lock, unsigned int subclass,
2923{ 2926{
2924 unsigned long flags; 2927 unsigned long flags;
2925 2928
2929 trace_lock_acquire(lock, subclass, trylock, read, check, nest_lock, ip);
2930
2926 if (unlikely(current->lockdep_recursion)) 2931 if (unlikely(current->lockdep_recursion))
2927 return; 2932 return;
2928 2933
@@ -2937,11 +2942,15 @@ void lock_acquire(struct lockdep_map *lock, unsigned int subclass,
2937} 2942}
2938EXPORT_SYMBOL_GPL(lock_acquire); 2943EXPORT_SYMBOL_GPL(lock_acquire);
2939 2944
2945DEFINE_TRACE(lock_release);
2946
2940void lock_release(struct lockdep_map *lock, int nested, 2947void lock_release(struct lockdep_map *lock, int nested,
2941 unsigned long ip) 2948 unsigned long ip)
2942{ 2949{
2943 unsigned long flags; 2950 unsigned long flags;
2944 2951
2952 trace_lock_release(lock, nested, ip);
2953
2945 if (unlikely(current->lockdep_recursion)) 2954 if (unlikely(current->lockdep_recursion))
2946 return; 2955 return;
2947 2956
@@ -3090,10 +3099,14 @@ found_it:
3090 lock->ip = ip; 3099 lock->ip = ip;
3091} 3100}
3092 3101
3102DEFINE_TRACE(lock_contended);
3103
3093void lock_contended(struct lockdep_map *lock, unsigned long ip) 3104void lock_contended(struct lockdep_map *lock, unsigned long ip)
3094{ 3105{
3095 unsigned long flags; 3106 unsigned long flags;
3096 3107
3108 trace_lock_contended(lock, ip);
3109
3097 if (unlikely(!lock_stat)) 3110 if (unlikely(!lock_stat))
3098 return; 3111 return;
3099 3112
@@ -3109,10 +3122,14 @@ void lock_contended(struct lockdep_map *lock, unsigned long ip)
3109} 3122}
3110EXPORT_SYMBOL_GPL(lock_contended); 3123EXPORT_SYMBOL_GPL(lock_contended);
3111 3124
3125DEFINE_TRACE(lock_acquired);
3126
3112void lock_acquired(struct lockdep_map *lock, unsigned long ip) 3127void lock_acquired(struct lockdep_map *lock, unsigned long ip)
3113{ 3128{
3114 unsigned long flags; 3129 unsigned long flags;
3115 3130
3131 trace_lock_acquired(lock, ip);
3132
3116 if (unlikely(!lock_stat)) 3133 if (unlikely(!lock_stat))
3117 return; 3134 return;
3118 3135