Commit | Line | Data |
---|---|---|
b283666f PW |
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_LOCKDEP | |
11 | ||
12 | TRACE_EVENT(lock_acquire, | |
13 | ||
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), | |
17 | ||
18 | TP_ARGS(lock, subclass, trylock, read, check, next_lock, ip), | |
19 | ||
20 | TP_STRUCT__entry( | |
21 | __field(unsigned int, flags) | |
22 | __string(name, lock->name) | |
23 | __field(void *, lockdep_addr) | |
24 | ), | |
25 | ||
26 | TP_fast_assign( | |
27 | __entry->flags = (trylock ? 1 : 0) | (read ? 2 : 0); | |
28 | __assign_str(name, lock->name); | |
29 | __entry->lockdep_addr = lock; | |
30 | ), | |
31 | ||
32 | TP_printk("%p %s%s%s", __entry->lockdep_addr, | |
33 | (__entry->flags & 1) ? "try " : "", | |
34 | (__entry->flags & 2) ? "read " : "", | |
35 | __get_str(name)) | |
36 | ); | |
37 | ||
38 | DECLARE_EVENT_CLASS(lock, | |
39 | ||
40 | TP_PROTO(struct lockdep_map *lock, unsigned long ip), | |
41 | ||
42 | TP_ARGS(lock, ip), | |
43 | ||
44 | TP_STRUCT__entry( | |
45 | __string( name, lock->name ) | |
46 | __field( void *, lockdep_addr ) | |
47 | ), | |
48 | ||
49 | TP_fast_assign( | |
50 | __assign_str(name, lock->name); | |
51 | __entry->lockdep_addr = lock; | |
52 | ), | |
53 | ||
54 | TP_printk("%p %s", __entry->lockdep_addr, __get_str(name)) | |
55 | ); | |
56 | ||
57 | DEFINE_EVENT(lock, lock_release, | |
58 | ||
59 | TP_PROTO(struct lockdep_map *lock, unsigned long ip), | |
60 | ||
61 | TP_ARGS(lock, ip) | |
62 | ); | |
63 | ||
64 | #ifdef CONFIG_LOCK_STAT | |
65 | ||
66 | DEFINE_EVENT(lock, lock_contended, | |
67 | ||
68 | TP_PROTO(struct lockdep_map *lock, unsigned long ip), | |
69 | ||
70 | TP_ARGS(lock, ip) | |
71 | ); | |
72 | ||
73 | DEFINE_EVENT(lock, lock_acquired, | |
74 | ||
75 | TP_PROTO(struct lockdep_map *lock, unsigned long ip), | |
76 | ||
77 | TP_ARGS(lock, ip) | |
78 | ); | |
79 | ||
80 | #endif | |
81 | #endif | |
82 | ||
83 | #endif /* _TRACE_LOCK_H */ | |
84 | ||
85 | /* This part must be outside protection */ | |
86 | #include <trace/define_trace.h> |