aboutsummaryrefslogtreecommitdiffstats
path: root/include/trace/events
diff options
context:
space:
mode:
authorNamjae Jeon <namjae.jeon@samsung.com>2013-04-19 12:28:52 -0400
committerJaegeuk Kim <jaegeuk.kim@samsung.com>2013-04-23 03:40:38 -0400
commit51dd62493477923723c797c6da60121ed39900ed (patch)
tree7589f4396dc6caf0c043831d6677989babcfa7cf /include/trace/events
parenta2a4a7e4abb27c833d4e09ac1d434ab48a64062c (diff)
f2fs: add tracepoints for truncate operation
add tracepoints for tracing the truncate operations like truncate node/data blocks, f2fs_truncate etc. Tracepoints are added at entry and exit of operation to trace the success & failure of operation. Signed-off-by: Namjae Jeon <namjae.jeon@samsung.com> Signed-off-by: Pankaj Kumar <pankaj.km@samsung.com> Acked-by: Steven Rostedt <rostedt@goodmis.org> [Jaegeuk: combine and modify the tracepoint structures] Signed-off-by: Jaegeuk Kim <jaegeuk.kim@samsung.com>
Diffstat (limited to 'include/trace/events')
-rw-r--r--include/trace/events/f2fs.h176
1 files changed, 176 insertions, 0 deletions
diff --git a/include/trace/events/f2fs.h b/include/trace/events/f2fs.h
index 03bb0dbf468d..4bbd19f79d27 100644
--- a/include/trace/events/f2fs.h
+++ b/include/trace/events/f2fs.h
@@ -189,6 +189,182 @@ DEFINE_EVENT(f2fs__inode_exit, f2fs_unlink_exit,
189 189
190 TP_ARGS(inode, ret) 190 TP_ARGS(inode, ret)
191); 191);
192
193DEFINE_EVENT(f2fs__inode, f2fs_truncate,
194
195 TP_PROTO(struct inode *inode),
196
197 TP_ARGS(inode)
198);
199
200TRACE_EVENT(f2fs_truncate_data_blocks_range,
201
202 TP_PROTO(struct inode *inode, nid_t nid, unsigned int ofs, int free),
203
204 TP_ARGS(inode, nid, ofs, free),
205
206 TP_STRUCT__entry(
207 __field(dev_t, dev)
208 __field(ino_t, ino)
209 __field(nid_t, nid)
210 __field(unsigned int, ofs)
211 __field(int, free)
212 ),
213
214 TP_fast_assign(
215 __entry->dev = inode->i_sb->s_dev;
216 __entry->ino = inode->i_ino;
217 __entry->nid = nid;
218 __entry->ofs = ofs;
219 __entry->free = free;
220 ),
221
222 TP_printk("dev = (%d,%d), ino = %lu, nid = %u, offset = %u, freed = %d",
223 show_dev_ino(__entry),
224 (unsigned int)__entry->nid,
225 __entry->ofs,
226 __entry->free)
227);
228
229DECLARE_EVENT_CLASS(f2fs__truncate_op,
230
231 TP_PROTO(struct inode *inode, u64 from),
232
233 TP_ARGS(inode, from),
234
235 TP_STRUCT__entry(
236 __field(dev_t, dev)
237 __field(ino_t, ino)
238 __field(loff_t, size)
239 __field(blkcnt_t, blocks)
240 __field(u64, from)
241 ),
242
243 TP_fast_assign(
244 __entry->dev = inode->i_sb->s_dev;
245 __entry->ino = inode->i_ino;
246 __entry->size = inode->i_size;
247 __entry->blocks = inode->i_blocks;
248 __entry->from = from;
249 ),
250
251 TP_printk("dev = (%d,%d), ino = %lu, i_size = %lld, i_blocks = %llu, "
252 "start file offset = %llu",
253 show_dev_ino(__entry),
254 __entry->size,
255 (unsigned long long)__entry->blocks,
256 (unsigned long long)__entry->from)
257);
258
259DEFINE_EVENT(f2fs__truncate_op, f2fs_truncate_blocks_enter,
260
261 TP_PROTO(struct inode *inode, u64 from),
262
263 TP_ARGS(inode, from)
264);
265
266DEFINE_EVENT(f2fs__inode_exit, f2fs_truncate_blocks_exit,
267
268 TP_PROTO(struct inode *inode, int ret),
269
270 TP_ARGS(inode, ret)
271);
272
273DEFINE_EVENT(f2fs__truncate_op, f2fs_truncate_inode_blocks_enter,
274
275 TP_PROTO(struct inode *inode, u64 from),
276
277 TP_ARGS(inode, from)
278);
279
280DEFINE_EVENT(f2fs__inode_exit, f2fs_truncate_inode_blocks_exit,
281
282 TP_PROTO(struct inode *inode, int ret),
283
284 TP_ARGS(inode, ret)
285);
286
287DECLARE_EVENT_CLASS(f2fs__truncate_node,
288
289 TP_PROTO(struct inode *inode, nid_t nid, block_t blk_addr),
290
291 TP_ARGS(inode, nid, blk_addr),
292
293 TP_STRUCT__entry(
294 __field(dev_t, dev)
295 __field(ino_t, ino)
296 __field(nid_t, nid)
297 __field(block_t, blk_addr)
298 ),
299
300 TP_fast_assign(
301 __entry->dev = inode->i_sb->s_dev;
302 __entry->ino = inode->i_ino;
303 __entry->nid = nid;
304 __entry->blk_addr = blk_addr;
305 ),
306
307 TP_printk("dev = (%d,%d), ino = %lu, nid = %u, block_address = 0x%llx",
308 show_dev_ino(__entry),
309 (unsigned int)__entry->nid,
310 (unsigned long long)__entry->blk_addr)
311);
312
313DEFINE_EVENT(f2fs__truncate_node, f2fs_truncate_nodes_enter,
314
315 TP_PROTO(struct inode *inode, nid_t nid, block_t blk_addr),
316
317 TP_ARGS(inode, nid, blk_addr)
318);
319
320DEFINE_EVENT(f2fs__inode_exit, f2fs_truncate_nodes_exit,
321
322 TP_PROTO(struct inode *inode, int ret),
323
324 TP_ARGS(inode, ret)
325);
326
327DEFINE_EVENT(f2fs__truncate_node, f2fs_truncate_node,
328
329 TP_PROTO(struct inode *inode, nid_t nid, block_t blk_addr),
330
331 TP_ARGS(inode, nid, blk_addr)
332);
333
334TRACE_EVENT(f2fs_truncate_partial_nodes,
335
336 TP_PROTO(struct inode *inode, nid_t nid[], int depth, int err),
337
338 TP_ARGS(inode, nid, depth, err),
339
340 TP_STRUCT__entry(
341 __field(dev_t, dev)
342 __field(ino_t, ino)
343 __field(nid_t, nid[3])
344 __field(int, depth)
345 __field(int, err)
346 ),
347
348 TP_fast_assign(
349 __entry->dev = inode->i_sb->s_dev;
350 __entry->ino = inode->i_ino;
351 __entry->nid[0] = nid[0];
352 __entry->nid[1] = nid[1];
353 __entry->nid[2] = nid[2];
354 __entry->depth = depth;
355 __entry->err = err;
356 ),
357
358 TP_printk("dev = (%d,%d), ino = %lu, "
359 "nid[0] = %u, nid[1] = %u, nid[2] = %u, depth = %d, err = %d",
360 show_dev_ino(__entry),
361 (unsigned int)__entry->nid[0],
362 (unsigned int)__entry->nid[1],
363 (unsigned int)__entry->nid[2],
364 __entry->depth,
365 __entry->err)
366);
367
192#endif /* _TRACE_F2FS_H */ 368#endif /* _TRACE_F2FS_H */
193 369
194 /* This part must be outside protection */ 370 /* This part must be outside protection */