2 * ltt/probes/lockdep-trace.c
4 * lockdep tracepoint probes.
6 * (C) Copyright 2009 - Mathieu Desnoyers <mathieu.desnoyers@polymtl.ca>
7 * Dual LGPL v2.1/GPL v2 license.
10 #include <linux/module.h>
11 #include <linux/lockdep.h>
12 #include <trace/lockdep.h>
14 void probe_lockdep_hardirqs_on(void *data
, unsigned long retaddr
)
16 trace_mark_tp(lockdep
, hardirqs_on
, lockdep_hardirqs_on
,
17 probe_lockdep_hardirqs_on
, "retaddr 0x%lX", retaddr
);
20 void probe_lockdep_hardirqs_off(void *data
, unsigned long retaddr
)
22 trace_mark_tp(lockdep
, hardirqs_off
, lockdep_hardirqs_off
,
23 probe_lockdep_hardirqs_off
, "retaddr 0x%lX", retaddr
);
26 void probe_lockdep_softirqs_on(void *data
, unsigned long retaddr
)
28 trace_mark_tp(lockdep
, softirqs_on
, lockdep_softirqs_on
,
29 probe_lockdep_softirqs_on
, "retaddr 0x%lX", retaddr
);
32 void probe_lockdep_softirqs_off(void *data
, unsigned long retaddr
)
34 trace_mark_tp(lockdep
, softirqs_off
, lockdep_softirqs_off
,
35 probe_lockdep_softirqs_off
, "retaddr 0x%lX", retaddr
);
38 void probe_lockdep_lock_acquire(void *data
, unsigned long retaddr
,
39 unsigned int subclass
, struct lockdep_map
*lock
, int trylock
,
40 int read
, int hardirqs_off
)
42 trace_mark_tp(lockdep
, lock_acquire
, lockdep_lock_acquire
,
43 probe_lockdep_lock_acquire
,
44 "retaddr 0x%lX subclass %u lock %p trylock %d read %d "
46 retaddr
, subclass
, lock
, trylock
, read
, hardirqs_off
);
49 void probe_lockdep_lock_release(void *data
, unsigned long retaddr
,
50 struct lockdep_map
*lock
, int nested
)
52 trace_mark_tp(lockdep
, lock_release
, lockdep_lock_release
,
53 probe_lockdep_lock_release
,
54 "retaddr 0x%lX lock %p nested %d",
55 retaddr
, lock
, nested
);
58 MODULE_LICENSE("GPL and additional rights");
59 MODULE_AUTHOR("Mathieu Desnoyers");
60 MODULE_DESCRIPTION("lockdep Tracepoint Probes");