Add kernel probes for supplementary subsystems
[lttng-modules.git] / instrumentation / events / lttng-module / jbd2.h
1 #undef TRACE_SYSTEM
2 #define TRACE_SYSTEM jbd2
3
4 #if !defined(_TRACE_JBD2_H) || defined(TRACE_HEADER_MULTI_READ)
5 #define _TRACE_JBD2_H
6
7 #include <linux/jbd2.h>
8 #include <linux/tracepoint.h>
9
10 #ifndef _TRACE_JBD2_DEF
11 #define _TRACE_JBD2_DEF
12 struct transaction_chp_stats_s;
13 struct transaction_run_stats_s;
14 #endif
15
16 TRACE_EVENT(jbd2_checkpoint,
17
18 TP_PROTO(journal_t *journal, int result),
19
20 TP_ARGS(journal, result),
21
22 TP_STRUCT__entry(
23 __field( dev_t, dev )
24 __field( int, result )
25 ),
26
27 TP_fast_assign(
28 tp_assign(dev, journal->j_fs_dev->bd_dev);
29 tp_assign(result, result);
30 ),
31
32 TP_printk("dev %d,%d result %d",
33 MAJOR(__entry->dev), MINOR(__entry->dev), __entry->result)
34 )
35
36 DECLARE_EVENT_CLASS(jbd2_commit,
37
38 TP_PROTO(journal_t *journal, transaction_t *commit_transaction),
39
40 TP_ARGS(journal, commit_transaction),
41
42 TP_STRUCT__entry(
43 __field( dev_t, dev )
44 __field( char, sync_commit )
45 __field( int, transaction )
46 ),
47
48 TP_fast_assign(
49 tp_assign(dev, journal->j_fs_dev->bd_dev);
50 tp_assign(sync_commit, commit_transaction->t_synchronous_commit);
51 tp_assign(transaction, commit_transaction->t_tid);
52 ),
53
54 TP_printk("dev %d,%d transaction %d sync %d",
55 MAJOR(__entry->dev), MINOR(__entry->dev),
56 __entry->transaction, __entry->sync_commit)
57 )
58
59 DEFINE_EVENT(jbd2_commit, jbd2_start_commit,
60
61 TP_PROTO(journal_t *journal, transaction_t *commit_transaction),
62
63 TP_ARGS(journal, commit_transaction)
64 )
65
66 DEFINE_EVENT(jbd2_commit, jbd2_commit_locking,
67
68 TP_PROTO(journal_t *journal, transaction_t *commit_transaction),
69
70 TP_ARGS(journal, commit_transaction)
71 )
72
73 DEFINE_EVENT(jbd2_commit, jbd2_commit_flushing,
74
75 TP_PROTO(journal_t *journal, transaction_t *commit_transaction),
76
77 TP_ARGS(journal, commit_transaction)
78 )
79
80 DEFINE_EVENT(jbd2_commit, jbd2_commit_logging,
81
82 TP_PROTO(journal_t *journal, transaction_t *commit_transaction),
83
84 TP_ARGS(journal, commit_transaction)
85 )
86
87 TRACE_EVENT(jbd2_end_commit,
88 TP_PROTO(journal_t *journal, transaction_t *commit_transaction),
89
90 TP_ARGS(journal, commit_transaction),
91
92 TP_STRUCT__entry(
93 __field( dev_t, dev )
94 __field( char, sync_commit )
95 __field( int, transaction )
96 __field( int, head )
97 ),
98
99 TP_fast_assign(
100 tp_assign(dev, journal->j_fs_dev->bd_dev);
101 tp_assign(sync_commit, commit_transaction->t_synchronous_commit);
102 tp_assign(transaction, commit_transaction->t_tid);
103 tp_assign(head, journal->j_tail_sequence);
104 ),
105
106 TP_printk("dev %d,%d transaction %d sync %d head %d",
107 MAJOR(__entry->dev), MINOR(__entry->dev),
108 __entry->transaction, __entry->sync_commit, __entry->head)
109 )
110
111 TRACE_EVENT(jbd2_submit_inode_data,
112 TP_PROTO(struct inode *inode),
113
114 TP_ARGS(inode),
115
116 TP_STRUCT__entry(
117 __field( dev_t, dev )
118 __field( ino_t, ino )
119 ),
120
121 TP_fast_assign(
122 tp_assign(dev, inode->i_sb->s_dev);
123 tp_assign(ino, inode->i_ino);
124 ),
125
126 TP_printk("dev %d,%d ino %lu",
127 MAJOR(__entry->dev), MINOR(__entry->dev),
128 (unsigned long) __entry->ino)
129 )
130
131 TRACE_EVENT(jbd2_run_stats,
132 TP_PROTO(dev_t dev, unsigned long tid,
133 struct transaction_run_stats_s *stats),
134
135 TP_ARGS(dev, tid, stats),
136
137 TP_STRUCT__entry(
138 __field( dev_t, dev )
139 __field( unsigned long, tid )
140 __field( unsigned long, wait )
141 __field( unsigned long, running )
142 __field( unsigned long, locked )
143 __field( unsigned long, flushing )
144 __field( unsigned long, logging )
145 __field( __u32, handle_count )
146 __field( __u32, blocks )
147 __field( __u32, blocks_logged )
148 ),
149
150 TP_fast_assign(
151 tp_assign(dev, dev);
152 tp_assign(tid, tid);
153 tp_assign(wait, stats->rs_wait);
154 tp_assign(running, stats->rs_running);
155 tp_assign(locked, stats->rs_locked);
156 tp_assign(flushing, stats->rs_flushing);
157 tp_assign(logging, stats->rs_logging);
158 tp_assign(handle_count, stats->rs_handle_count);
159 tp_assign(blocks, stats->rs_blocks);
160 tp_assign(blocks_logged, stats->rs_blocks_logged);
161 ),
162
163 TP_printk("dev %d,%d tid %lu wait %u running %u locked %u flushing %u "
164 "logging %u handle_count %u blocks %u blocks_logged %u",
165 MAJOR(__entry->dev), MINOR(__entry->dev), __entry->tid,
166 jiffies_to_msecs(__entry->wait),
167 jiffies_to_msecs(__entry->running),
168 jiffies_to_msecs(__entry->locked),
169 jiffies_to_msecs(__entry->flushing),
170 jiffies_to_msecs(__entry->logging),
171 __entry->handle_count, __entry->blocks,
172 __entry->blocks_logged)
173 )
174
175 TRACE_EVENT(jbd2_checkpoint_stats,
176 TP_PROTO(dev_t dev, unsigned long tid,
177 struct transaction_chp_stats_s *stats),
178
179 TP_ARGS(dev, tid, stats),
180
181 TP_STRUCT__entry(
182 __field( dev_t, dev )
183 __field( unsigned long, tid )
184 __field( unsigned long, chp_time )
185 __field( __u32, forced_to_close )
186 __field( __u32, written )
187 __field( __u32, dropped )
188 ),
189
190 TP_fast_assign(
191 tp_assign(dev, dev);
192 tp_assign(tid, tid);
193 tp_assign(chp_time, stats->cs_chp_time);
194 tp_assign(forced_to_close, stats->cs_forced_to_close);
195 tp_assign(written, stats->cs_written);
196 tp_assign(dropped, stats->cs_dropped);
197 ),
198
199 TP_printk("dev %d,%d tid %lu chp_time %u forced_to_close %u "
200 "written %u dropped %u",
201 MAJOR(__entry->dev), MINOR(__entry->dev), __entry->tid,
202 jiffies_to_msecs(__entry->chp_time),
203 __entry->forced_to_close, __entry->written, __entry->dropped)
204 )
205
206 TRACE_EVENT(jbd2_cleanup_journal_tail,
207
208 TP_PROTO(journal_t *journal, tid_t first_tid,
209 unsigned long block_nr, unsigned long freed),
210
211 TP_ARGS(journal, first_tid, block_nr, freed),
212
213 TP_STRUCT__entry(
214 __field( dev_t, dev )
215 __field( tid_t, tail_sequence )
216 __field( tid_t, first_tid )
217 __field(unsigned long, block_nr )
218 __field(unsigned long, freed )
219 ),
220
221 TP_fast_assign(
222 tp_assign(dev, journal->j_fs_dev->bd_dev);
223 tp_assign(tail_sequence, journal->j_tail_sequence);
224 tp_assign(first_tid, first_tid);
225 tp_assign(block_nr, block_nr);
226 tp_assign(freed, freed);
227 ),
228
229 TP_printk("dev %d,%d from %u to %u offset %lu freed %lu",
230 MAJOR(__entry->dev), MINOR(__entry->dev),
231 __entry->tail_sequence, __entry->first_tid,
232 __entry->block_nr, __entry->freed)
233 )
234
235 #endif /* _TRACE_JBD2_H */
236
237 /* This part must be outside protection */
238 #include "../../../probes/define_trace.h"
This page took 0.034675 seconds and 4 git commands to generate.