xref: /linux/include/trace/events/f2fs.h (revision c31f4aa8fed048fa70e742c4bb49bb48dc489ab3)
1 /* SPDX-License-Identifier: GPL-2.0 */
2 #undef TRACE_SYSTEM
3 #define TRACE_SYSTEM f2fs
4 
5 #if !defined(_TRACE_F2FS_H) || defined(TRACE_HEADER_MULTI_READ)
6 #define _TRACE_F2FS_H
7 
8 #include <linux/tracepoint.h>
9 #include <uapi/linux/f2fs.h>
10 
11 #define show_dev(dev)		MAJOR(dev), MINOR(dev)
12 #define show_dev_ino(entry)	show_dev(entry->dev), (unsigned long)entry->ino
13 
14 TRACE_DEFINE_ENUM(NODE);
15 TRACE_DEFINE_ENUM(DATA);
16 TRACE_DEFINE_ENUM(META);
17 TRACE_DEFINE_ENUM(META_FLUSH);
18 TRACE_DEFINE_ENUM(IPU);
19 TRACE_DEFINE_ENUM(OPU);
20 TRACE_DEFINE_ENUM(HOT);
21 TRACE_DEFINE_ENUM(WARM);
22 TRACE_DEFINE_ENUM(COLD);
23 TRACE_DEFINE_ENUM(CURSEG_HOT_DATA);
24 TRACE_DEFINE_ENUM(CURSEG_WARM_DATA);
25 TRACE_DEFINE_ENUM(CURSEG_COLD_DATA);
26 TRACE_DEFINE_ENUM(CURSEG_HOT_NODE);
27 TRACE_DEFINE_ENUM(CURSEG_WARM_NODE);
28 TRACE_DEFINE_ENUM(CURSEG_COLD_NODE);
29 TRACE_DEFINE_ENUM(NO_CHECK_TYPE);
30 TRACE_DEFINE_ENUM(GC_GREEDY);
31 TRACE_DEFINE_ENUM(GC_CB);
32 TRACE_DEFINE_ENUM(FG_GC);
33 TRACE_DEFINE_ENUM(BG_GC);
34 TRACE_DEFINE_ENUM(LFS);
35 TRACE_DEFINE_ENUM(SSR);
36 TRACE_DEFINE_ENUM(__REQ_RAHEAD);
37 TRACE_DEFINE_ENUM(__REQ_SYNC);
38 TRACE_DEFINE_ENUM(__REQ_IDLE);
39 TRACE_DEFINE_ENUM(__REQ_PREFLUSH);
40 TRACE_DEFINE_ENUM(__REQ_FUA);
41 TRACE_DEFINE_ENUM(__REQ_PRIO);
42 TRACE_DEFINE_ENUM(__REQ_META);
43 TRACE_DEFINE_ENUM(CP_UMOUNT);
44 TRACE_DEFINE_ENUM(CP_FASTBOOT);
45 TRACE_DEFINE_ENUM(CP_SYNC);
46 TRACE_DEFINE_ENUM(CP_RECOVERY);
47 TRACE_DEFINE_ENUM(CP_DISCARD);
48 TRACE_DEFINE_ENUM(CP_TRIMMED);
49 TRACE_DEFINE_ENUM(CP_PAUSE);
50 TRACE_DEFINE_ENUM(CP_RESIZE);
51 TRACE_DEFINE_ENUM(EX_READ);
52 TRACE_DEFINE_ENUM(EX_BLOCK_AGE);
53 TRACE_DEFINE_ENUM(CP_PHASE_START_BLOCK_OPS);
54 TRACE_DEFINE_ENUM(CP_PHASE_FINISH_BLOCK_OPS);
55 TRACE_DEFINE_ENUM(CP_PHASE_FINISH_CHECKPOINT);
56 
57 #define show_block_type(type)						\
58 	__print_symbolic(type,						\
59 		{ NODE,		"NODE" },				\
60 		{ DATA,		"DATA" },				\
61 		{ META,		"META" },				\
62 		{ META_FLUSH,	"META_FLUSH" },				\
63 		{ IPU,		"IN-PLACE" },				\
64 		{ OPU,		"OUT-OF-PLACE" })
65 
66 #define show_block_temp(temp)						\
67 	__print_symbolic(temp,						\
68 		{ HOT,		"HOT" },				\
69 		{ WARM,		"WARM" },				\
70 		{ COLD,		"COLD" })
71 
72 #define F2FS_OP_FLAGS (REQ_RAHEAD | REQ_SYNC | REQ_META | REQ_PRIO |	\
73 			REQ_PREFLUSH | REQ_FUA)
74 #define F2FS_BIO_FLAG_MASK(t) (__force u32)((t) & F2FS_OP_FLAGS)
75 
76 #define show_bio_type(op,op_flags)	show_bio_op(op),		\
77 						show_bio_op_flags(op_flags)
78 
79 #define show_bio_op(op)		blk_op_str(op)
80 
81 #define show_bio_op_flags(flags)					\
82 	__print_flags(F2FS_BIO_FLAG_MASK(flags), "|",			\
83 		{ (__force u32)REQ_RAHEAD,	"R" },			\
84 		{ (__force u32)REQ_SYNC,	"S" },			\
85 		{ (__force u32)REQ_META,	"M" },			\
86 		{ (__force u32)REQ_PRIO,	"P" },			\
87 		{ (__force u32)REQ_PREFLUSH,	"PF" },			\
88 		{ (__force u32)REQ_FUA,		"FUA" })
89 
90 #define show_data_type(type)						\
91 	__print_symbolic(type,						\
92 		{ CURSEG_HOT_DATA, 	"Hot DATA" },			\
93 		{ CURSEG_WARM_DATA, 	"Warm DATA" },			\
94 		{ CURSEG_COLD_DATA, 	"Cold DATA" },			\
95 		{ CURSEG_HOT_NODE, 	"Hot NODE" },			\
96 		{ CURSEG_WARM_NODE, 	"Warm NODE" },			\
97 		{ CURSEG_COLD_NODE, 	"Cold NODE" },			\
98 		{ NO_CHECK_TYPE, 	"No TYPE" })
99 
100 #define show_file_type(type)						\
101 	__print_symbolic(type,						\
102 		{ 0,		"FILE" },				\
103 		{ 1,		"DIR" })
104 
105 #define show_gc_type(type)						\
106 	__print_symbolic(type,						\
107 		{ FG_GC,	"Foreground GC" },			\
108 		{ BG_GC,	"Background GC" })
109 
110 #define show_alloc_mode(type)						\
111 	__print_symbolic(type,						\
112 		{ LFS,		"LFS-mode" },				\
113 		{ SSR,		"SSR-mode" },				\
114 		{ AT_SSR,	"AT_SSR-mode" })
115 
116 #define show_victim_policy(type)					\
117 	__print_symbolic(type,						\
118 		{ GC_GREEDY,	"Greedy" },				\
119 		{ GC_CB,	"Cost-Benefit" },			\
120 		{ GC_AT,	"Age-threshold" })
121 
122 #define show_cpreason(type)						\
123 	__print_flags(type, "|",					\
124 		{ CP_UMOUNT,	"Umount" },				\
125 		{ CP_FASTBOOT,	"Fastboot" },				\
126 		{ CP_SYNC,	"Sync" },				\
127 		{ CP_RECOVERY,	"Recovery" },				\
128 		{ CP_DISCARD,	"Discard" },				\
129 		{ CP_PAUSE,	"Pause" },				\
130 		{ CP_TRIMMED,	"Trimmed" },				\
131 		{ CP_RESIZE,	"Resize" })
132 
133 #define show_fsync_cpreason(type)					\
134 	__print_symbolic(type,						\
135 		{ CP_NO_NEEDED,		"no needed" },			\
136 		{ CP_NON_REGULAR,	"non regular" },		\
137 		{ CP_COMPRESSED,	"compressed" },			\
138 		{ CP_HARDLINK,		"hardlink" },			\
139 		{ CP_SB_NEED_CP,	"sb needs cp" },		\
140 		{ CP_WRONG_PINO,	"wrong pino" },			\
141 		{ CP_NO_SPC_ROLL,	"no space roll forward" },	\
142 		{ CP_NODE_NEED_CP,	"node needs cp" },		\
143 		{ CP_FASTBOOT_MODE,	"fastboot mode" },		\
144 		{ CP_SPEC_LOG_NUM,	"log type is 2" },		\
145 		{ CP_RECOVER_DIR,	"dir needs recovery" },		\
146 		{ CP_XATTR_DIR,		"dir's xattr updated" })
147 
148 #define show_shutdown_mode(type)					\
149 	__print_symbolic(type,						\
150 		{ F2FS_GOING_DOWN_FULLSYNC,	"full sync" },		\
151 		{ F2FS_GOING_DOWN_METASYNC,	"meta sync" },		\
152 		{ F2FS_GOING_DOWN_NOSYNC,	"no sync" },		\
153 		{ F2FS_GOING_DOWN_METAFLUSH,	"meta flush" },		\
154 		{ F2FS_GOING_DOWN_NEED_FSCK,	"need fsck" })
155 
156 #define show_compress_algorithm(type)					\
157 	__print_symbolic(type,						\
158 		{ COMPRESS_LZO,		"LZO" },			\
159 		{ COMPRESS_LZ4,		"LZ4" },			\
160 		{ COMPRESS_ZSTD,	"ZSTD" },			\
161 		{ COMPRESS_LZORLE,	"LZO-RLE" })
162 
163 #define show_extent_type(type)						\
164 	__print_symbolic(type,						\
165 		{ EX_READ,	"Read" },				\
166 		{ EX_BLOCK_AGE,	"Block Age" })
167 
168 #define show_inode_type(x) \
169 	__print_symbolic(x, \
170 		{ S_IFLNK,		"symbolic" }, \
171 		{ S_IFREG,		"regular" }, \
172 		{ S_IFDIR,		"directory" }, \
173 		{ S_IFCHR,		"character" }, \
174 		{ S_IFBLK,		"block" }, \
175 		{ S_IFIFO,		"fifo" }, \
176 		{ S_IFSOCK,		"sock" })
177 
178 #define S_ALL_PERM	(S_ISUID | S_ISGID | S_ISVTX |	\
179 			S_IRWXU | S_IRWXG | S_IRWXO)
180 
181 #define show_cp_phase(phase)					\
182 	__print_symbolic(phase,						\
183 		{ CP_PHASE_START_BLOCK_OPS,		"start block_ops" },			\
184 		{ CP_PHASE_FINISH_BLOCK_OPS,	"finish block_ops" },			\
185 		{ CP_PHASE_FINISH_CHECKPOINT,	"finish checkpoint" })
186 
187 struct f2fs_sb_info;
188 struct f2fs_io_info;
189 struct extent_info;
190 struct victim_sel_policy;
191 struct f2fs_map_blocks;
192 
193 DECLARE_EVENT_CLASS(f2fs__inode,
194 
195 	TP_PROTO(struct inode *inode),
196 
197 	TP_ARGS(inode),
198 
199 	TP_STRUCT__entry(
200 		__field(dev_t,	dev)
201 		__field(ino_t,	ino)
202 		__field(ino_t,	pino)
203 		__field(umode_t, mode)
204 		__field(loff_t,	size)
205 		__field(unsigned int, nlink)
206 		__field(blkcnt_t, blocks)
207 		__field(__u8,	advise)
208 	),
209 
210 	TP_fast_assign(
211 		__entry->dev	= inode->i_sb->s_dev;
212 		__entry->ino	= inode->i_ino;
213 		__entry->pino	= F2FS_I(inode)->i_pino;
214 		__entry->mode	= inode->i_mode;
215 		__entry->nlink	= inode->i_nlink;
216 		__entry->size	= i_size_read(inode);
217 		__entry->blocks	= inode->i_blocks;
218 		__entry->advise	= F2FS_I(inode)->i_advise;
219 	),
220 
221 	TP_printk("dev = (%d,%d), ino = %lu, pino = %lu, i_mode = 0x%hx, "
222 		"i_size = %lld, i_nlink = %u, i_blocks = %llu, i_advise = 0x%x",
223 		show_dev_ino(__entry),
224 		(unsigned long)__entry->pino,
225 		__entry->mode,
226 		__entry->size,
227 		(unsigned int)__entry->nlink,
228 		(unsigned long long)__entry->blocks,
229 		(unsigned char)__entry->advise)
230 );
231 
232 DECLARE_EVENT_CLASS(f2fs__inode_exit,
233 
234 	TP_PROTO(struct inode *inode, int ret),
235 
236 	TP_ARGS(inode, ret),
237 
238 	TP_STRUCT__entry(
239 		__field(dev_t,	dev)
240 		__field(ino_t,	ino)
241 		__field(umode_t, mode)
242 		__field(int,	ret)
243 	),
244 
245 	TP_fast_assign(
246 		__entry->dev	= inode->i_sb->s_dev;
247 		__entry->ino	= inode->i_ino;
248 		__entry->mode	= inode->i_mode;
249 		__entry->ret	= ret;
250 	),
251 
252 	TP_printk("dev = (%d,%d), ino = %lu, type: %s, mode = 0%o, ret = %d",
253 		show_dev_ino(__entry),
254 		show_inode_type(__entry->mode & S_IFMT),
255 		__entry->mode & S_ALL_PERM,
256 		__entry->ret)
257 );
258 
259 DEFINE_EVENT(f2fs__inode, f2fs_sync_file_enter,
260 
261 	TP_PROTO(struct inode *inode),
262 
263 	TP_ARGS(inode)
264 );
265 
266 TRACE_EVENT(f2fs_sync_file_exit,
267 
268 	TP_PROTO(struct inode *inode, int cp_reason, int datasync, int ret),
269 
270 	TP_ARGS(inode, cp_reason, datasync, ret),
271 
272 	TP_STRUCT__entry(
273 		__field(dev_t,	dev)
274 		__field(ino_t,	ino)
275 		__field(int,	cp_reason)
276 		__field(int,	datasync)
277 		__field(int,	ret)
278 	),
279 
280 	TP_fast_assign(
281 		__entry->dev		= inode->i_sb->s_dev;
282 		__entry->ino		= inode->i_ino;
283 		__entry->cp_reason	= cp_reason;
284 		__entry->datasync	= datasync;
285 		__entry->ret		= ret;
286 	),
287 
288 	TP_printk("dev = (%d,%d), ino = %lu, cp_reason: %s, "
289 		"datasync = %d, ret = %d",
290 		show_dev_ino(__entry),
291 		show_fsync_cpreason(__entry->cp_reason),
292 		__entry->datasync,
293 		__entry->ret)
294 );
295 
296 TRACE_EVENT(f2fs_sync_fs,
297 
298 	TP_PROTO(struct super_block *sb, int wait),
299 
300 	TP_ARGS(sb, wait),
301 
302 	TP_STRUCT__entry(
303 		__field(dev_t,	dev)
304 		__field(int,	dirty)
305 		__field(int,	wait)
306 	),
307 
308 	TP_fast_assign(
309 		__entry->dev	= sb->s_dev;
310 		__entry->dirty	= is_sbi_flag_set(F2FS_SB(sb), SBI_IS_DIRTY);
311 		__entry->wait	= wait;
312 	),
313 
314 	TP_printk("dev = (%d,%d), superblock is %s, wait = %d",
315 		show_dev(__entry->dev),
316 		__entry->dirty ? "dirty" : "not dirty",
317 		__entry->wait)
318 );
319 
320 DEFINE_EVENT(f2fs__inode, f2fs_iget,
321 
322 	TP_PROTO(struct inode *inode),
323 
324 	TP_ARGS(inode)
325 );
326 
327 DEFINE_EVENT(f2fs__inode_exit, f2fs_iget_exit,
328 
329 	TP_PROTO(struct inode *inode, int ret),
330 
331 	TP_ARGS(inode, ret)
332 );
333 
334 DEFINE_EVENT(f2fs__inode, f2fs_evict_inode,
335 
336 	TP_PROTO(struct inode *inode),
337 
338 	TP_ARGS(inode)
339 );
340 
341 DEFINE_EVENT(f2fs__inode_exit, f2fs_new_inode,
342 
343 	TP_PROTO(struct inode *inode, int ret),
344 
345 	TP_ARGS(inode, ret)
346 );
347 
348 TRACE_EVENT(f2fs_unlink_enter,
349 
350 	TP_PROTO(struct inode *dir, struct dentry *dentry),
351 
352 	TP_ARGS(dir, dentry),
353 
354 	TP_STRUCT__entry(
355 		__field(dev_t,	dev)
356 		__field(ino_t,	ino)
357 		__field(loff_t,	size)
358 		__field(blkcnt_t, blocks)
359 		__string(name,  dentry->d_name.name)
360 	),
361 
362 	TP_fast_assign(
363 		__entry->dev	= dir->i_sb->s_dev;
364 		__entry->ino	= dir->i_ino;
365 		__entry->size	= i_size_read(dir);
366 		__entry->blocks	= dir->i_blocks;
367 		__assign_str(name);
368 	),
369 
370 	TP_printk("dev = (%d,%d), dir ino = %lu, i_size = %lld, "
371 		"i_blocks = %llu, name = %s",
372 		show_dev_ino(__entry),
373 		__entry->size,
374 		(unsigned long long)__entry->blocks,
375 		__get_str(name))
376 );
377 
378 DEFINE_EVENT(f2fs__inode_exit, f2fs_unlink_exit,
379 
380 	TP_PROTO(struct inode *inode, int ret),
381 
382 	TP_ARGS(inode, ret)
383 );
384 
385 DEFINE_EVENT(f2fs__inode_exit, f2fs_drop_inode,
386 
387 	TP_PROTO(struct inode *inode, int ret),
388 
389 	TP_ARGS(inode, ret)
390 );
391 
392 DEFINE_EVENT(f2fs__inode, f2fs_truncate,
393 
394 	TP_PROTO(struct inode *inode),
395 
396 	TP_ARGS(inode)
397 );
398 
399 TRACE_EVENT(f2fs_truncate_data_blocks_range,
400 
401 	TP_PROTO(struct inode *inode, nid_t nid, unsigned int ofs, int free),
402 
403 	TP_ARGS(inode, nid,  ofs, free),
404 
405 	TP_STRUCT__entry(
406 		__field(dev_t,	dev)
407 		__field(ino_t,	ino)
408 		__field(nid_t,	nid)
409 		__field(unsigned int,	ofs)
410 		__field(int,	free)
411 	),
412 
413 	TP_fast_assign(
414 		__entry->dev	= inode->i_sb->s_dev;
415 		__entry->ino	= inode->i_ino;
416 		__entry->nid	= nid;
417 		__entry->ofs	= ofs;
418 		__entry->free	= free;
419 	),
420 
421 	TP_printk("dev = (%d,%d), ino = %lu, nid = %u, offset = %u, freed = %d",
422 		show_dev_ino(__entry),
423 		(unsigned int)__entry->nid,
424 		__entry->ofs,
425 		__entry->free)
426 );
427 
428 DECLARE_EVENT_CLASS(f2fs__truncate_op,
429 
430 	TP_PROTO(struct inode *inode, u64 from),
431 
432 	TP_ARGS(inode, from),
433 
434 	TP_STRUCT__entry(
435 		__field(dev_t,	dev)
436 		__field(ino_t,	ino)
437 		__field(loff_t,	size)
438 		__field(blkcnt_t, blocks)
439 		__field(u64,	from)
440 	),
441 
442 	TP_fast_assign(
443 		__entry->dev	= inode->i_sb->s_dev;
444 		__entry->ino	= inode->i_ino;
445 		__entry->size	= i_size_read(inode);
446 		__entry->blocks	= inode->i_blocks;
447 		__entry->from	= from;
448 	),
449 
450 	TP_printk("dev = (%d,%d), ino = %lu, i_size = %lld, i_blocks = %llu, "
451 		"start file offset = %llu",
452 		show_dev_ino(__entry),
453 		__entry->size,
454 		(unsigned long long)__entry->blocks,
455 		(unsigned long long)__entry->from)
456 );
457 
458 DEFINE_EVENT(f2fs__truncate_op, f2fs_truncate_blocks_enter,
459 
460 	TP_PROTO(struct inode *inode, u64 from),
461 
462 	TP_ARGS(inode, from)
463 );
464 
465 DEFINE_EVENT(f2fs__inode_exit, f2fs_truncate_blocks_exit,
466 
467 	TP_PROTO(struct inode *inode, int ret),
468 
469 	TP_ARGS(inode, ret)
470 );
471 
472 DEFINE_EVENT(f2fs__truncate_op, f2fs_truncate_inode_blocks_enter,
473 
474 	TP_PROTO(struct inode *inode, u64 from),
475 
476 	TP_ARGS(inode, from)
477 );
478 
479 DEFINE_EVENT(f2fs__inode_exit, f2fs_truncate_inode_blocks_exit,
480 
481 	TP_PROTO(struct inode *inode, int ret),
482 
483 	TP_ARGS(inode, ret)
484 );
485 
486 DECLARE_EVENT_CLASS(f2fs__truncate_node,
487 
488 	TP_PROTO(struct inode *inode, nid_t nid, block_t blk_addr),
489 
490 	TP_ARGS(inode, nid, blk_addr),
491 
492 	TP_STRUCT__entry(
493 		__field(dev_t,	dev)
494 		__field(ino_t,	ino)
495 		__field(nid_t,	nid)
496 		__field(block_t,	blk_addr)
497 	),
498 
499 	TP_fast_assign(
500 		__entry->dev		= inode->i_sb->s_dev;
501 		__entry->ino		= inode->i_ino;
502 		__entry->nid		= nid;
503 		__entry->blk_addr	= blk_addr;
504 	),
505 
506 	TP_printk("dev = (%d,%d), ino = %lu, nid = %u, block_address = 0x%llx",
507 		show_dev_ino(__entry),
508 		(unsigned int)__entry->nid,
509 		(unsigned long long)__entry->blk_addr)
510 );
511 
512 DEFINE_EVENT(f2fs__truncate_node, f2fs_truncate_nodes_enter,
513 
514 	TP_PROTO(struct inode *inode, nid_t nid, block_t blk_addr),
515 
516 	TP_ARGS(inode, nid, blk_addr)
517 );
518 
519 DEFINE_EVENT(f2fs__inode_exit, f2fs_truncate_nodes_exit,
520 
521 	TP_PROTO(struct inode *inode, int ret),
522 
523 	TP_ARGS(inode, ret)
524 );
525 
526 DEFINE_EVENT(f2fs__truncate_node, f2fs_truncate_node,
527 
528 	TP_PROTO(struct inode *inode, nid_t nid, block_t blk_addr),
529 
530 	TP_ARGS(inode, nid, blk_addr)
531 );
532 
533 TRACE_EVENT(f2fs_truncate_partial_nodes,
534 
535 	TP_PROTO(struct inode *inode, nid_t *nid, int depth, int err),
536 
537 	TP_ARGS(inode, nid, depth, err),
538 
539 	TP_STRUCT__entry(
540 		__field(dev_t,	dev)
541 		__field(ino_t,	ino)
542 		__array(nid_t,	nid, 3)
543 		__field(int,	depth)
544 		__field(int,	err)
545 	),
546 
547 	TP_fast_assign(
548 		__entry->dev	= inode->i_sb->s_dev;
549 		__entry->ino	= inode->i_ino;
550 		__entry->nid[0]	= nid[0];
551 		__entry->nid[1]	= nid[1];
552 		__entry->nid[2]	= nid[2];
553 		__entry->depth	= depth;
554 		__entry->err	= err;
555 	),
556 
557 	TP_printk("dev = (%d,%d), ino = %lu, "
558 		"nid[0] = %u, nid[1] = %u, nid[2] = %u, depth = %d, err = %d",
559 		show_dev_ino(__entry),
560 		(unsigned int)__entry->nid[0],
561 		(unsigned int)__entry->nid[1],
562 		(unsigned int)__entry->nid[2],
563 		__entry->depth,
564 		__entry->err)
565 );
566 
567 TRACE_EVENT(f2fs_file_write_iter,
568 
569 	TP_PROTO(struct inode *inode, loff_t offset, size_t length,
570 		 ssize_t ret),
571 
572 	TP_ARGS(inode, offset, length, ret),
573 
574 	TP_STRUCT__entry(
575 		__field(dev_t,	dev)
576 		__field(ino_t,	ino)
577 		__field(loff_t, offset)
578 		__field(size_t, length)
579 		__field(ssize_t, ret)
580 	),
581 
582 	TP_fast_assign(
583 		__entry->dev	= inode->i_sb->s_dev;
584 		__entry->ino	= inode->i_ino;
585 		__entry->offset	= offset;
586 		__entry->length	= length;
587 		__entry->ret	= ret;
588 	),
589 
590 	TP_printk("dev = (%d,%d), ino = %lu, "
591 		"offset = %lld, length = %zu, written(err) = %zd",
592 		show_dev_ino(__entry),
593 		__entry->offset,
594 		__entry->length,
595 		__entry->ret)
596 );
597 
598 TRACE_EVENT(f2fs_fadvise,
599 
600 	TP_PROTO(struct inode *inode, loff_t offset, loff_t len, int advice),
601 
602 	TP_ARGS(inode, offset, len, advice),
603 
604 	TP_STRUCT__entry(
605 		__field(dev_t,	dev)
606 		__field(ino_t,	ino)
607 		__field(loff_t, size)
608 		__field(loff_t,	offset)
609 		__field(loff_t,	len)
610 		__field(int,	advice)
611 	),
612 
613 	TP_fast_assign(
614 		__entry->dev	= inode->i_sb->s_dev;
615 		__entry->ino	= inode->i_ino;
616 		__entry->size	= i_size_read(inode);
617 		__entry->offset	= offset;
618 		__entry->len	= len;
619 		__entry->advice	= advice;
620 	),
621 
622 	TP_printk("dev = (%d,%d), ino = %lu, i_size = %lld offset:%llu, len:%llu, advise:%d",
623 		show_dev_ino(__entry),
624 		(unsigned long long)__entry->size,
625 		__entry->offset,
626 		__entry->len,
627 		__entry->advice)
628 );
629 
630 TRACE_EVENT(f2fs_map_blocks,
631 	TP_PROTO(struct inode *inode, struct f2fs_map_blocks *map, int flag,
632 		 int ret),
633 
634 	TP_ARGS(inode, map, flag, ret),
635 
636 	TP_STRUCT__entry(
637 		__field(dev_t,	dev)
638 		__field(ino_t,	ino)
639 		__field(block_t,	m_lblk)
640 		__field(block_t,	m_pblk)
641 		__field(unsigned int,	m_len)
642 		__field(unsigned int,	m_flags)
643 		__field(int,	m_seg_type)
644 		__field(bool,	m_may_create)
645 		__field(bool,	m_multidev_dio)
646 		__field(int,	flag)
647 		__field(int,	ret)
648 	),
649 
650 	TP_fast_assign(
651 		__entry->dev		= map->m_bdev->bd_dev;
652 		__entry->ino		= inode->i_ino;
653 		__entry->m_lblk		= map->m_lblk;
654 		__entry->m_pblk		= map->m_pblk;
655 		__entry->m_len		= map->m_len;
656 		__entry->m_flags	= map->m_flags;
657 		__entry->m_seg_type	= map->m_seg_type;
658 		__entry->m_may_create	= map->m_may_create;
659 		__entry->m_multidev_dio	= map->m_multidev_dio;
660 		__entry->flag		= flag;
661 		__entry->ret		= ret;
662 	),
663 
664 	TP_printk("dev = (%d,%d), ino = %lu, file offset = %llu, "
665 		"start blkaddr = 0x%llx, len = 0x%llx, flags = %u, "
666 		"seg_type = %d, may_create = %d, multidevice = %d, "
667 		"flag = %d, err = %d",
668 		show_dev_ino(__entry),
669 		(unsigned long long)__entry->m_lblk,
670 		(unsigned long long)__entry->m_pblk,
671 		(unsigned long long)__entry->m_len,
672 		__entry->m_flags,
673 		__entry->m_seg_type,
674 		__entry->m_may_create,
675 		__entry->m_multidev_dio,
676 		__entry->flag,
677 		__entry->ret)
678 );
679 
680 TRACE_EVENT(f2fs_background_gc,
681 
682 	TP_PROTO(struct super_block *sb, unsigned int wait_ms,
683 			unsigned int prefree, unsigned int free),
684 
685 	TP_ARGS(sb, wait_ms, prefree, free),
686 
687 	TP_STRUCT__entry(
688 		__field(dev_t,	dev)
689 		__field(unsigned int,	wait_ms)
690 		__field(unsigned int,	prefree)
691 		__field(unsigned int,	free)
692 	),
693 
694 	TP_fast_assign(
695 		__entry->dev		= sb->s_dev;
696 		__entry->wait_ms	= wait_ms;
697 		__entry->prefree	= prefree;
698 		__entry->free		= free;
699 	),
700 
701 	TP_printk("dev = (%d,%d), wait_ms = %u, prefree = %u, free = %u",
702 		show_dev(__entry->dev),
703 		__entry->wait_ms,
704 		__entry->prefree,
705 		__entry->free)
706 );
707 
708 TRACE_EVENT(f2fs_gc_begin,
709 
710 	TP_PROTO(struct super_block *sb, int gc_type, bool no_bg_gc,
711 			unsigned int nr_free_secs,
712 			long long dirty_nodes, long long dirty_dents,
713 			long long dirty_imeta, unsigned int free_sec,
714 			unsigned int free_seg, int reserved_seg,
715 			unsigned int prefree_seg),
716 
717 	TP_ARGS(sb, gc_type, no_bg_gc, nr_free_secs, dirty_nodes,
718 		dirty_dents, dirty_imeta,
719 		free_sec, free_seg, reserved_seg, prefree_seg),
720 
721 	TP_STRUCT__entry(
722 		__field(dev_t,		dev)
723 		__field(int,		gc_type)
724 		__field(bool,		no_bg_gc)
725 		__field(unsigned int,	nr_free_secs)
726 		__field(long long,	dirty_nodes)
727 		__field(long long,	dirty_dents)
728 		__field(long long,	dirty_imeta)
729 		__field(unsigned int,	free_sec)
730 		__field(unsigned int,	free_seg)
731 		__field(int,		reserved_seg)
732 		__field(unsigned int,	prefree_seg)
733 	),
734 
735 	TP_fast_assign(
736 		__entry->dev		= sb->s_dev;
737 		__entry->gc_type	= gc_type;
738 		__entry->no_bg_gc	= no_bg_gc;
739 		__entry->nr_free_secs	= nr_free_secs;
740 		__entry->dirty_nodes	= dirty_nodes;
741 		__entry->dirty_dents	= dirty_dents;
742 		__entry->dirty_imeta	= dirty_imeta;
743 		__entry->free_sec	= free_sec;
744 		__entry->free_seg	= free_seg;
745 		__entry->reserved_seg	= reserved_seg;
746 		__entry->prefree_seg	= prefree_seg;
747 	),
748 
749 	TP_printk("dev = (%d,%d), gc_type = %s, no_background_GC = %d, nr_free_secs = %u, "
750 		"nodes = %lld, dents = %lld, imeta = %lld, free_sec:%u, free_seg:%u, "
751 		"rsv_seg:%d, prefree_seg:%u",
752 		show_dev(__entry->dev),
753 		show_gc_type(__entry->gc_type),
754 		(__entry->gc_type == BG_GC) ? __entry->no_bg_gc : -1,
755 		__entry->nr_free_secs,
756 		__entry->dirty_nodes,
757 		__entry->dirty_dents,
758 		__entry->dirty_imeta,
759 		__entry->free_sec,
760 		__entry->free_seg,
761 		__entry->reserved_seg,
762 		__entry->prefree_seg)
763 );
764 
765 TRACE_EVENT(f2fs_gc_end,
766 
767 	TP_PROTO(struct super_block *sb, int ret, int seg_freed,
768 			int sec_freed, long long dirty_nodes,
769 			long long dirty_dents, long long dirty_imeta,
770 			unsigned int free_sec, unsigned int free_seg,
771 			int reserved_seg, unsigned int prefree_seg),
772 
773 	TP_ARGS(sb, ret, seg_freed, sec_freed, dirty_nodes, dirty_dents,
774 		dirty_imeta, free_sec, free_seg, reserved_seg, prefree_seg),
775 
776 	TP_STRUCT__entry(
777 		__field(dev_t,		dev)
778 		__field(int,		ret)
779 		__field(int,		seg_freed)
780 		__field(int,		sec_freed)
781 		__field(long long,	dirty_nodes)
782 		__field(long long,	dirty_dents)
783 		__field(long long,	dirty_imeta)
784 		__field(unsigned int,	free_sec)
785 		__field(unsigned int,	free_seg)
786 		__field(int,		reserved_seg)
787 		__field(unsigned int,	prefree_seg)
788 	),
789 
790 	TP_fast_assign(
791 		__entry->dev		= sb->s_dev;
792 		__entry->ret		= ret;
793 		__entry->seg_freed	= seg_freed;
794 		__entry->sec_freed	= sec_freed;
795 		__entry->dirty_nodes	= dirty_nodes;
796 		__entry->dirty_dents	= dirty_dents;
797 		__entry->dirty_imeta	= dirty_imeta;
798 		__entry->free_sec	= free_sec;
799 		__entry->free_seg	= free_seg;
800 		__entry->reserved_seg	= reserved_seg;
801 		__entry->prefree_seg	= prefree_seg;
802 	),
803 
804 	TP_printk("dev = (%d,%d), ret = %d, seg_freed = %d, sec_freed = %d, "
805 		"nodes = %lld, dents = %lld, imeta = %lld, free_sec:%u, "
806 		"free_seg:%u, rsv_seg:%d, prefree_seg:%u",
807 		show_dev(__entry->dev),
808 		__entry->ret,
809 		__entry->seg_freed,
810 		__entry->sec_freed,
811 		__entry->dirty_nodes,
812 		__entry->dirty_dents,
813 		__entry->dirty_imeta,
814 		__entry->free_sec,
815 		__entry->free_seg,
816 		__entry->reserved_seg,
817 		__entry->prefree_seg)
818 );
819 
820 TRACE_EVENT(f2fs_get_victim,
821 
822 	TP_PROTO(struct super_block *sb, int type, int gc_type,
823 			struct victim_sel_policy *p, unsigned int pre_victim,
824 			unsigned int prefree, unsigned int free),
825 
826 	TP_ARGS(sb, type, gc_type, p, pre_victim, prefree, free),
827 
828 	TP_STRUCT__entry(
829 		__field(dev_t,	dev)
830 		__field(int,	type)
831 		__field(int,	gc_type)
832 		__field(int,	alloc_mode)
833 		__field(int,	gc_mode)
834 		__field(unsigned int,	victim)
835 		__field(unsigned int,	cost)
836 		__field(unsigned int,	ofs_unit)
837 		__field(unsigned int,	pre_victim)
838 		__field(unsigned int,	prefree)
839 		__field(unsigned int,	free)
840 	),
841 
842 	TP_fast_assign(
843 		__entry->dev		= sb->s_dev;
844 		__entry->type		= type;
845 		__entry->gc_type	= gc_type;
846 		__entry->alloc_mode	= p->alloc_mode;
847 		__entry->gc_mode	= p->gc_mode;
848 		__entry->victim		= p->min_segno;
849 		__entry->cost		= p->min_cost;
850 		__entry->ofs_unit	= p->ofs_unit;
851 		__entry->pre_victim	= pre_victim;
852 		__entry->prefree	= prefree;
853 		__entry->free		= free;
854 	),
855 
856 	TP_printk("dev = (%d,%d), type = %s, policy = (%s, %s, %s), "
857 		"victim = %u, cost = %u, ofs_unit = %u, "
858 		"pre_victim_secno = %d, prefree = %u, free = %u",
859 		show_dev(__entry->dev),
860 		show_data_type(__entry->type),
861 		show_gc_type(__entry->gc_type),
862 		show_alloc_mode(__entry->alloc_mode),
863 		show_victim_policy(__entry->gc_mode),
864 		__entry->victim,
865 		__entry->cost,
866 		__entry->ofs_unit,
867 		(int)__entry->pre_victim,
868 		__entry->prefree,
869 		__entry->free)
870 );
871 
872 TRACE_EVENT(f2fs_lookup_start,
873 
874 	TP_PROTO(struct inode *dir, struct dentry *dentry, unsigned int flags),
875 
876 	TP_ARGS(dir, dentry, flags),
877 
878 	TP_STRUCT__entry(
879 		__field(dev_t,	dev)
880 		__field(ino_t,	ino)
881 		__string(name,	dentry->d_name.name)
882 		__field(unsigned int, flags)
883 	),
884 
885 	TP_fast_assign(
886 		__entry->dev	= dir->i_sb->s_dev;
887 		__entry->ino	= dir->i_ino;
888 		__assign_str(name);
889 		__entry->flags	= flags;
890 	),
891 
892 	TP_printk("dev = (%d,%d), pino = %lu, name:%s, flags:%u",
893 		show_dev_ino(__entry),
894 		__get_str(name),
895 		__entry->flags)
896 );
897 
898 TRACE_EVENT(f2fs_lookup_end,
899 
900 	TP_PROTO(struct inode *dir, struct dentry *dentry, nid_t ino,
901 		int err),
902 
903 	TP_ARGS(dir, dentry, ino, err),
904 
905 	TP_STRUCT__entry(
906 		__field(dev_t,	dev)
907 		__field(ino_t,	ino)
908 		__string(name,	dentry->d_name.name)
909 		__field(nid_t,	cino)
910 		__field(int,	err)
911 	),
912 
913 	TP_fast_assign(
914 		__entry->dev	= dir->i_sb->s_dev;
915 		__entry->ino	= dir->i_ino;
916 		__assign_str(name);
917 		__entry->cino	= ino;
918 		__entry->err	= err;
919 	),
920 
921 	TP_printk("dev = (%d,%d), pino = %lu, name:%s, ino:%u, err:%d",
922 		show_dev_ino(__entry),
923 		__get_str(name),
924 		__entry->cino,
925 		__entry->err)
926 );
927 
928 TRACE_EVENT(f2fs_rename_start,
929 
930 	TP_PROTO(struct inode *old_dir, struct dentry *old_dentry,
931 			struct inode *new_dir, struct dentry *new_dentry,
932 			unsigned int flags),
933 
934 	TP_ARGS(old_dir, old_dentry, new_dir, new_dentry, flags),
935 
936 	TP_STRUCT__entry(
937 		__field(dev_t,		dev)
938 		__field(ino_t,		ino)
939 		__string(old_name,	old_dentry->d_name.name)
940 		__field(ino_t,		new_pino)
941 		__string(new_name,	new_dentry->d_name.name)
942 		__field(unsigned int,	flags)
943 	),
944 
945 	TP_fast_assign(
946 		__entry->dev		= old_dir->i_sb->s_dev;
947 		__entry->ino		= old_dir->i_ino;
948 		__assign_str(old_name);
949 		__entry->new_pino	= new_dir->i_ino;
950 		__assign_str(new_name);
951 		__entry->flags		= flags;
952 	),
953 
954 	TP_printk("dev = (%d,%d), old_dir = %lu, old_name: %s, "
955 		"new_dir = %lu, new_name: %s, flags = %u",
956 		show_dev_ino(__entry),
957 		__get_str(old_name),
958 		__entry->new_pino,
959 		__get_str(new_name),
960 		__entry->flags)
961 );
962 
963 TRACE_EVENT(f2fs_rename_end,
964 
965 	TP_PROTO(struct dentry *old_dentry, struct dentry *new_dentry,
966 			unsigned int flags, int ret),
967 
968 	TP_ARGS(old_dentry, new_dentry, flags, ret),
969 
970 	TP_STRUCT__entry(
971 		__field(dev_t,		dev)
972 		__field(ino_t,		ino)
973 		__string(old_name,	old_dentry->d_name.name)
974 		__string(new_name,	new_dentry->d_name.name)
975 		__field(unsigned int,	flags)
976 		__field(int,		ret)
977 	),
978 
979 	TP_fast_assign(
980 		__entry->dev		= old_dentry->d_sb->s_dev;
981 		__entry->ino		= old_dentry->d_inode->i_ino;
982 		__assign_str(old_name);
983 		__assign_str(new_name);
984 		__entry->flags		= flags;
985 		__entry->ret		= ret;
986 	),
987 
988 	TP_printk("dev = (%d,%d), ino = %lu, old_name: %s, "
989 		"new_name: %s, flags = %u, ret = %d",
990 		show_dev_ino(__entry),
991 		__get_str(old_name),
992 		__get_str(new_name),
993 		__entry->flags,
994 		__entry->ret)
995 );
996 
997 TRACE_EVENT(f2fs_readdir,
998 
999 	TP_PROTO(struct inode *dir, loff_t start_pos, loff_t end_pos, int err),
1000 
1001 	TP_ARGS(dir, start_pos, end_pos, err),
1002 
1003 	TP_STRUCT__entry(
1004 		__field(dev_t,	dev)
1005 		__field(ino_t,	ino)
1006 		__field(loff_t,	start)
1007 		__field(loff_t,	end)
1008 		__field(int,	err)
1009 	),
1010 
1011 	TP_fast_assign(
1012 		__entry->dev	= dir->i_sb->s_dev;
1013 		__entry->ino	= dir->i_ino;
1014 		__entry->start	= start_pos;
1015 		__entry->end	= end_pos;
1016 		__entry->err	= err;
1017 	),
1018 
1019 	TP_printk("dev = (%d,%d), ino = %lu, start_pos:%llu, end_pos:%llu, err:%d",
1020 		show_dev_ino(__entry),
1021 		__entry->start,
1022 		__entry->end,
1023 		__entry->err)
1024 );
1025 
1026 TRACE_EVENT(f2fs_fallocate,
1027 
1028 	TP_PROTO(struct inode *inode, int mode,
1029 				loff_t offset, loff_t len, int ret),
1030 
1031 	TP_ARGS(inode, mode, offset, len, ret),
1032 
1033 	TP_STRUCT__entry(
1034 		__field(dev_t,	dev)
1035 		__field(ino_t,	ino)
1036 		__field(int,	mode)
1037 		__field(loff_t,	offset)
1038 		__field(loff_t,	len)
1039 		__field(loff_t, size)
1040 		__field(blkcnt_t, blocks)
1041 		__field(int,	ret)
1042 	),
1043 
1044 	TP_fast_assign(
1045 		__entry->dev	= inode->i_sb->s_dev;
1046 		__entry->ino	= inode->i_ino;
1047 		__entry->mode	= mode;
1048 		__entry->offset	= offset;
1049 		__entry->len	= len;
1050 		__entry->size	= i_size_read(inode);
1051 		__entry->blocks = inode->i_blocks;
1052 		__entry->ret	= ret;
1053 	),
1054 
1055 	TP_printk("dev = (%d,%d), ino = %lu, mode = %x, offset = %lld, "
1056 		"len = %lld,  i_size = %lld, i_blocks = %llu, ret = %d",
1057 		show_dev_ino(__entry),
1058 		__entry->mode,
1059 		(unsigned long long)__entry->offset,
1060 		(unsigned long long)__entry->len,
1061 		(unsigned long long)__entry->size,
1062 		(unsigned long long)__entry->blocks,
1063 		__entry->ret)
1064 );
1065 
1066 TRACE_EVENT(f2fs_direct_IO_enter,
1067 
1068 	TP_PROTO(struct inode *inode, struct kiocb *iocb, long len, int rw),
1069 
1070 	TP_ARGS(inode, iocb, len, rw),
1071 
1072 	TP_STRUCT__entry(
1073 		__field(dev_t,	dev)
1074 		__field(ino_t,	ino)
1075 		__field(loff_t,	ki_pos)
1076 		__field(int,	ki_flags)
1077 		__field(u16,	ki_ioprio)
1078 		__field(unsigned long,	len)
1079 		__field(int,	rw)
1080 	),
1081 
1082 	TP_fast_assign(
1083 		__entry->dev		= inode->i_sb->s_dev;
1084 		__entry->ino		= inode->i_ino;
1085 		__entry->ki_pos		= iocb->ki_pos;
1086 		__entry->ki_flags	= iocb->ki_flags;
1087 		__entry->ki_ioprio	= iocb->ki_ioprio;
1088 		__entry->len		= len;
1089 		__entry->rw		= rw;
1090 	),
1091 
1092 	TP_printk("dev = (%d,%d), ino = %lu pos = %lld len = %lu ki_flags = %x ki_ioprio = %x rw = %d",
1093 		show_dev_ino(__entry),
1094 		__entry->ki_pos,
1095 		__entry->len,
1096 		__entry->ki_flags,
1097 		__entry->ki_ioprio,
1098 		__entry->rw)
1099 );
1100 
1101 TRACE_EVENT(f2fs_direct_IO_exit,
1102 
1103 	TP_PROTO(struct inode *inode, loff_t offset, unsigned long len,
1104 		 int rw, int ret),
1105 
1106 	TP_ARGS(inode, offset, len, rw, ret),
1107 
1108 	TP_STRUCT__entry(
1109 		__field(dev_t,	dev)
1110 		__field(ino_t,	ino)
1111 		__field(loff_t,	pos)
1112 		__field(unsigned long,	len)
1113 		__field(int,	rw)
1114 		__field(int,	ret)
1115 	),
1116 
1117 	TP_fast_assign(
1118 		__entry->dev	= inode->i_sb->s_dev;
1119 		__entry->ino	= inode->i_ino;
1120 		__entry->pos	= offset;
1121 		__entry->len	= len;
1122 		__entry->rw	= rw;
1123 		__entry->ret	= ret;
1124 	),
1125 
1126 	TP_printk("dev = (%d,%d), ino = %lu pos = %lld len = %lu "
1127 		"rw = %d ret = %d",
1128 		show_dev_ino(__entry),
1129 		__entry->pos,
1130 		__entry->len,
1131 		__entry->rw,
1132 		__entry->ret)
1133 );
1134 
1135 TRACE_EVENT(f2fs_reserve_new_blocks,
1136 
1137 	TP_PROTO(struct inode *inode, nid_t nid, unsigned int ofs_in_node,
1138 							blkcnt_t count),
1139 
1140 	TP_ARGS(inode, nid, ofs_in_node, count),
1141 
1142 	TP_STRUCT__entry(
1143 		__field(dev_t,	dev)
1144 		__field(nid_t, nid)
1145 		__field(unsigned int, ofs_in_node)
1146 		__field(blkcnt_t, count)
1147 	),
1148 
1149 	TP_fast_assign(
1150 		__entry->dev	= inode->i_sb->s_dev;
1151 		__entry->nid	= nid;
1152 		__entry->ofs_in_node = ofs_in_node;
1153 		__entry->count = count;
1154 	),
1155 
1156 	TP_printk("dev = (%d,%d), nid = %u, ofs_in_node = %u, count = %llu",
1157 		show_dev(__entry->dev),
1158 		(unsigned int)__entry->nid,
1159 		__entry->ofs_in_node,
1160 		(unsigned long long)__entry->count)
1161 );
1162 
1163 DECLARE_EVENT_CLASS(f2fs__submit_folio_bio,
1164 
1165 	TP_PROTO(struct folio *folio, struct f2fs_io_info *fio),
1166 
1167 	TP_ARGS(folio, fio),
1168 
1169 	TP_STRUCT__entry(
1170 		__field(dev_t, dev)
1171 		__field(ino_t, ino)
1172 		__field(pgoff_t, index)
1173 		__field(block_t, old_blkaddr)
1174 		__field(block_t, new_blkaddr)
1175 		__field(enum req_op, op)
1176 		__field(blk_opf_t, op_flags)
1177 		__field(int, temp)
1178 		__field(int, type)
1179 	),
1180 
1181 	TP_fast_assign(
1182 		__entry->dev		= folio->mapping->host->i_sb->s_dev;
1183 		__entry->ino		= folio->mapping->host->i_ino;
1184 		__entry->index		= folio->index;
1185 		__entry->old_blkaddr	= fio->old_blkaddr;
1186 		__entry->new_blkaddr	= fio->new_blkaddr;
1187 		__entry->op		= fio->op;
1188 		__entry->op_flags	= fio->op_flags;
1189 		__entry->temp		= fio->temp;
1190 		__entry->type		= fio->type;
1191 	),
1192 
1193 	TP_printk("dev = (%d,%d), ino = %lu, folio_index = 0x%lx, "
1194 		"oldaddr = 0x%llx, newaddr = 0x%llx, rw = %s(%s), type = %s_%s",
1195 		show_dev_ino(__entry),
1196 		(unsigned long)__entry->index,
1197 		(unsigned long long)__entry->old_blkaddr,
1198 		(unsigned long long)__entry->new_blkaddr,
1199 		show_bio_type(__entry->op, __entry->op_flags),
1200 		show_block_temp(__entry->temp),
1201 		show_block_type(__entry->type))
1202 );
1203 
1204 DEFINE_EVENT_CONDITION(f2fs__submit_folio_bio, f2fs_submit_folio_bio,
1205 
1206 	TP_PROTO(struct folio *folio, struct f2fs_io_info *fio),
1207 
1208 	TP_ARGS(folio, fio),
1209 
1210 	TP_CONDITION(folio->mapping)
1211 );
1212 
1213 DEFINE_EVENT_CONDITION(f2fs__submit_folio_bio, f2fs_submit_folio_write,
1214 
1215 	TP_PROTO(struct folio *folio, struct f2fs_io_info *fio),
1216 
1217 	TP_ARGS(folio, fio),
1218 
1219 	TP_CONDITION(folio->mapping)
1220 );
1221 
1222 DECLARE_EVENT_CLASS(f2fs__bio,
1223 
1224 	TP_PROTO(struct super_block *sb, int type, struct bio *bio),
1225 
1226 	TP_ARGS(sb, type, bio),
1227 
1228 	TP_STRUCT__entry(
1229 		__field(dev_t,	dev)
1230 		__field(dev_t,	target)
1231 		__field(enum req_op,	op)
1232 		__field(blk_opf_t,	op_flags)
1233 		__field(int,	type)
1234 		__field(sector_t,	sector)
1235 		__field(unsigned int,	size)
1236 	),
1237 
1238 	TP_fast_assign(
1239 		__entry->dev		= sb->s_dev;
1240 		__entry->target		= bio_dev(bio);
1241 		__entry->op		= bio_op(bio);
1242 		__entry->op_flags	= bio->bi_opf;
1243 		__entry->type		= type;
1244 		__entry->sector		= bio->bi_iter.bi_sector;
1245 		__entry->size		= bio->bi_iter.bi_size;
1246 	),
1247 
1248 	TP_printk("dev = (%d,%d)/(%d,%d), rw = %s(%s), %s, sector = %lld, size = %u",
1249 		show_dev(__entry->target),
1250 		show_dev(__entry->dev),
1251 		show_bio_type(__entry->op, __entry->op_flags),
1252 		show_block_type(__entry->type),
1253 		(unsigned long long)__entry->sector,
1254 		__entry->size)
1255 );
1256 
1257 DEFINE_EVENT_CONDITION(f2fs__bio, f2fs_prepare_write_bio,
1258 
1259 	TP_PROTO(struct super_block *sb, int type, struct bio *bio),
1260 
1261 	TP_ARGS(sb, type, bio),
1262 
1263 	TP_CONDITION(bio)
1264 );
1265 
1266 DEFINE_EVENT_CONDITION(f2fs__bio, f2fs_prepare_read_bio,
1267 
1268 	TP_PROTO(struct super_block *sb, int type, struct bio *bio),
1269 
1270 	TP_ARGS(sb, type, bio),
1271 
1272 	TP_CONDITION(bio)
1273 );
1274 
1275 DEFINE_EVENT_CONDITION(f2fs__bio, f2fs_submit_read_bio,
1276 
1277 	TP_PROTO(struct super_block *sb, int type, struct bio *bio),
1278 
1279 	TP_ARGS(sb, type, bio),
1280 
1281 	TP_CONDITION(bio)
1282 );
1283 
1284 DEFINE_EVENT_CONDITION(f2fs__bio, f2fs_submit_write_bio,
1285 
1286 	TP_PROTO(struct super_block *sb, int type, struct bio *bio),
1287 
1288 	TP_ARGS(sb, type, bio),
1289 
1290 	TP_CONDITION(bio)
1291 );
1292 
1293 TRACE_EVENT(f2fs_write_begin,
1294 
1295 	TP_PROTO(struct inode *inode, loff_t pos, unsigned int len),
1296 
1297 	TP_ARGS(inode, pos, len),
1298 
1299 	TP_STRUCT__entry(
1300 		__field(dev_t,	dev)
1301 		__field(ino_t,	ino)
1302 		__field(loff_t,	pos)
1303 		__field(unsigned int, len)
1304 	),
1305 
1306 	TP_fast_assign(
1307 		__entry->dev	= inode->i_sb->s_dev;
1308 		__entry->ino	= inode->i_ino;
1309 		__entry->pos	= pos;
1310 		__entry->len	= len;
1311 	),
1312 
1313 	TP_printk("dev = (%d,%d), ino = %lu, pos = %llu, len = %u",
1314 		show_dev_ino(__entry),
1315 		(unsigned long long)__entry->pos,
1316 		__entry->len)
1317 );
1318 
1319 TRACE_EVENT(f2fs_write_end,
1320 
1321 	TP_PROTO(struct inode *inode, loff_t pos, unsigned int len,
1322 				unsigned int copied),
1323 
1324 	TP_ARGS(inode, pos, len, copied),
1325 
1326 	TP_STRUCT__entry(
1327 		__field(dev_t,	dev)
1328 		__field(ino_t,	ino)
1329 		__field(loff_t,	pos)
1330 		__field(unsigned int, len)
1331 		__field(unsigned int, copied)
1332 	),
1333 
1334 	TP_fast_assign(
1335 		__entry->dev	= inode->i_sb->s_dev;
1336 		__entry->ino	= inode->i_ino;
1337 		__entry->pos	= pos;
1338 		__entry->len	= len;
1339 		__entry->copied	= copied;
1340 	),
1341 
1342 	TP_printk("dev = (%d,%d), ino = %lu, pos = %llu, len = %u, copied = %u",
1343 		show_dev_ino(__entry),
1344 		(unsigned long long)__entry->pos,
1345 		__entry->len,
1346 		__entry->copied)
1347 );
1348 
1349 DECLARE_EVENT_CLASS(f2fs__folio,
1350 
1351 	TP_PROTO(struct folio *folio, int type),
1352 
1353 	TP_ARGS(folio, type),
1354 
1355 	TP_STRUCT__entry(
1356 		__field(dev_t,	dev)
1357 		__field(ino_t,	ino)
1358 		__field(int, type)
1359 		__field(int, dir)
1360 		__field(pgoff_t, index)
1361 		__field(int, dirty)
1362 		__field(int, uptodate)
1363 	),
1364 
1365 	TP_fast_assign(
1366 		__entry->dev	= folio->mapping->host->i_sb->s_dev;
1367 		__entry->ino	= folio->mapping->host->i_ino;
1368 		__entry->type	= type;
1369 		__entry->dir	= S_ISDIR(folio->mapping->host->i_mode);
1370 		__entry->index	= folio->index;
1371 		__entry->dirty	= folio_test_dirty(folio);
1372 		__entry->uptodate = folio_test_uptodate(folio);
1373 	),
1374 
1375 	TP_printk("dev = (%d,%d), ino = %lu, %s, %s, index = %lu, "
1376 		"dirty = %d, uptodate = %d",
1377 		show_dev_ino(__entry),
1378 		show_block_type(__entry->type),
1379 		show_file_type(__entry->dir),
1380 		(unsigned long)__entry->index,
1381 		__entry->dirty,
1382 		__entry->uptodate)
1383 );
1384 
1385 DEFINE_EVENT(f2fs__folio, f2fs_writepage,
1386 
1387 	TP_PROTO(struct folio *folio, int type),
1388 
1389 	TP_ARGS(folio, type)
1390 );
1391 
1392 DEFINE_EVENT(f2fs__folio, f2fs_do_write_data_page,
1393 
1394 	TP_PROTO(struct folio *folio, int type),
1395 
1396 	TP_ARGS(folio, type)
1397 );
1398 
1399 DEFINE_EVENT(f2fs__folio, f2fs_readpage,
1400 
1401 	TP_PROTO(struct folio *folio, int type),
1402 
1403 	TP_ARGS(folio, type)
1404 );
1405 
1406 DEFINE_EVENT(f2fs__folio, f2fs_set_page_dirty,
1407 
1408 	TP_PROTO(struct folio *folio, int type),
1409 
1410 	TP_ARGS(folio, type)
1411 );
1412 
1413 TRACE_EVENT(f2fs_replace_atomic_write_block,
1414 
1415 	TP_PROTO(struct inode *inode, struct inode *cow_inode, pgoff_t index,
1416 			block_t old_addr, block_t new_addr, bool recovery),
1417 
1418 	TP_ARGS(inode, cow_inode, index, old_addr, new_addr, recovery),
1419 
1420 	TP_STRUCT__entry(
1421 		__field(dev_t,	dev)
1422 		__field(ino_t,	ino)
1423 		__field(ino_t,	cow_ino)
1424 		__field(pgoff_t, index)
1425 		__field(block_t, old_addr)
1426 		__field(block_t, new_addr)
1427 		__field(bool, recovery)
1428 	),
1429 
1430 	TP_fast_assign(
1431 		__entry->dev		= inode->i_sb->s_dev;
1432 		__entry->ino		= inode->i_ino;
1433 		__entry->cow_ino	= cow_inode->i_ino;
1434 		__entry->index		= index;
1435 		__entry->old_addr	= old_addr;
1436 		__entry->new_addr	= new_addr;
1437 		__entry->recovery	= recovery;
1438 	),
1439 
1440 	TP_printk("dev = (%d,%d), ino = %lu, cow_ino = %lu, index = %lu, "
1441 			"old_addr = 0x%llx, new_addr = 0x%llx, recovery = %d",
1442 		show_dev_ino(__entry),
1443 		__entry->cow_ino,
1444 		(unsigned long)__entry->index,
1445 		(unsigned long long)__entry->old_addr,
1446 		(unsigned long long)__entry->new_addr,
1447 		__entry->recovery)
1448 );
1449 
1450 DECLARE_EVENT_CLASS(f2fs_mmap,
1451 
1452 	TP_PROTO(struct inode *inode, pgoff_t index,
1453 			vm_flags_t flags, vm_fault_t ret),
1454 
1455 	TP_ARGS(inode, index, flags, ret),
1456 
1457 	TP_STRUCT__entry(
1458 		__field(dev_t,	dev)
1459 		__field(ino_t,	ino)
1460 		__field(pgoff_t, index)
1461 		__field(vm_flags_t, flags)
1462 		__field(vm_fault_t, ret)
1463 	),
1464 
1465 	TP_fast_assign(
1466 		__entry->dev	= inode->i_sb->s_dev;
1467 		__entry->ino	= inode->i_ino;
1468 		__entry->index	= index;
1469 		__entry->flags	= flags;
1470 		__entry->ret	= ret;
1471 	),
1472 
1473 	TP_printk("dev = (%d,%d), ino = %lu, index = %lu, flags: %s, ret: %s",
1474 		show_dev_ino(__entry),
1475 		(unsigned long)__entry->index,
1476 		__print_flags(__entry->flags, "|", FAULT_FLAG_TRACE),
1477 		__print_flags(__entry->ret, "|", VM_FAULT_RESULT_TRACE))
1478 );
1479 
1480 DEFINE_EVENT(f2fs_mmap, f2fs_filemap_fault,
1481 
1482 	TP_PROTO(struct inode *inode, pgoff_t index,
1483 			vm_flags_t flags, vm_fault_t ret),
1484 
1485 	TP_ARGS(inode, index, flags, ret)
1486 );
1487 
1488 DEFINE_EVENT(f2fs_mmap, f2fs_vm_page_mkwrite,
1489 
1490 	TP_PROTO(struct inode *inode, pgoff_t index,
1491 			vm_flags_t flags, vm_fault_t ret),
1492 
1493 	TP_ARGS(inode, index, flags, ret)
1494 );
1495 
1496 TRACE_EVENT(f2fs_writepages,
1497 
1498 	TP_PROTO(struct inode *inode, struct writeback_control *wbc, int type),
1499 
1500 	TP_ARGS(inode, wbc, type),
1501 
1502 	TP_STRUCT__entry(
1503 		__field(dev_t,	dev)
1504 		__field(ino_t,	ino)
1505 		__field(int,	type)
1506 		__field(int,	dir)
1507 		__field(long,	nr_to_write)
1508 		__field(long,	pages_skipped)
1509 		__field(loff_t,	range_start)
1510 		__field(loff_t,	range_end)
1511 		__field(pgoff_t, writeback_index)
1512 		__field(int,	sync_mode)
1513 		__field(char,	for_kupdate)
1514 		__field(char,	for_background)
1515 		__field(char,	tagged_writepages)
1516 		__field(char,	range_cyclic)
1517 		__field(char,	for_sync)
1518 	),
1519 
1520 	TP_fast_assign(
1521 		__entry->dev		= inode->i_sb->s_dev;
1522 		__entry->ino		= inode->i_ino;
1523 		__entry->type		= type;
1524 		__entry->dir		= S_ISDIR(inode->i_mode);
1525 		__entry->nr_to_write	= wbc->nr_to_write;
1526 		__entry->pages_skipped	= wbc->pages_skipped;
1527 		__entry->range_start	= wbc->range_start;
1528 		__entry->range_end	= wbc->range_end;
1529 		__entry->writeback_index = inode->i_mapping->writeback_index;
1530 		__entry->sync_mode	= wbc->sync_mode;
1531 		__entry->for_kupdate	= wbc->for_kupdate;
1532 		__entry->for_background	= wbc->for_background;
1533 		__entry->tagged_writepages	= wbc->tagged_writepages;
1534 		__entry->range_cyclic	= wbc->range_cyclic;
1535 		__entry->for_sync	= wbc->for_sync;
1536 	),
1537 
1538 	TP_printk("dev = (%d,%d), ino = %lu, %s, %s, nr_to_write %ld, "
1539 		"skipped %ld, start %lld, end %lld, wb_idx %lu, sync_mode %d, "
1540 		"kupdate %u background %u tagged %u cyclic %u sync %u",
1541 		show_dev_ino(__entry),
1542 		show_block_type(__entry->type),
1543 		show_file_type(__entry->dir),
1544 		__entry->nr_to_write,
1545 		__entry->pages_skipped,
1546 		__entry->range_start,
1547 		__entry->range_end,
1548 		(unsigned long)__entry->writeback_index,
1549 		__entry->sync_mode,
1550 		__entry->for_kupdate,
1551 		__entry->for_background,
1552 		__entry->tagged_writepages,
1553 		__entry->range_cyclic,
1554 		__entry->for_sync)
1555 );
1556 
1557 TRACE_EVENT(f2fs_readpages,
1558 
1559 	TP_PROTO(struct inode *inode, pgoff_t start, unsigned int nrpage),
1560 
1561 	TP_ARGS(inode, start, nrpage),
1562 
1563 	TP_STRUCT__entry(
1564 		__field(dev_t,	dev)
1565 		__field(ino_t,	ino)
1566 		__field(pgoff_t,	start)
1567 		__field(unsigned int,	nrpage)
1568 	),
1569 
1570 	TP_fast_assign(
1571 		__entry->dev	= inode->i_sb->s_dev;
1572 		__entry->ino	= inode->i_ino;
1573 		__entry->start	= start;
1574 		__entry->nrpage	= nrpage;
1575 	),
1576 
1577 	TP_printk("dev = (%d,%d), ino = %lu, start = %lu nrpage = %u",
1578 		show_dev_ino(__entry),
1579 		(unsigned long)__entry->start,
1580 		__entry->nrpage)
1581 );
1582 
1583 TRACE_EVENT(f2fs_write_checkpoint,
1584 
1585 	TP_PROTO(struct super_block *sb, int reason, u16 phase),
1586 
1587 	TP_ARGS(sb, reason, phase),
1588 
1589 	TP_STRUCT__entry(
1590 		__field(dev_t,	dev)
1591 		__field(int,	reason)
1592 		__field(u16, phase)
1593 	),
1594 
1595 	TP_fast_assign(
1596 		__entry->dev		= sb->s_dev;
1597 		__entry->reason		= reason;
1598 		__entry->phase		= phase;
1599 	),
1600 
1601 	TP_printk("dev = (%d,%d), checkpoint for %s, state = %s",
1602 		show_dev(__entry->dev),
1603 		show_cpreason(__entry->reason),
1604 		show_cp_phase(__entry->phase))
1605 );
1606 
1607 DECLARE_EVENT_CLASS(f2fs_discard,
1608 
1609 	TP_PROTO(struct block_device *dev, block_t blkstart, block_t blklen),
1610 
1611 	TP_ARGS(dev, blkstart, blklen),
1612 
1613 	TP_STRUCT__entry(
1614 		__field(dev_t,	dev)
1615 		__field(block_t, blkstart)
1616 		__field(block_t, blklen)
1617 	),
1618 
1619 	TP_fast_assign(
1620 		__entry->dev	= dev->bd_dev;
1621 		__entry->blkstart = blkstart;
1622 		__entry->blklen = blklen;
1623 	),
1624 
1625 	TP_printk("dev = (%d,%d), blkstart = 0x%llx, blklen = 0x%llx",
1626 		show_dev(__entry->dev),
1627 		(unsigned long long)__entry->blkstart,
1628 		(unsigned long long)__entry->blklen)
1629 );
1630 
1631 DEFINE_EVENT(f2fs_discard, f2fs_queue_discard,
1632 
1633 	TP_PROTO(struct block_device *dev, block_t blkstart, block_t blklen),
1634 
1635 	TP_ARGS(dev, blkstart, blklen)
1636 );
1637 
1638 DEFINE_EVENT(f2fs_discard, f2fs_issue_discard,
1639 
1640 	TP_PROTO(struct block_device *dev, block_t blkstart, block_t blklen),
1641 
1642 	TP_ARGS(dev, blkstart, blklen)
1643 );
1644 
1645 DEFINE_EVENT(f2fs_discard, f2fs_remove_discard,
1646 
1647 	TP_PROTO(struct block_device *dev, block_t blkstart, block_t blklen),
1648 
1649 	TP_ARGS(dev, blkstart, blklen)
1650 );
1651 
1652 DECLARE_EVENT_CLASS(f2fs_reset_zone,
1653 
1654 	TP_PROTO(struct block_device *dev, block_t blkstart),
1655 
1656 	TP_ARGS(dev, blkstart),
1657 
1658 	TP_STRUCT__entry(
1659 		__field(dev_t,	dev)
1660 		__field(block_t, blkstart)
1661 	),
1662 
1663 	TP_fast_assign(
1664 		__entry->dev	= dev->bd_dev;
1665 		__entry->blkstart = blkstart;
1666 	),
1667 
1668 	TP_printk("dev = (%d,%d), zone at block = 0x%llx",
1669 		show_dev(__entry->dev),
1670 		(unsigned long long)__entry->blkstart)
1671 );
1672 
1673 DEFINE_EVENT(f2fs_reset_zone, f2fs_queue_reset_zone,
1674 
1675 	TP_PROTO(struct block_device *dev, block_t blkstart),
1676 
1677 	TP_ARGS(dev, blkstart)
1678 );
1679 
1680 DEFINE_EVENT(f2fs_reset_zone, f2fs_issue_reset_zone,
1681 
1682 	TP_PROTO(struct block_device *dev, block_t blkstart),
1683 
1684 	TP_ARGS(dev, blkstart)
1685 );
1686 
1687 TRACE_EVENT(f2fs_issue_flush,
1688 
1689 	TP_PROTO(struct block_device *dev, unsigned int nobarrier,
1690 				unsigned int flush_merge, int ret),
1691 
1692 	TP_ARGS(dev, nobarrier, flush_merge, ret),
1693 
1694 	TP_STRUCT__entry(
1695 		__field(dev_t,	dev)
1696 		__field(unsigned int, nobarrier)
1697 		__field(unsigned int, flush_merge)
1698 		__field(int,  ret)
1699 	),
1700 
1701 	TP_fast_assign(
1702 		__entry->dev	= dev->bd_dev;
1703 		__entry->nobarrier = nobarrier;
1704 		__entry->flush_merge = flush_merge;
1705 		__entry->ret = ret;
1706 	),
1707 
1708 	TP_printk("dev = (%d,%d), %s %s, ret = %d",
1709 		show_dev(__entry->dev),
1710 		__entry->nobarrier ? "skip (nobarrier)" : "issue",
1711 		__entry->flush_merge ? " with flush_merge" : "",
1712 		__entry->ret)
1713 );
1714 
1715 TRACE_EVENT(f2fs_lookup_extent_tree_start,
1716 
1717 	TP_PROTO(struct inode *inode, unsigned int pgofs, enum extent_type type),
1718 
1719 	TP_ARGS(inode, pgofs, type),
1720 
1721 	TP_STRUCT__entry(
1722 		__field(dev_t,	dev)
1723 		__field(ino_t,	ino)
1724 		__field(unsigned int, pgofs)
1725 		__field(enum extent_type, type)
1726 	),
1727 
1728 	TP_fast_assign(
1729 		__entry->dev = inode->i_sb->s_dev;
1730 		__entry->ino = inode->i_ino;
1731 		__entry->pgofs = pgofs;
1732 		__entry->type = type;
1733 	),
1734 
1735 	TP_printk("dev = (%d,%d), ino = %lu, pgofs = %u, type = %s",
1736 		show_dev_ino(__entry),
1737 		__entry->pgofs,
1738 		show_extent_type(__entry->type))
1739 );
1740 
1741 TRACE_EVENT_CONDITION(f2fs_lookup_read_extent_tree_end,
1742 
1743 	TP_PROTO(struct inode *inode, unsigned int pgofs,
1744 						struct extent_info *ei),
1745 
1746 	TP_ARGS(inode, pgofs, ei),
1747 
1748 	TP_CONDITION(ei),
1749 
1750 	TP_STRUCT__entry(
1751 		__field(dev_t,	dev)
1752 		__field(ino_t,	ino)
1753 		__field(unsigned int, pgofs)
1754 		__field(unsigned int, fofs)
1755 		__field(unsigned int, len)
1756 		__field(u32, blk)
1757 	),
1758 
1759 	TP_fast_assign(
1760 		__entry->dev = inode->i_sb->s_dev;
1761 		__entry->ino = inode->i_ino;
1762 		__entry->pgofs = pgofs;
1763 		__entry->fofs = ei->fofs;
1764 		__entry->len = ei->len;
1765 		__entry->blk = ei->blk;
1766 	),
1767 
1768 	TP_printk("dev = (%d,%d), ino = %lu, pgofs = %u, "
1769 		"read_ext_info(fofs: %u, len: %u, blk: %u)",
1770 		show_dev_ino(__entry),
1771 		__entry->pgofs,
1772 		__entry->fofs,
1773 		__entry->len,
1774 		__entry->blk)
1775 );
1776 
1777 TRACE_EVENT_CONDITION(f2fs_lookup_age_extent_tree_end,
1778 
1779 	TP_PROTO(struct inode *inode, unsigned int pgofs,
1780 						struct extent_info *ei),
1781 
1782 	TP_ARGS(inode, pgofs, ei),
1783 
1784 	TP_CONDITION(ei),
1785 
1786 	TP_STRUCT__entry(
1787 		__field(dev_t,	dev)
1788 		__field(ino_t,	ino)
1789 		__field(unsigned int, pgofs)
1790 		__field(unsigned int, fofs)
1791 		__field(unsigned int, len)
1792 		__field(unsigned long long, age)
1793 		__field(unsigned long long, blocks)
1794 	),
1795 
1796 	TP_fast_assign(
1797 		__entry->dev = inode->i_sb->s_dev;
1798 		__entry->ino = inode->i_ino;
1799 		__entry->pgofs = pgofs;
1800 		__entry->fofs = ei->fofs;
1801 		__entry->len = ei->len;
1802 		__entry->age = ei->age;
1803 		__entry->blocks = ei->last_blocks;
1804 	),
1805 
1806 	TP_printk("dev = (%d,%d), ino = %lu, pgofs = %u, "
1807 		"age_ext_info(fofs: %u, len: %u, age: %llu, blocks: %llu)",
1808 		show_dev_ino(__entry),
1809 		__entry->pgofs,
1810 		__entry->fofs,
1811 		__entry->len,
1812 		__entry->age,
1813 		__entry->blocks)
1814 );
1815 
1816 TRACE_EVENT(f2fs_update_read_extent_tree_range,
1817 
1818 	TP_PROTO(struct inode *inode, unsigned int pgofs, unsigned int len,
1819 						block_t blkaddr,
1820 						unsigned int c_len),
1821 
1822 	TP_ARGS(inode, pgofs, len, blkaddr, c_len),
1823 
1824 	TP_STRUCT__entry(
1825 		__field(dev_t,	dev)
1826 		__field(ino_t,	ino)
1827 		__field(unsigned int, pgofs)
1828 		__field(u32, blk)
1829 		__field(unsigned int, len)
1830 		__field(unsigned int, c_len)
1831 	),
1832 
1833 	TP_fast_assign(
1834 		__entry->dev = inode->i_sb->s_dev;
1835 		__entry->ino = inode->i_ino;
1836 		__entry->pgofs = pgofs;
1837 		__entry->len = len;
1838 		__entry->blk = blkaddr;
1839 		__entry->c_len = c_len;
1840 	),
1841 
1842 	TP_printk("dev = (%d,%d), ino = %lu, pgofs = %u, "
1843 				"len = %u, blkaddr = %u, c_len = %u",
1844 		show_dev_ino(__entry),
1845 		__entry->pgofs,
1846 		__entry->len,
1847 		__entry->blk,
1848 		__entry->c_len)
1849 );
1850 
1851 TRACE_EVENT(f2fs_update_age_extent_tree_range,
1852 
1853 	TP_PROTO(struct inode *inode, unsigned int pgofs, unsigned int len,
1854 					unsigned long long age,
1855 					unsigned long long last_blks),
1856 
1857 	TP_ARGS(inode, pgofs, len, age, last_blks),
1858 
1859 	TP_STRUCT__entry(
1860 		__field(dev_t,	dev)
1861 		__field(ino_t,	ino)
1862 		__field(unsigned int, pgofs)
1863 		__field(unsigned int, len)
1864 		__field(unsigned long long, age)
1865 		__field(unsigned long long, blocks)
1866 	),
1867 
1868 	TP_fast_assign(
1869 		__entry->dev = inode->i_sb->s_dev;
1870 		__entry->ino = inode->i_ino;
1871 		__entry->pgofs = pgofs;
1872 		__entry->len = len;
1873 		__entry->age = age;
1874 		__entry->blocks = last_blks;
1875 	),
1876 
1877 	TP_printk("dev = (%d,%d), ino = %lu, pgofs = %u, "
1878 				"len = %u, age = %llu, blocks = %llu",
1879 		show_dev_ino(__entry),
1880 		__entry->pgofs,
1881 		__entry->len,
1882 		__entry->age,
1883 		__entry->blocks)
1884 );
1885 
1886 TRACE_EVENT(f2fs_shrink_extent_tree,
1887 
1888 	TP_PROTO(struct f2fs_sb_info *sbi, unsigned int node_cnt,
1889 			unsigned int tree_cnt, enum extent_type type),
1890 
1891 	TP_ARGS(sbi, node_cnt, tree_cnt, type),
1892 
1893 	TP_STRUCT__entry(
1894 		__field(dev_t,	dev)
1895 		__field(unsigned int, node_cnt)
1896 		__field(unsigned int, tree_cnt)
1897 		__field(enum extent_type, type)
1898 	),
1899 
1900 	TP_fast_assign(
1901 		__entry->dev = sbi->sb->s_dev;
1902 		__entry->node_cnt = node_cnt;
1903 		__entry->tree_cnt = tree_cnt;
1904 		__entry->type = type;
1905 	),
1906 
1907 	TP_printk("dev = (%d,%d), shrunk: node_cnt = %u, tree_cnt = %u, type = %s",
1908 		show_dev(__entry->dev),
1909 		__entry->node_cnt,
1910 		__entry->tree_cnt,
1911 		show_extent_type(__entry->type))
1912 );
1913 
1914 TRACE_EVENT(f2fs_destroy_extent_tree,
1915 
1916 	TP_PROTO(struct inode *inode, unsigned int node_cnt,
1917 				enum extent_type type),
1918 
1919 	TP_ARGS(inode, node_cnt, type),
1920 
1921 	TP_STRUCT__entry(
1922 		__field(dev_t,	dev)
1923 		__field(ino_t,	ino)
1924 		__field(unsigned int, node_cnt)
1925 		__field(enum extent_type, type)
1926 	),
1927 
1928 	TP_fast_assign(
1929 		__entry->dev = inode->i_sb->s_dev;
1930 		__entry->ino = inode->i_ino;
1931 		__entry->node_cnt = node_cnt;
1932 		__entry->type = type;
1933 	),
1934 
1935 	TP_printk("dev = (%d,%d), ino = %lu, destroyed: node_cnt = %u, type = %s",
1936 		show_dev_ino(__entry),
1937 		__entry->node_cnt,
1938 		show_extent_type(__entry->type))
1939 );
1940 
1941 DECLARE_EVENT_CLASS(f2fs_sync_dirty_inodes,
1942 
1943 	TP_PROTO(struct super_block *sb, int type, s64 count),
1944 
1945 	TP_ARGS(sb, type, count),
1946 
1947 	TP_STRUCT__entry(
1948 		__field(dev_t, dev)
1949 		__field(int, type)
1950 		__field(s64, count)
1951 	),
1952 
1953 	TP_fast_assign(
1954 		__entry->dev	= sb->s_dev;
1955 		__entry->type	= type;
1956 		__entry->count	= count;
1957 	),
1958 
1959 	TP_printk("dev = (%d,%d), %s, dirty count = %lld",
1960 		show_dev(__entry->dev),
1961 		show_file_type(__entry->type),
1962 		__entry->count)
1963 );
1964 
1965 DEFINE_EVENT(f2fs_sync_dirty_inodes, f2fs_sync_dirty_inodes_enter,
1966 
1967 	TP_PROTO(struct super_block *sb, int type, s64 count),
1968 
1969 	TP_ARGS(sb, type, count)
1970 );
1971 
1972 DEFINE_EVENT(f2fs_sync_dirty_inodes, f2fs_sync_dirty_inodes_exit,
1973 
1974 	TP_PROTO(struct super_block *sb, int type, s64 count),
1975 
1976 	TP_ARGS(sb, type, count)
1977 );
1978 
1979 TRACE_EVENT(f2fs_shutdown,
1980 
1981 	TP_PROTO(struct f2fs_sb_info *sbi, unsigned int mode, int ret),
1982 
1983 	TP_ARGS(sbi, mode, ret),
1984 
1985 	TP_STRUCT__entry(
1986 		__field(dev_t,	dev)
1987 		__field(unsigned int, mode)
1988 		__field(int, ret)
1989 	),
1990 
1991 	TP_fast_assign(
1992 		__entry->dev = sbi->sb->s_dev;
1993 		__entry->mode = mode;
1994 		__entry->ret = ret;
1995 	),
1996 
1997 	TP_printk("dev = (%d,%d), mode: %s, ret:%d",
1998 		show_dev(__entry->dev),
1999 		show_shutdown_mode(__entry->mode),
2000 		__entry->ret)
2001 );
2002 
2003 DECLARE_EVENT_CLASS(f2fs_zip_start,
2004 
2005 	TP_PROTO(struct inode *inode, pgoff_t cluster_idx,
2006 			unsigned int cluster_size, unsigned char algtype),
2007 
2008 	TP_ARGS(inode, cluster_idx, cluster_size, algtype),
2009 
2010 	TP_STRUCT__entry(
2011 		__field(dev_t,	dev)
2012 		__field(ino_t,	ino)
2013 		__field(pgoff_t, idx)
2014 		__field(unsigned int, size)
2015 		__field(unsigned int, algtype)
2016 	),
2017 
2018 	TP_fast_assign(
2019 		__entry->dev = inode->i_sb->s_dev;
2020 		__entry->ino = inode->i_ino;
2021 		__entry->idx = cluster_idx;
2022 		__entry->size = cluster_size;
2023 		__entry->algtype = algtype;
2024 	),
2025 
2026 	TP_printk("dev = (%d,%d), ino = %lu, cluster_idx:%lu, "
2027 		"cluster_size = %u, algorithm = %s",
2028 		show_dev_ino(__entry),
2029 		__entry->idx,
2030 		__entry->size,
2031 		show_compress_algorithm(__entry->algtype))
2032 );
2033 
2034 DECLARE_EVENT_CLASS(f2fs_zip_end,
2035 
2036 	TP_PROTO(struct inode *inode, pgoff_t cluster_idx,
2037 			unsigned int compressed_size, int ret),
2038 
2039 	TP_ARGS(inode, cluster_idx, compressed_size, ret),
2040 
2041 	TP_STRUCT__entry(
2042 		__field(dev_t,	dev)
2043 		__field(ino_t,	ino)
2044 		__field(pgoff_t, idx)
2045 		__field(unsigned int, size)
2046 		__field(unsigned int, ret)
2047 	),
2048 
2049 	TP_fast_assign(
2050 		__entry->dev = inode->i_sb->s_dev;
2051 		__entry->ino = inode->i_ino;
2052 		__entry->idx = cluster_idx;
2053 		__entry->size = compressed_size;
2054 		__entry->ret = ret;
2055 	),
2056 
2057 	TP_printk("dev = (%d,%d), ino = %lu, cluster_idx:%lu, "
2058 		"compressed_size = %u, ret = %d",
2059 		show_dev_ino(__entry),
2060 		__entry->idx,
2061 		__entry->size,
2062 		__entry->ret)
2063 );
2064 
2065 DEFINE_EVENT(f2fs_zip_start, f2fs_compress_pages_start,
2066 
2067 	TP_PROTO(struct inode *inode, pgoff_t cluster_idx,
2068 		unsigned int cluster_size, unsigned char algtype),
2069 
2070 	TP_ARGS(inode, cluster_idx, cluster_size, algtype)
2071 );
2072 
2073 DEFINE_EVENT(f2fs_zip_start, f2fs_decompress_pages_start,
2074 
2075 	TP_PROTO(struct inode *inode, pgoff_t cluster_idx,
2076 		unsigned int cluster_size, unsigned char algtype),
2077 
2078 	TP_ARGS(inode, cluster_idx, cluster_size, algtype)
2079 );
2080 
2081 DEFINE_EVENT(f2fs_zip_end, f2fs_compress_pages_end,
2082 
2083 	TP_PROTO(struct inode *inode, pgoff_t cluster_idx,
2084 			unsigned int compressed_size, int ret),
2085 
2086 	TP_ARGS(inode, cluster_idx, compressed_size, ret)
2087 );
2088 
2089 DEFINE_EVENT(f2fs_zip_end, f2fs_decompress_pages_end,
2090 
2091 	TP_PROTO(struct inode *inode, pgoff_t cluster_idx,
2092 			unsigned int compressed_size, int ret),
2093 
2094 	TP_ARGS(inode, cluster_idx, compressed_size, ret)
2095 );
2096 
2097 #ifdef CONFIG_F2FS_IOSTAT
2098 TRACE_EVENT(f2fs_iostat,
2099 
2100 	TP_PROTO(struct f2fs_sb_info *sbi, unsigned long long *iostat),
2101 
2102 	TP_ARGS(sbi, iostat),
2103 
2104 	TP_STRUCT__entry(
2105 		__field(dev_t,	dev)
2106 		__field(unsigned long long,	app_dio)
2107 		__field(unsigned long long,	app_bio)
2108 		__field(unsigned long long,	app_wio)
2109 		__field(unsigned long long,	app_mio)
2110 		__field(unsigned long long,	app_bcdio)
2111 		__field(unsigned long long,	app_mcdio)
2112 		__field(unsigned long long,	fs_dio)
2113 		__field(unsigned long long,	fs_cdio)
2114 		__field(unsigned long long,	fs_nio)
2115 		__field(unsigned long long,	fs_mio)
2116 		__field(unsigned long long,	fs_gc_dio)
2117 		__field(unsigned long long,	fs_gc_nio)
2118 		__field(unsigned long long,	fs_cp_dio)
2119 		__field(unsigned long long,	fs_cp_nio)
2120 		__field(unsigned long long,	fs_cp_mio)
2121 		__field(unsigned long long,	app_drio)
2122 		__field(unsigned long long,	app_brio)
2123 		__field(unsigned long long,	app_rio)
2124 		__field(unsigned long long,	app_mrio)
2125 		__field(unsigned long long,	app_bcrio)
2126 		__field(unsigned long long,	app_mcrio)
2127 		__field(unsigned long long,	fs_drio)
2128 		__field(unsigned long long,	fs_gdrio)
2129 		__field(unsigned long long,	fs_cdrio)
2130 		__field(unsigned long long,	fs_nrio)
2131 		__field(unsigned long long,	fs_mrio)
2132 		__field(unsigned long long,	fs_discard)
2133 		__field(unsigned long long,	fs_reset_zone)
2134 	),
2135 
2136 	TP_fast_assign(
2137 		__entry->dev		= sbi->sb->s_dev;
2138 		__entry->app_dio	= iostat[APP_DIRECT_IO];
2139 		__entry->app_bio	= iostat[APP_BUFFERED_IO];
2140 		__entry->app_wio	= iostat[APP_WRITE_IO];
2141 		__entry->app_mio	= iostat[APP_MAPPED_IO];
2142 		__entry->app_bcdio	= iostat[APP_BUFFERED_CDATA_IO];
2143 		__entry->app_mcdio	= iostat[APP_MAPPED_CDATA_IO];
2144 		__entry->fs_dio		= iostat[FS_DATA_IO];
2145 		__entry->fs_cdio	= iostat[FS_CDATA_IO];
2146 		__entry->fs_nio		= iostat[FS_NODE_IO];
2147 		__entry->fs_mio		= iostat[FS_META_IO];
2148 		__entry->fs_gc_dio	= iostat[FS_GC_DATA_IO];
2149 		__entry->fs_gc_nio	= iostat[FS_GC_NODE_IO];
2150 		__entry->fs_cp_dio	= iostat[FS_CP_DATA_IO];
2151 		__entry->fs_cp_nio	= iostat[FS_CP_NODE_IO];
2152 		__entry->fs_cp_mio	= iostat[FS_CP_META_IO];
2153 		__entry->app_drio	= iostat[APP_DIRECT_READ_IO];
2154 		__entry->app_brio	= iostat[APP_BUFFERED_READ_IO];
2155 		__entry->app_rio	= iostat[APP_READ_IO];
2156 		__entry->app_mrio	= iostat[APP_MAPPED_READ_IO];
2157 		__entry->app_bcrio	= iostat[APP_BUFFERED_CDATA_READ_IO];
2158 		__entry->app_mcrio	= iostat[APP_MAPPED_CDATA_READ_IO];
2159 		__entry->fs_drio	= iostat[FS_DATA_READ_IO];
2160 		__entry->fs_gdrio	= iostat[FS_GDATA_READ_IO];
2161 		__entry->fs_cdrio	= iostat[FS_CDATA_READ_IO];
2162 		__entry->fs_nrio	= iostat[FS_NODE_READ_IO];
2163 		__entry->fs_mrio	= iostat[FS_META_READ_IO];
2164 		__entry->fs_discard	= iostat[FS_DISCARD_IO];
2165 		__entry->fs_reset_zone	= iostat[FS_ZONE_RESET_IO];
2166 	),
2167 
2168 	TP_printk("dev = (%d,%d), "
2169 		"app [write=%llu (direct=%llu, buffered=%llu), mapped=%llu, "
2170 		"compr(buffered=%llu, mapped=%llu)], "
2171 		"fs [data=%llu, cdata=%llu, node=%llu, meta=%llu, discard=%llu, "
2172 		"reset_zone=%llu], "
2173 		"gc [data=%llu, node=%llu], "
2174 		"cp [data=%llu, node=%llu, meta=%llu], "
2175 		"app [read=%llu (direct=%llu, buffered=%llu), mapped=%llu], "
2176 		"compr(buffered=%llu, mapped=%llu)], "
2177 		"fs [data=%llu, (gc_data=%llu, cdata=%llu), "
2178 		"node=%llu, meta=%llu]",
2179 		show_dev(__entry->dev), __entry->app_wio, __entry->app_dio,
2180 		__entry->app_bio, __entry->app_mio, __entry->app_bcdio,
2181 		__entry->app_mcdio, __entry->fs_dio, __entry->fs_cdio,
2182 		__entry->fs_nio, __entry->fs_mio, __entry->fs_discard,
2183 		__entry->fs_reset_zone,
2184 		__entry->fs_gc_dio, __entry->fs_gc_nio, __entry->fs_cp_dio,
2185 		__entry->fs_cp_nio, __entry->fs_cp_mio,
2186 		__entry->app_rio, __entry->app_drio, __entry->app_brio,
2187 		__entry->app_mrio, __entry->app_bcrio, __entry->app_mcrio,
2188 		__entry->fs_drio, __entry->fs_gdrio,
2189 		__entry->fs_cdrio, __entry->fs_nrio, __entry->fs_mrio)
2190 );
2191 
2192 #ifndef __F2FS_IOSTAT_LATENCY_TYPE
2193 #define __F2FS_IOSTAT_LATENCY_TYPE
2194 struct f2fs_iostat_latency {
2195 	unsigned int peak_lat;
2196 	unsigned int avg_lat;
2197 	unsigned int cnt;
2198 };
2199 #endif /* __F2FS_IOSTAT_LATENCY_TYPE */
2200 
2201 TRACE_EVENT(f2fs_iostat_latency,
2202 
2203 	TP_PROTO(struct f2fs_sb_info *sbi, struct f2fs_iostat_latency (*iostat_lat)[NR_PAGE_TYPE]),
2204 
2205 	TP_ARGS(sbi, iostat_lat),
2206 
2207 	TP_STRUCT__entry(
2208 		__field(dev_t,	dev)
2209 		__field(unsigned int,	d_rd_peak)
2210 		__field(unsigned int,	d_rd_avg)
2211 		__field(unsigned int,	d_rd_cnt)
2212 		__field(unsigned int,	n_rd_peak)
2213 		__field(unsigned int,	n_rd_avg)
2214 		__field(unsigned int,	n_rd_cnt)
2215 		__field(unsigned int,	m_rd_peak)
2216 		__field(unsigned int,	m_rd_avg)
2217 		__field(unsigned int,	m_rd_cnt)
2218 		__field(unsigned int,	d_wr_s_peak)
2219 		__field(unsigned int,	d_wr_s_avg)
2220 		__field(unsigned int,	d_wr_s_cnt)
2221 		__field(unsigned int,	n_wr_s_peak)
2222 		__field(unsigned int,	n_wr_s_avg)
2223 		__field(unsigned int,	n_wr_s_cnt)
2224 		__field(unsigned int,	m_wr_s_peak)
2225 		__field(unsigned int,	m_wr_s_avg)
2226 		__field(unsigned int,	m_wr_s_cnt)
2227 		__field(unsigned int,	d_wr_as_peak)
2228 		__field(unsigned int,	d_wr_as_avg)
2229 		__field(unsigned int,	d_wr_as_cnt)
2230 		__field(unsigned int,	n_wr_as_peak)
2231 		__field(unsigned int,	n_wr_as_avg)
2232 		__field(unsigned int,	n_wr_as_cnt)
2233 		__field(unsigned int,	m_wr_as_peak)
2234 		__field(unsigned int,	m_wr_as_avg)
2235 		__field(unsigned int,	m_wr_as_cnt)
2236 	),
2237 
2238 	TP_fast_assign(
2239 		__entry->dev		= sbi->sb->s_dev;
2240 		__entry->d_rd_peak	= iostat_lat[READ_IO][DATA].peak_lat;
2241 		__entry->d_rd_avg	= iostat_lat[READ_IO][DATA].avg_lat;
2242 		__entry->d_rd_cnt	= iostat_lat[READ_IO][DATA].cnt;
2243 		__entry->n_rd_peak	= iostat_lat[READ_IO][NODE].peak_lat;
2244 		__entry->n_rd_avg	= iostat_lat[READ_IO][NODE].avg_lat;
2245 		__entry->n_rd_cnt	= iostat_lat[READ_IO][NODE].cnt;
2246 		__entry->m_rd_peak	= iostat_lat[READ_IO][META].peak_lat;
2247 		__entry->m_rd_avg	= iostat_lat[READ_IO][META].avg_lat;
2248 		__entry->m_rd_cnt	= iostat_lat[READ_IO][META].cnt;
2249 		__entry->d_wr_s_peak	= iostat_lat[WRITE_SYNC_IO][DATA].peak_lat;
2250 		__entry->d_wr_s_avg	= iostat_lat[WRITE_SYNC_IO][DATA].avg_lat;
2251 		__entry->d_wr_s_cnt	= iostat_lat[WRITE_SYNC_IO][DATA].cnt;
2252 		__entry->n_wr_s_peak	= iostat_lat[WRITE_SYNC_IO][NODE].peak_lat;
2253 		__entry->n_wr_s_avg	= iostat_lat[WRITE_SYNC_IO][NODE].avg_lat;
2254 		__entry->n_wr_s_cnt	= iostat_lat[WRITE_SYNC_IO][NODE].cnt;
2255 		__entry->m_wr_s_peak	= iostat_lat[WRITE_SYNC_IO][META].peak_lat;
2256 		__entry->m_wr_s_avg	= iostat_lat[WRITE_SYNC_IO][META].avg_lat;
2257 		__entry->m_wr_s_cnt	= iostat_lat[WRITE_SYNC_IO][META].cnt;
2258 		__entry->d_wr_as_peak	= iostat_lat[WRITE_ASYNC_IO][DATA].peak_lat;
2259 		__entry->d_wr_as_avg	= iostat_lat[WRITE_ASYNC_IO][DATA].avg_lat;
2260 		__entry->d_wr_as_cnt	= iostat_lat[WRITE_ASYNC_IO][DATA].cnt;
2261 		__entry->n_wr_as_peak	= iostat_lat[WRITE_ASYNC_IO][NODE].peak_lat;
2262 		__entry->n_wr_as_avg	= iostat_lat[WRITE_ASYNC_IO][NODE].avg_lat;
2263 		__entry->n_wr_as_cnt	= iostat_lat[WRITE_ASYNC_IO][NODE].cnt;
2264 		__entry->m_wr_as_peak	= iostat_lat[WRITE_ASYNC_IO][META].peak_lat;
2265 		__entry->m_wr_as_avg	= iostat_lat[WRITE_ASYNC_IO][META].avg_lat;
2266 		__entry->m_wr_as_cnt	= iostat_lat[WRITE_ASYNC_IO][META].cnt;
2267 	),
2268 
2269 	TP_printk("dev = (%d,%d), "
2270 		"iotype [peak lat.(ms)/avg lat.(ms)/count], "
2271 		"rd_data [%u/%u/%u], rd_node [%u/%u/%u], rd_meta [%u/%u/%u], "
2272 		"wr_sync_data [%u/%u/%u], wr_sync_node [%u/%u/%u], "
2273 		"wr_sync_meta [%u/%u/%u], wr_async_data [%u/%u/%u], "
2274 		"wr_async_node [%u/%u/%u], wr_async_meta [%u/%u/%u]",
2275 		show_dev(__entry->dev),
2276 		__entry->d_rd_peak, __entry->d_rd_avg, __entry->d_rd_cnt,
2277 		__entry->n_rd_peak, __entry->n_rd_avg, __entry->n_rd_cnt,
2278 		__entry->m_rd_peak, __entry->m_rd_avg, __entry->m_rd_cnt,
2279 		__entry->d_wr_s_peak, __entry->d_wr_s_avg, __entry->d_wr_s_cnt,
2280 		__entry->n_wr_s_peak, __entry->n_wr_s_avg, __entry->n_wr_s_cnt,
2281 		__entry->m_wr_s_peak, __entry->m_wr_s_avg, __entry->m_wr_s_cnt,
2282 		__entry->d_wr_as_peak, __entry->d_wr_as_avg, __entry->d_wr_as_cnt,
2283 		__entry->n_wr_as_peak, __entry->n_wr_as_avg, __entry->n_wr_as_cnt,
2284 		__entry->m_wr_as_peak, __entry->m_wr_as_avg, __entry->m_wr_as_cnt)
2285 );
2286 #endif
2287 
2288 TRACE_EVENT(f2fs_bmap,
2289 
2290 	TP_PROTO(struct inode *inode, sector_t lblock, sector_t pblock),
2291 
2292 	TP_ARGS(inode, lblock, pblock),
2293 
2294 	TP_STRUCT__entry(
2295 		__field(dev_t, dev)
2296 		__field(ino_t, ino)
2297 		__field(sector_t, lblock)
2298 		__field(sector_t, pblock)
2299 	),
2300 
2301 	TP_fast_assign(
2302 		__entry->dev		= inode->i_sb->s_dev;
2303 		__entry->ino		= inode->i_ino;
2304 		__entry->lblock		= lblock;
2305 		__entry->pblock		= pblock;
2306 	),
2307 
2308 	TP_printk("dev = (%d,%d), ino = %lu, lblock:%lld, pblock:%lld",
2309 		show_dev_ino(__entry),
2310 		(unsigned long long)__entry->lblock,
2311 		(unsigned long long)__entry->pblock)
2312 );
2313 
2314 TRACE_EVENT(f2fs_fiemap,
2315 
2316 	TP_PROTO(struct inode *inode, sector_t lblock, sector_t pblock,
2317 		unsigned long long len, unsigned int flags, int ret),
2318 
2319 	TP_ARGS(inode, lblock, pblock, len, flags, ret),
2320 
2321 	TP_STRUCT__entry(
2322 		__field(dev_t, dev)
2323 		__field(ino_t, ino)
2324 		__field(sector_t, lblock)
2325 		__field(sector_t, pblock)
2326 		__field(unsigned long long, len)
2327 		__field(unsigned int, flags)
2328 		__field(int, ret)
2329 	),
2330 
2331 	TP_fast_assign(
2332 		__entry->dev		= inode->i_sb->s_dev;
2333 		__entry->ino		= inode->i_ino;
2334 		__entry->lblock		= lblock;
2335 		__entry->pblock		= pblock;
2336 		__entry->len		= len;
2337 		__entry->flags		= flags;
2338 		__entry->ret		= ret;
2339 	),
2340 
2341 	TP_printk("dev = (%d,%d), ino = %lu, lblock:%lld, pblock:%lld, "
2342 		"len:%llu, flags:%u, ret:%d",
2343 		show_dev_ino(__entry),
2344 		(unsigned long long)__entry->lblock,
2345 		(unsigned long long)__entry->pblock,
2346 		__entry->len,
2347 		__entry->flags,
2348 		__entry->ret)
2349 );
2350 
2351 DECLARE_EVENT_CLASS(f2fs__rw_start,
2352 
2353 	TP_PROTO(struct inode *inode, loff_t offset, int bytes,
2354 			pid_t pid, char *pathname, char *command),
2355 
2356 	TP_ARGS(inode, offset, bytes, pid, pathname, command),
2357 
2358 	TP_STRUCT__entry(
2359 		__string(pathbuf, pathname)
2360 		__field(loff_t, offset)
2361 		__field(int, bytes)
2362 		__field(loff_t, i_size)
2363 		__string(cmdline, command)
2364 		__field(pid_t, pid)
2365 		__field(ino_t, ino)
2366 	),
2367 
2368 	TP_fast_assign(
2369 		/*
2370 		 * Replace the spaces in filenames and cmdlines
2371 		 * because this screws up the tooling that parses
2372 		 * the traces.
2373 		 */
2374 		__assign_str(pathbuf);
2375 		(void)strreplace(__get_str(pathbuf), ' ', '_');
2376 		__entry->offset = offset;
2377 		__entry->bytes = bytes;
2378 		__entry->i_size = i_size_read(inode);
2379 		__assign_str(cmdline);
2380 		(void)strreplace(__get_str(cmdline), ' ', '_');
2381 		__entry->pid = pid;
2382 		__entry->ino = inode->i_ino;
2383 	),
2384 
2385 	TP_printk("entry_name %s, offset %llu, bytes %d, cmdline %s,"
2386 		" pid %d, i_size %llu, ino %lu",
2387 		__get_str(pathbuf), __entry->offset, __entry->bytes,
2388 		__get_str(cmdline), __entry->pid, __entry->i_size,
2389 		(unsigned long) __entry->ino)
2390 );
2391 
2392 DECLARE_EVENT_CLASS(f2fs__rw_end,
2393 
2394 	TP_PROTO(struct inode *inode, loff_t offset, int bytes),
2395 
2396 	TP_ARGS(inode, offset, bytes),
2397 
2398 	TP_STRUCT__entry(
2399 		__field(ino_t,	ino)
2400 		__field(loff_t,	offset)
2401 		__field(int,	bytes)
2402 	),
2403 
2404 	TP_fast_assign(
2405 		__entry->ino		= inode->i_ino;
2406 		__entry->offset		= offset;
2407 		__entry->bytes		= bytes;
2408 	),
2409 
2410 	TP_printk("ino %lu, offset %llu, bytes %d",
2411 		(unsigned long) __entry->ino,
2412 		__entry->offset, __entry->bytes)
2413 );
2414 
2415 DEFINE_EVENT(f2fs__rw_start, f2fs_dataread_start,
2416 
2417 	TP_PROTO(struct inode *inode, loff_t offset, int bytes,
2418 		pid_t pid, char *pathname, char *command),
2419 
2420 	TP_ARGS(inode, offset, bytes, pid, pathname, command)
2421 );
2422 
2423 DEFINE_EVENT(f2fs__rw_end, f2fs_dataread_end,
2424 
2425 	TP_PROTO(struct inode *inode, loff_t offset, int bytes),
2426 
2427 	TP_ARGS(inode, offset, bytes)
2428 );
2429 
2430 DEFINE_EVENT(f2fs__rw_start, f2fs_datawrite_start,
2431 
2432 	TP_PROTO(struct inode *inode, loff_t offset, int bytes,
2433 		pid_t pid, char *pathname, char *command),
2434 
2435 	TP_ARGS(inode, offset, bytes, pid, pathname, command)
2436 );
2437 
2438 DEFINE_EVENT(f2fs__rw_end, f2fs_datawrite_end,
2439 
2440 	TP_PROTO(struct inode *inode, loff_t offset, int bytes),
2441 
2442 	TP_ARGS(inode, offset, bytes)
2443 );
2444 
2445 #endif /* _TRACE_F2FS_H */
2446 
2447  /* This part must be outside protection */
2448 #include <trace/define_trace.h>
2449