Commit | Line | Data |
---|---|---|
d0b6e04a | 1 | #undef TRACE_SYSTEM |
67178767 | 2 | #define TRACE_SYSTEM lock |
d0b6e04a | 3 | |
67178767 FW |
4 | #if !defined(_TRACE_LOCK_H) || defined(TRACE_HEADER_MULTI_READ) |
5 | #define _TRACE_LOCK_H | |
efed792d PZ |
6 | |
7 | #include <linux/lockdep.h> | |
8 | #include <linux/tracepoint.h> | |
9 | ||
ea20d929 SR |
10 | #ifdef CONFIG_LOCKDEP |
11 | ||
39517091 SR |
12 | TRACE_EVENT(lock_acquire, |
13 | ||
ea20d929 SR |
14 | TP_PROTO(struct lockdep_map *lock, unsigned int subclass, |
15 | int trylock, int read, int check, | |
16 | struct lockdep_map *next_lock, unsigned long ip), | |
39517091 | 17 | |
ea20d929 | 18 | TP_ARGS(lock, subclass, trylock, read, check, next_lock, ip), |
ea20d929 | 19 | |
39517091 SR |
20 | TP_STRUCT__entry( |
21 | __field(unsigned int, flags) | |
22 | __string(name, lock->name) | |
c965be10 | 23 | __field(void *, lockdep_addr) |
39517091 SR |
24 | ), |
25 | ||
26 | TP_fast_assign( | |
27 | __entry->flags = (trylock ? 1 : 0) | (read ? 2 : 0); | |
28 | __assign_str(name, lock->name); | |
c965be10 | 29 | __entry->lockdep_addr = lock; |
39517091 SR |
30 | ), |
31 | ||
c965be10 HM |
32 | TP_printk("%p %s%s%s", __entry->lockdep_addr, |
33 | (__entry->flags & 1) ? "try " : "", | |
39517091 SR |
34 | (__entry->flags & 2) ? "read " : "", |
35 | __get_str(name)) | |
36 | ); | |
37 | ||
38 | TRACE_EVENT(lock_release, | |
39 | ||
ea20d929 | 40 | TP_PROTO(struct lockdep_map *lock, int nested, unsigned long ip), |
39517091 | 41 | |
ea20d929 | 42 | TP_ARGS(lock, nested, ip), |
39517091 SR |
43 | |
44 | TP_STRUCT__entry( | |
45 | __string(name, lock->name) | |
c965be10 | 46 | __field(void *, lockdep_addr) |
39517091 SR |
47 | ), |
48 | ||
49 | TP_fast_assign( | |
50 | __assign_str(name, lock->name); | |
c965be10 | 51 | __entry->lockdep_addr = lock; |
39517091 SR |
52 | ), |
53 | ||
c965be10 HM |
54 | TP_printk("%p %s", |
55 | __entry->lockdep_addr, __get_str(name)) | |
39517091 | 56 | ); |
ea20d929 SR |
57 | |
58 | #ifdef CONFIG_LOCK_STAT | |
59 | ||
39517091 SR |
60 | TRACE_EVENT(lock_contended, |
61 | ||
ea20d929 | 62 | TP_PROTO(struct lockdep_map *lock, unsigned long ip), |
39517091 | 63 | |
ea20d929 | 64 | TP_ARGS(lock, ip), |
39517091 SR |
65 | |
66 | TP_STRUCT__entry( | |
67 | __string(name, lock->name) | |
c965be10 | 68 | __field(void *, lockdep_addr) |
39517091 SR |
69 | ), |
70 | ||
71 | TP_fast_assign( | |
72 | __assign_str(name, lock->name); | |
c965be10 | 73 | __entry->lockdep_addr = lock; |
39517091 SR |
74 | ), |
75 | ||
c965be10 HM |
76 | TP_printk("%p %s", |
77 | __entry->lockdep_addr, __get_str(name)) | |
39517091 | 78 | ); |
ea20d929 SR |
79 | |
80 | TRACE_EVENT(lock_acquired, | |
883a2a31 | 81 | TP_PROTO(struct lockdep_map *lock, unsigned long ip), |
ea20d929 | 82 | |
883a2a31 | 83 | TP_ARGS(lock, ip), |
ea20d929 SR |
84 | |
85 | TP_STRUCT__entry( | |
7e7ca9a2 | 86 | __string(name, lock->name) |
c965be10 | 87 | __field(void *, lockdep_addr) |
ea20d929 | 88 | ), |
c965be10 | 89 | |
ea20d929 | 90 | TP_fast_assign( |
7e7ca9a2 | 91 | __assign_str(name, lock->name); |
c965be10 | 92 | __entry->lockdep_addr = lock; |
ea20d929 | 93 | ), |
883a2a31 FW |
94 | TP_printk("%p %s", __entry->lockdep_addr, |
95 | __get_str(name)) | |
ea20d929 | 96 | ); |
efed792d PZ |
97 | |
98 | #endif | |
ea20d929 SR |
99 | #endif |
100 | ||
67178767 | 101 | #endif /* _TRACE_LOCK_H */ |
a8d154b0 SR |
102 | |
103 | /* This part must be outside protection */ | |
104 | #include <trace/define_trace.h> |