Commit | Line | Data |
---|---|---|
1c8284eb MD |
1 | /* |
2 | * ltt/probes/lockdep-trace.c | |
3 | * | |
4 | * lockdep tracepoint probes. | |
5 | * | |
6 | * (C) Copyright 2009 - Mathieu Desnoyers <mathieu.desnoyers@polymtl.ca> | |
7 | * Dual LGPL v2.1/GPL v2 license. | |
8 | */ | |
9 | ||
10 | #include <linux/module.h> | |
11 | #include <linux/lockdep.h> | |
12 | #include <trace/lockdep.h> | |
13 | ||
14 | void probe_lockdep_hardirqs_on(void *data, unsigned long retaddr) | |
15 | { | |
16 | trace_mark_tp(lockdep, hardirqs_on, lockdep_hardirqs_on, | |
17 | probe_lockdep_hardirqs_on, "retaddr 0x%lX", retaddr); | |
18 | } | |
19 | ||
20 | void probe_lockdep_hardirqs_off(void *data, unsigned long retaddr) | |
21 | { | |
22 | trace_mark_tp(lockdep, hardirqs_off, lockdep_hardirqs_off, | |
23 | probe_lockdep_hardirqs_off, "retaddr 0x%lX", retaddr); | |
24 | } | |
25 | ||
26 | void probe_lockdep_softirqs_on(void *data, unsigned long retaddr) | |
27 | { | |
28 | trace_mark_tp(lockdep, softirqs_on, lockdep_softirqs_on, | |
29 | probe_lockdep_softirqs_on, "retaddr 0x%lX", retaddr); | |
30 | } | |
31 | ||
32 | void probe_lockdep_softirqs_off(void *data, unsigned long retaddr) | |
33 | { | |
34 | trace_mark_tp(lockdep, softirqs_off, lockdep_softirqs_off, | |
35 | probe_lockdep_softirqs_off, "retaddr 0x%lX", retaddr); | |
36 | } | |
37 | ||
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) | |
41 | { | |
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 " | |
45 | "hardirqs_off %d", | |
46 | retaddr, subclass, lock, trylock, read, hardirqs_off); | |
47 | } | |
48 | ||
49 | void probe_lockdep_lock_release(void *data, unsigned long retaddr, | |
50 | struct lockdep_map *lock, int nested) | |
51 | { | |
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); | |
56 | } | |
57 | ||
58 | MODULE_LICENSE("GPL and additional rights"); | |
59 | MODULE_AUTHOR("Mathieu Desnoyers"); | |
60 | MODULE_DESCRIPTION("lockdep Tracepoint Probes"); |