perf: Add util/include/linuxhash.h to include hash.h of kernel
[linux-2.6-block.git] / include / trace / events / lock.h
CommitLineData
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
12TRACE_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)
23 ),
24
25 TP_fast_assign(
26 __entry->flags = (trylock ? 1 : 0) | (read ? 2 : 0);
27 __assign_str(name, lock->name);
28 ),
29
30 TP_printk("%s%s%s", (__entry->flags & 1) ? "try " : "",
31 (__entry->flags & 2) ? "read " : "",
32 __get_str(name))
33);
34
35TRACE_EVENT(lock_release,
36
ea20d929 37 TP_PROTO(struct lockdep_map *lock, int nested, unsigned long ip),
39517091 38
ea20d929 39 TP_ARGS(lock, nested, ip),
39517091
SR
40
41 TP_STRUCT__entry(
42 __string(name, lock->name)
43 ),
44
45 TP_fast_assign(
46 __assign_str(name, lock->name);
47 ),
48
49 TP_printk("%s", __get_str(name))
50);
ea20d929
SR
51
52#ifdef CONFIG_LOCK_STAT
53
39517091
SR
54TRACE_EVENT(lock_contended,
55
ea20d929 56 TP_PROTO(struct lockdep_map *lock, unsigned long ip),
39517091 57
ea20d929 58 TP_ARGS(lock, ip),
39517091
SR
59
60 TP_STRUCT__entry(
61 __string(name, lock->name)
62 ),
63
64 TP_fast_assign(
65 __assign_str(name, lock->name);
66 ),
67
68 TP_printk("%s", __get_str(name))
69);
ea20d929
SR
70
71TRACE_EVENT(lock_acquired,
72 TP_PROTO(struct lockdep_map *lock, unsigned long ip, s64 waittime),
73
74 TP_ARGS(lock, ip, waittime),
75
76 TP_STRUCT__entry(
7e7ca9a2 77 __string(name, lock->name)
ea20d929
SR
78 __field(unsigned long, wait_usec)
79 __field(unsigned long, wait_nsec_rem)
80 ),
81 TP_fast_assign(
7e7ca9a2 82 __assign_str(name, lock->name);
ea20d929
SR
83 __entry->wait_nsec_rem = do_div(waittime, NSEC_PER_USEC);
84 __entry->wait_usec = (unsigned long) waittime;
85 ),
7e7ca9a2 86 TP_printk("%s (%lu.%03lu us)", __get_str(name), __entry->wait_usec,
ea20d929
SR
87 __entry->wait_nsec_rem)
88);
efed792d
PZ
89
90#endif
ea20d929
SR
91#endif
92
67178767 93#endif /* _TRACE_LOCK_H */
a8d154b0
SR
94
95/* This part must be outside protection */
96#include <trace/define_trace.h>