Merge tag 'v3.14.25' into backport/v3.14.24-ltsi-rc1+v3.14.25/snapshot-merge.wip
[platform/adaptation/renesas_rcar/renesas_kernel.git] / drivers / staging / lttng / 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 #include <linux/version.h>
10
11 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,32))
12 #ifndef _TRACE_JBD2_DEF
13 #define _TRACE_JBD2_DEF
14 struct transaction_chp_stats_s;
15 struct transaction_run_stats_s;
16 #endif
17 #endif
18
19 TRACE_EVENT(jbd2_checkpoint,
20
21         TP_PROTO(journal_t *journal, int result),
22
23         TP_ARGS(journal, result),
24
25         TP_STRUCT__entry(
26                 __field(        dev_t,  dev                     )
27                 __field(        int,    result                  )
28         ),
29
30         TP_fast_assign(
31                 tp_assign(dev, journal->j_fs_dev->bd_dev)
32                 tp_assign(result, result)
33         ),
34
35         TP_printk("dev %d,%d result %d",
36                   MAJOR(__entry->dev), MINOR(__entry->dev), __entry->result)
37 )
38
39 DECLARE_EVENT_CLASS(jbd2_commit,
40
41         TP_PROTO(journal_t *journal, transaction_t *commit_transaction),
42
43         TP_ARGS(journal, commit_transaction),
44
45         TP_STRUCT__entry(
46                 __field(        dev_t,  dev                     )
47                 __field(        char,   sync_commit               )
48                 __field(        int,    transaction               )
49         ),
50
51         TP_fast_assign(
52                 tp_assign(dev, journal->j_fs_dev->bd_dev)
53                 tp_assign(sync_commit, commit_transaction->t_synchronous_commit)
54                 tp_assign(transaction, commit_transaction->t_tid)
55         ),
56
57         TP_printk("dev %d,%d transaction %d sync %d",
58                   MAJOR(__entry->dev), MINOR(__entry->dev),
59                   __entry->transaction, __entry->sync_commit)
60 )
61
62 DEFINE_EVENT(jbd2_commit, jbd2_start_commit,
63
64         TP_PROTO(journal_t *journal, transaction_t *commit_transaction),
65
66         TP_ARGS(journal, commit_transaction)
67 )
68
69 DEFINE_EVENT(jbd2_commit, jbd2_commit_locking,
70
71         TP_PROTO(journal_t *journal, transaction_t *commit_transaction),
72
73         TP_ARGS(journal, commit_transaction)
74 )
75
76 DEFINE_EVENT(jbd2_commit, jbd2_commit_flushing,
77
78         TP_PROTO(journal_t *journal, transaction_t *commit_transaction),
79
80         TP_ARGS(journal, commit_transaction)
81 )
82
83 DEFINE_EVENT(jbd2_commit, jbd2_commit_logging,
84
85         TP_PROTO(journal_t *journal, transaction_t *commit_transaction),
86
87         TP_ARGS(journal, commit_transaction)
88 )
89
90 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,4,0))
91 DEFINE_EVENT(jbd2_commit, jbd2_drop_transaction,
92
93         TP_PROTO(journal_t *journal, transaction_t *commit_transaction),
94
95         TP_ARGS(journal, commit_transaction)
96 )
97 #endif
98
99 TRACE_EVENT(jbd2_end_commit,
100         TP_PROTO(journal_t *journal, transaction_t *commit_transaction),
101
102         TP_ARGS(journal, commit_transaction),
103
104         TP_STRUCT__entry(
105                 __field(        dev_t,  dev                     )
106                 __field(        char,   sync_commit               )
107                 __field(        int,    transaction               )
108                 __field(        int,    head                      )
109         ),
110
111         TP_fast_assign(
112                 tp_assign(dev, journal->j_fs_dev->bd_dev)
113                 tp_assign(sync_commit, commit_transaction->t_synchronous_commit)
114                 tp_assign(transaction, commit_transaction->t_tid)
115                 tp_assign(head, journal->j_tail_sequence)
116         ),
117
118         TP_printk("dev %d,%d transaction %d sync %d head %d",
119                   MAJOR(__entry->dev), MINOR(__entry->dev),
120                   __entry->transaction, __entry->sync_commit, __entry->head)
121 )
122
123 TRACE_EVENT(jbd2_submit_inode_data,
124         TP_PROTO(struct inode *inode),
125
126         TP_ARGS(inode),
127
128         TP_STRUCT__entry(
129                 __field(        dev_t,  dev                     )
130                 __field(        ino_t,  ino                     )
131         ),
132
133         TP_fast_assign(
134                 tp_assign(dev, inode->i_sb->s_dev)
135                 tp_assign(ino, inode->i_ino)
136         ),
137
138         TP_printk("dev %d,%d ino %lu",
139                   MAJOR(__entry->dev), MINOR(__entry->dev),
140                   (unsigned long) __entry->ino)
141 )
142
143 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,32))
144 TRACE_EVENT(jbd2_run_stats,
145         TP_PROTO(dev_t dev, unsigned long tid,
146                  struct transaction_run_stats_s *stats),
147
148         TP_ARGS(dev, tid, stats),
149
150         TP_STRUCT__entry(
151                 __field(                dev_t,  dev             )
152                 __field(        unsigned long,  tid             )
153                 __field(        unsigned long,  wait            )
154                 __field(        unsigned long,  running         )
155                 __field(        unsigned long,  locked          )
156                 __field(        unsigned long,  flushing        )
157                 __field(        unsigned long,  logging         )
158                 __field(                __u32,  handle_count    )
159                 __field(                __u32,  blocks          )
160                 __field(                __u32,  blocks_logged   )
161         ),
162
163         TP_fast_assign(
164                 tp_assign(dev, dev)
165                 tp_assign(tid, tid)
166                 tp_assign(wait, stats->rs_wait)
167                 tp_assign(running, stats->rs_running)
168                 tp_assign(locked, stats->rs_locked)
169                 tp_assign(flushing, stats->rs_flushing)
170                 tp_assign(logging, stats->rs_logging)
171                 tp_assign(handle_count, stats->rs_handle_count)
172                 tp_assign(blocks, stats->rs_blocks)
173                 tp_assign(blocks_logged, stats->rs_blocks_logged)
174         ),
175
176         TP_printk("dev %d,%d tid %lu wait %u running %u locked %u flushing %u "
177                   "logging %u handle_count %u blocks %u blocks_logged %u",
178                   MAJOR(__entry->dev), MINOR(__entry->dev), __entry->tid,
179                   jiffies_to_msecs(__entry->wait),
180                   jiffies_to_msecs(__entry->running),
181                   jiffies_to_msecs(__entry->locked),
182                   jiffies_to_msecs(__entry->flushing),
183                   jiffies_to_msecs(__entry->logging),
184                   __entry->handle_count, __entry->blocks,
185                   __entry->blocks_logged)
186 )
187
188 TRACE_EVENT(jbd2_checkpoint_stats,
189         TP_PROTO(dev_t dev, unsigned long tid,
190                  struct transaction_chp_stats_s *stats),
191
192         TP_ARGS(dev, tid, stats),
193
194         TP_STRUCT__entry(
195                 __field(                dev_t,  dev             )
196                 __field(        unsigned long,  tid             )
197                 __field(        unsigned long,  chp_time        )
198                 __field(                __u32,  forced_to_close )
199                 __field(                __u32,  written         )
200                 __field(                __u32,  dropped         )
201         ),
202
203         TP_fast_assign(
204                 tp_assign(dev, dev)
205                 tp_assign(tid, tid)
206                 tp_assign(chp_time, stats->cs_chp_time)
207                 tp_assign(forced_to_close, stats->cs_forced_to_close)
208                 tp_assign(written, stats->cs_written)
209                 tp_assign(dropped, stats->cs_dropped)
210         ),
211
212         TP_printk("dev %d,%d tid %lu chp_time %u forced_to_close %u "
213                   "written %u dropped %u",
214                   MAJOR(__entry->dev), MINOR(__entry->dev), __entry->tid,
215                   jiffies_to_msecs(__entry->chp_time),
216                   __entry->forced_to_close, __entry->written, __entry->dropped)
217 )
218 #endif
219
220 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,34))
221 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,4,0))
222 TRACE_EVENT(jbd2_update_log_tail,
223 #else
224 TRACE_EVENT(jbd2_cleanup_journal_tail,
225 #endif
226
227         TP_PROTO(journal_t *journal, tid_t first_tid,
228                  unsigned long block_nr, unsigned long freed),
229
230         TP_ARGS(journal, first_tid, block_nr, freed),
231
232         TP_STRUCT__entry(
233                 __field(        dev_t,  dev                     )
234                 __field(        tid_t,  tail_sequence           )
235                 __field(        tid_t,  first_tid               )
236                 __field(unsigned long,  block_nr                )
237                 __field(unsigned long,  freed                   )
238         ),
239
240         TP_fast_assign(
241                 tp_assign(dev, journal->j_fs_dev->bd_dev)
242                 tp_assign(tail_sequence, journal->j_tail_sequence)
243                 tp_assign(first_tid, first_tid)
244                 tp_assign(block_nr, block_nr)
245                 tp_assign(freed, freed)
246         ),
247
248         TP_printk("dev %d,%d from %u to %u offset %lu freed %lu",
249                   MAJOR(__entry->dev), MINOR(__entry->dev),
250                   __entry->tail_sequence, __entry->first_tid,
251                   __entry->block_nr, __entry->freed)
252 )
253 #endif
254
255 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,4,0))
256 TRACE_EVENT(jbd2_write_superblock,
257
258         TP_PROTO(journal_t *journal, int write_op),
259
260         TP_ARGS(journal, write_op),
261
262         TP_STRUCT__entry(
263                 __field(        dev_t,  dev                     )
264                 __field(          int,  write_op                )
265         ),
266
267         TP_fast_assign(
268                 tp_assign(dev, journal->j_fs_dev->bd_dev)
269                 tp_assign(write_op, write_op)
270         ),
271
272         TP_printk("dev %d,%d write_op %x", MAJOR(__entry->dev),
273                   MINOR(__entry->dev), __entry->write_op)
274 )
275 #endif
276
277 #endif /* _TRACE_JBD2_H */
278
279 /* This part must be outside protection */
280 #include "../../../probes/define_trace.h"