8ba0fa463d27bd3f3c2c90eced89f8babdd7d037
[GitHub/mt8127/android_kernel_alcatel_ttab.git] / include / trace / events / lock.h
1 #undef TRACE_SYSTEM
2 #define TRACE_SYSTEM lock
3
4 #if !defined(_TRACE_LOCK_H) || defined(TRACE_HEADER_MULTI_READ)
5 #define _TRACE_LOCK_H
6
7 #include <linux/lockdep.h>
8 #include <linux/tracepoint.h>
9
10 #ifdef CONFIG_DEBUG_MUTEXES
11 TRACE_EVENT(mutex_contended,
12
13 TP_PROTO(struct mutex *lock, unsigned long ip),
14
15 TP_ARGS(lock, ip),
16
17 TP_STRUCT__entry(
18 __string( name, lock->name )
19 __field( void *, lockdep_addr )
20 ),
21
22 TP_fast_assign(
23 __assign_str(name, lock->name);
24 __entry->lockdep_addr = lock;
25 ),
26
27 TP_printk("%p %s", __entry->lockdep_addr, __get_str(name))
28 );
29
30 TRACE_EVENT(mutex_acquired,
31
32 TP_PROTO(struct mutex *lock, unsigned long ip),
33
34 TP_ARGS(lock, ip),
35
36 TP_STRUCT__entry(
37 __string( name, lock->name )
38 __field( void *, lockdep_addr )
39 ),
40
41 TP_fast_assign(
42 __assign_str(name, lock->name);
43 __entry->lockdep_addr = lock;
44 ),
45
46 TP_printk("%p %s", __entry->lockdep_addr, __get_str(name))
47 );
48 #endif
49 #ifdef CONFIG_LOCKDEP
50
51 TRACE_EVENT(lock_acquire,
52
53 TP_PROTO(struct lockdep_map *lock, unsigned int subclass,
54 int trylock, int read, int check,
55 struct lockdep_map *next_lock, unsigned long ip),
56
57 TP_ARGS(lock, subclass, trylock, read, check, next_lock, ip),
58
59 TP_STRUCT__entry(
60 __field(unsigned int, flags)
61 __string(name, lock->name)
62 __field(void *, lockdep_addr)
63 ),
64
65 TP_fast_assign(
66 __entry->flags = (trylock ? 1 : 0) | (read ? 2 : 0);
67 __assign_str(name, lock->name);
68 __entry->lockdep_addr = lock;
69 ),
70
71 TP_printk("%p %s%s%s", __entry->lockdep_addr,
72 (__entry->flags & 1) ? "try " : "",
73 (__entry->flags & 2) ? "read " : "",
74 __get_str(name))
75 );
76
77 DECLARE_EVENT_CLASS(lock,
78
79 TP_PROTO(struct lockdep_map *lock, unsigned long ip),
80
81 TP_ARGS(lock, ip),
82
83 TP_STRUCT__entry(
84 __string( name, lock->name )
85 __field( void *, lockdep_addr )
86 ),
87
88 TP_fast_assign(
89 __assign_str(name, lock->name);
90 __entry->lockdep_addr = lock;
91 ),
92
93 TP_printk("%p %s", __entry->lockdep_addr, __get_str(name))
94 );
95
96 DEFINE_EVENT(lock, lock_release,
97
98 TP_PROTO(struct lockdep_map *lock, unsigned long ip),
99
100 TP_ARGS(lock, ip)
101 );
102
103 #ifdef CONFIG_LOCK_STAT
104
105 DEFINE_EVENT(lock, lock_contended,
106
107 TP_PROTO(struct lockdep_map *lock, unsigned long ip),
108
109 TP_ARGS(lock, ip)
110 );
111
112 DEFINE_EVENT(lock, lock_acquired,
113
114 TP_PROTO(struct lockdep_map *lock, unsigned long ip),
115
116 TP_ARGS(lock, ip)
117 );
118
119 #endif
120 #endif
121
122 #endif /* _TRACE_LOCK_H */
123
124 /* This part must be outside protection */
125 #include <trace/define_trace.h>