.. | .. |
---|
12 | 12 | #include <linux/tracepoint.h> |
---|
13 | 13 | #include "xfs_bit.h" |
---|
14 | 14 | |
---|
| 15 | +/* |
---|
| 16 | + * ftrace's __print_symbolic requires that all enum values be wrapped in the |
---|
| 17 | + * TRACE_DEFINE_ENUM macro so that the enum value can be encoded in the ftrace |
---|
| 18 | + * ring buffer. Somehow this was only worth mentioning in the ftrace sample |
---|
| 19 | + * code. |
---|
| 20 | + */ |
---|
| 21 | +TRACE_DEFINE_ENUM(XFS_BTNUM_BNOi); |
---|
| 22 | +TRACE_DEFINE_ENUM(XFS_BTNUM_CNTi); |
---|
| 23 | +TRACE_DEFINE_ENUM(XFS_BTNUM_BMAPi); |
---|
| 24 | +TRACE_DEFINE_ENUM(XFS_BTNUM_INOi); |
---|
| 25 | +TRACE_DEFINE_ENUM(XFS_BTNUM_FINOi); |
---|
| 26 | +TRACE_DEFINE_ENUM(XFS_BTNUM_RMAPi); |
---|
| 27 | +TRACE_DEFINE_ENUM(XFS_BTNUM_REFCi); |
---|
| 28 | + |
---|
| 29 | +TRACE_DEFINE_ENUM(XFS_SCRUB_TYPE_PROBE); |
---|
| 30 | +TRACE_DEFINE_ENUM(XFS_SCRUB_TYPE_SB); |
---|
| 31 | +TRACE_DEFINE_ENUM(XFS_SCRUB_TYPE_AGF); |
---|
| 32 | +TRACE_DEFINE_ENUM(XFS_SCRUB_TYPE_AGFL); |
---|
| 33 | +TRACE_DEFINE_ENUM(XFS_SCRUB_TYPE_AGI); |
---|
| 34 | +TRACE_DEFINE_ENUM(XFS_SCRUB_TYPE_BNOBT); |
---|
| 35 | +TRACE_DEFINE_ENUM(XFS_SCRUB_TYPE_CNTBT); |
---|
| 36 | +TRACE_DEFINE_ENUM(XFS_SCRUB_TYPE_INOBT); |
---|
| 37 | +TRACE_DEFINE_ENUM(XFS_SCRUB_TYPE_FINOBT); |
---|
| 38 | +TRACE_DEFINE_ENUM(XFS_SCRUB_TYPE_RMAPBT); |
---|
| 39 | +TRACE_DEFINE_ENUM(XFS_SCRUB_TYPE_REFCNTBT); |
---|
| 40 | +TRACE_DEFINE_ENUM(XFS_SCRUB_TYPE_INODE); |
---|
| 41 | +TRACE_DEFINE_ENUM(XFS_SCRUB_TYPE_BMBTD); |
---|
| 42 | +TRACE_DEFINE_ENUM(XFS_SCRUB_TYPE_BMBTA); |
---|
| 43 | +TRACE_DEFINE_ENUM(XFS_SCRUB_TYPE_BMBTC); |
---|
| 44 | +TRACE_DEFINE_ENUM(XFS_SCRUB_TYPE_DIR); |
---|
| 45 | +TRACE_DEFINE_ENUM(XFS_SCRUB_TYPE_XATTR); |
---|
| 46 | +TRACE_DEFINE_ENUM(XFS_SCRUB_TYPE_SYMLINK); |
---|
| 47 | +TRACE_DEFINE_ENUM(XFS_SCRUB_TYPE_PARENT); |
---|
| 48 | +TRACE_DEFINE_ENUM(XFS_SCRUB_TYPE_RTBITMAP); |
---|
| 49 | +TRACE_DEFINE_ENUM(XFS_SCRUB_TYPE_RTSUM); |
---|
| 50 | +TRACE_DEFINE_ENUM(XFS_SCRUB_TYPE_UQUOTA); |
---|
| 51 | +TRACE_DEFINE_ENUM(XFS_SCRUB_TYPE_GQUOTA); |
---|
| 52 | +TRACE_DEFINE_ENUM(XFS_SCRUB_TYPE_PQUOTA); |
---|
| 53 | +TRACE_DEFINE_ENUM(XFS_SCRUB_TYPE_FSCOUNTERS); |
---|
| 54 | + |
---|
| 55 | +#define XFS_SCRUB_TYPE_STRINGS \ |
---|
| 56 | + { XFS_SCRUB_TYPE_PROBE, "probe" }, \ |
---|
| 57 | + { XFS_SCRUB_TYPE_SB, "sb" }, \ |
---|
| 58 | + { XFS_SCRUB_TYPE_AGF, "agf" }, \ |
---|
| 59 | + { XFS_SCRUB_TYPE_AGFL, "agfl" }, \ |
---|
| 60 | + { XFS_SCRUB_TYPE_AGI, "agi" }, \ |
---|
| 61 | + { XFS_SCRUB_TYPE_BNOBT, "bnobt" }, \ |
---|
| 62 | + { XFS_SCRUB_TYPE_CNTBT, "cntbt" }, \ |
---|
| 63 | + { XFS_SCRUB_TYPE_INOBT, "inobt" }, \ |
---|
| 64 | + { XFS_SCRUB_TYPE_FINOBT, "finobt" }, \ |
---|
| 65 | + { XFS_SCRUB_TYPE_RMAPBT, "rmapbt" }, \ |
---|
| 66 | + { XFS_SCRUB_TYPE_REFCNTBT, "refcountbt" }, \ |
---|
| 67 | + { XFS_SCRUB_TYPE_INODE, "inode" }, \ |
---|
| 68 | + { XFS_SCRUB_TYPE_BMBTD, "bmapbtd" }, \ |
---|
| 69 | + { XFS_SCRUB_TYPE_BMBTA, "bmapbta" }, \ |
---|
| 70 | + { XFS_SCRUB_TYPE_BMBTC, "bmapbtc" }, \ |
---|
| 71 | + { XFS_SCRUB_TYPE_DIR, "directory" }, \ |
---|
| 72 | + { XFS_SCRUB_TYPE_XATTR, "xattr" }, \ |
---|
| 73 | + { XFS_SCRUB_TYPE_SYMLINK, "symlink" }, \ |
---|
| 74 | + { XFS_SCRUB_TYPE_PARENT, "parent" }, \ |
---|
| 75 | + { XFS_SCRUB_TYPE_RTBITMAP, "rtbitmap" }, \ |
---|
| 76 | + { XFS_SCRUB_TYPE_RTSUM, "rtsummary" }, \ |
---|
| 77 | + { XFS_SCRUB_TYPE_UQUOTA, "usrquota" }, \ |
---|
| 78 | + { XFS_SCRUB_TYPE_GQUOTA, "grpquota" }, \ |
---|
| 79 | + { XFS_SCRUB_TYPE_PQUOTA, "prjquota" }, \ |
---|
| 80 | + { XFS_SCRUB_TYPE_FSCOUNTERS, "fscounters" } |
---|
| 81 | + |
---|
15 | 82 | DECLARE_EVENT_CLASS(xchk_class, |
---|
16 | 83 | TP_PROTO(struct xfs_inode *ip, struct xfs_scrub_metadata *sm, |
---|
17 | 84 | int error), |
---|
.. | .. |
---|
36 | 103 | __entry->flags = sm->sm_flags; |
---|
37 | 104 | __entry->error = error; |
---|
38 | 105 | ), |
---|
39 | | - TP_printk("dev %d:%d ino 0x%llx type %u agno %u inum %llu gen %u flags 0x%x error %d", |
---|
| 106 | + TP_printk("dev %d:%d ino 0x%llx type %s agno %u inum %llu gen %u flags 0x%x error %d", |
---|
40 | 107 | MAJOR(__entry->dev), MINOR(__entry->dev), |
---|
41 | 108 | __entry->ino, |
---|
42 | | - __entry->type, |
---|
| 109 | + __print_symbolic(__entry->type, XFS_SCRUB_TYPE_STRINGS), |
---|
43 | 110 | __entry->agno, |
---|
44 | 111 | __entry->inum, |
---|
45 | 112 | __entry->gen, |
---|
.. | .. |
---|
78 | 145 | __entry->error = error; |
---|
79 | 146 | __entry->ret_ip = ret_ip; |
---|
80 | 147 | ), |
---|
81 | | - TP_printk("dev %d:%d type %u agno %u agbno %u error %d ret_ip %pS", |
---|
| 148 | + TP_printk("dev %d:%d type %s agno %u agbno %u error %d ret_ip %pS", |
---|
82 | 149 | MAJOR(__entry->dev), MINOR(__entry->dev), |
---|
83 | | - __entry->type, |
---|
| 150 | + __print_symbolic(__entry->type, XFS_SCRUB_TYPE_STRINGS), |
---|
84 | 151 | __entry->agno, |
---|
85 | 152 | __entry->bno, |
---|
86 | 153 | __entry->error, |
---|
.. | .. |
---|
109 | 176 | __entry->error = error; |
---|
110 | 177 | __entry->ret_ip = ret_ip; |
---|
111 | 178 | ), |
---|
112 | | - TP_printk("dev %d:%d ino 0x%llx fork %d type %u offset %llu error %d ret_ip %pS", |
---|
| 179 | + TP_printk("dev %d:%d ino 0x%llx fork %d type %s offset %llu error %d ret_ip %pS", |
---|
113 | 180 | MAJOR(__entry->dev), MINOR(__entry->dev), |
---|
114 | 181 | __entry->ino, |
---|
115 | 182 | __entry->whichfork, |
---|
116 | | - __entry->type, |
---|
| 183 | + __print_symbolic(__entry->type, XFS_SCRUB_TYPE_STRINGS), |
---|
117 | 184 | __entry->offset, |
---|
118 | 185 | __entry->error, |
---|
119 | 186 | __entry->ret_ip) |
---|
.. | .. |
---|
144 | 211 | __entry->bno = bno; |
---|
145 | 212 | __entry->ret_ip = ret_ip; |
---|
146 | 213 | ), |
---|
147 | | - TP_printk("dev %d:%d type %u agno %u agbno %u ret_ip %pS", |
---|
| 214 | + TP_printk("dev %d:%d type %s agno %u agbno %u ret_ip %pS", |
---|
148 | 215 | MAJOR(__entry->dev), MINOR(__entry->dev), |
---|
149 | | - __entry->type, |
---|
| 216 | + __print_symbolic(__entry->type, XFS_SCRUB_TYPE_STRINGS), |
---|
150 | 217 | __entry->agno, |
---|
151 | 218 | __entry->bno, |
---|
152 | 219 | __entry->ret_ip) |
---|
.. | .. |
---|
158 | 225 | void *ret_ip), \ |
---|
159 | 226 | TP_ARGS(sc, daddr, ret_ip)) |
---|
160 | 227 | |
---|
| 228 | +DEFINE_SCRUB_BLOCK_ERROR_EVENT(xchk_fs_error); |
---|
161 | 229 | DEFINE_SCRUB_BLOCK_ERROR_EVENT(xchk_block_error); |
---|
162 | 230 | DEFINE_SCRUB_BLOCK_ERROR_EVENT(xchk_block_preen); |
---|
163 | 231 | |
---|
.. | .. |
---|
176 | 244 | __entry->type = sc->sm->sm_type; |
---|
177 | 245 | __entry->ret_ip = ret_ip; |
---|
178 | 246 | ), |
---|
179 | | - TP_printk("dev %d:%d ino 0x%llx type %u ret_ip %pS", |
---|
| 247 | + TP_printk("dev %d:%d ino 0x%llx type %s ret_ip %pS", |
---|
180 | 248 | MAJOR(__entry->dev), MINOR(__entry->dev), |
---|
181 | 249 | __entry->ino, |
---|
182 | | - __entry->type, |
---|
| 250 | + __print_symbolic(__entry->type, XFS_SCRUB_TYPE_STRINGS), |
---|
183 | 251 | __entry->ret_ip) |
---|
184 | 252 | ) |
---|
185 | 253 | |
---|
.. | .. |
---|
213 | 281 | __entry->offset = offset; |
---|
214 | 282 | __entry->ret_ip = ret_ip; |
---|
215 | 283 | ), |
---|
216 | | - TP_printk("dev %d:%d ino 0x%llx fork %d type %u offset %llu ret_ip %pS", |
---|
| 284 | + TP_printk("dev %d:%d ino 0x%llx fork %d type %s offset %llu ret_ip %pS", |
---|
217 | 285 | MAJOR(__entry->dev), MINOR(__entry->dev), |
---|
218 | 286 | __entry->ino, |
---|
219 | 287 | __entry->whichfork, |
---|
220 | | - __entry->type, |
---|
| 288 | + __print_symbolic(__entry->type, XFS_SCRUB_TYPE_STRINGS), |
---|
221 | 289 | __entry->offset, |
---|
222 | 290 | __entry->ret_ip) |
---|
223 | 291 | ); |
---|
.. | .. |
---|
244 | 312 | __entry->type = sc->sm->sm_type; |
---|
245 | 313 | __entry->ret_ip = ret_ip; |
---|
246 | 314 | ), |
---|
247 | | - TP_printk("dev %d:%d type %u ret_ip %pS", |
---|
| 315 | + TP_printk("dev %d:%d type %s ret_ip %pS", |
---|
248 | 316 | MAJOR(__entry->dev), MINOR(__entry->dev), |
---|
249 | | - __entry->type, |
---|
| 317 | + __print_symbolic(__entry->type, XFS_SCRUB_TYPE_STRINGS), |
---|
250 | 318 | __entry->ret_ip) |
---|
251 | 319 | ); |
---|
252 | 320 | |
---|
.. | .. |
---|
261 | 329 | __field(int, level) |
---|
262 | 330 | __field(xfs_agnumber_t, agno) |
---|
263 | 331 | __field(xfs_agblock_t, bno) |
---|
264 | | - __field(int, ptr); |
---|
| 332 | + __field(int, ptr) |
---|
265 | 333 | __field(int, error) |
---|
266 | 334 | __field(void *, ret_ip) |
---|
267 | 335 | ), |
---|
.. | .. |
---|
278 | 346 | __entry->error = error; |
---|
279 | 347 | __entry->ret_ip = ret_ip; |
---|
280 | 348 | ), |
---|
281 | | - TP_printk("dev %d:%d type %u btnum %d level %d ptr %d agno %u agbno %u error %d ret_ip %pS", |
---|
| 349 | + TP_printk("dev %d:%d type %s btree %s level %d ptr %d agno %u agbno %u error %d ret_ip %pS", |
---|
282 | 350 | MAJOR(__entry->dev), MINOR(__entry->dev), |
---|
283 | | - __entry->type, |
---|
284 | | - __entry->btnum, |
---|
| 351 | + __print_symbolic(__entry->type, XFS_SCRUB_TYPE_STRINGS), |
---|
| 352 | + __print_symbolic(__entry->btnum, XFS_BTNUM_STRINGS), |
---|
285 | 353 | __entry->level, |
---|
286 | 354 | __entry->ptr, |
---|
287 | 355 | __entry->agno, |
---|
.. | .. |
---|
311 | 379 | xfs_fsblock_t fsbno = xchk_btree_cur_fsbno(cur, level); |
---|
312 | 380 | __entry->dev = sc->mp->m_super->s_dev; |
---|
313 | 381 | __entry->ino = sc->ip->i_ino; |
---|
314 | | - __entry->whichfork = cur->bc_private.b.whichfork; |
---|
| 382 | + __entry->whichfork = cur->bc_ino.whichfork; |
---|
315 | 383 | __entry->type = sc->sm->sm_type; |
---|
316 | 384 | __entry->btnum = cur->bc_btnum; |
---|
317 | 385 | __entry->level = level; |
---|
.. | .. |
---|
321 | 389 | __entry->error = error; |
---|
322 | 390 | __entry->ret_ip = ret_ip; |
---|
323 | 391 | ), |
---|
324 | | - TP_printk("dev %d:%d ino 0x%llx fork %d type %u btnum %d level %d ptr %d agno %u agbno %u error %d ret_ip %pS", |
---|
| 392 | + TP_printk("dev %d:%d ino 0x%llx fork %d type %s btree %s level %d ptr %d agno %u agbno %u error %d ret_ip %pS", |
---|
325 | 393 | MAJOR(__entry->dev), MINOR(__entry->dev), |
---|
326 | 394 | __entry->ino, |
---|
327 | 395 | __entry->whichfork, |
---|
328 | | - __entry->type, |
---|
329 | | - __entry->btnum, |
---|
| 396 | + __print_symbolic(__entry->type, XFS_SCRUB_TYPE_STRINGS), |
---|
| 397 | + __print_symbolic(__entry->btnum, XFS_BTNUM_STRINGS), |
---|
330 | 398 | __entry->level, |
---|
331 | 399 | __entry->ptr, |
---|
332 | 400 | __entry->agno, |
---|
.. | .. |
---|
346 | 414 | __field(int, level) |
---|
347 | 415 | __field(xfs_agnumber_t, agno) |
---|
348 | 416 | __field(xfs_agblock_t, bno) |
---|
349 | | - __field(int, ptr); |
---|
| 417 | + __field(int, ptr) |
---|
350 | 418 | __field(void *, ret_ip) |
---|
351 | 419 | ), |
---|
352 | 420 | TP_fast_assign( |
---|
.. | .. |
---|
360 | 428 | __entry->ptr = cur->bc_ptrs[level]; |
---|
361 | 429 | __entry->ret_ip = ret_ip; |
---|
362 | 430 | ), |
---|
363 | | - TP_printk("dev %d:%d type %u btnum %d level %d ptr %d agno %u agbno %u ret_ip %pS", |
---|
| 431 | + TP_printk("dev %d:%d type %s btree %s level %d ptr %d agno %u agbno %u ret_ip %pS", |
---|
364 | 432 | MAJOR(__entry->dev), MINOR(__entry->dev), |
---|
365 | | - __entry->type, |
---|
366 | | - __entry->btnum, |
---|
| 433 | + __print_symbolic(__entry->type, XFS_SCRUB_TYPE_STRINGS), |
---|
| 434 | + __print_symbolic(__entry->btnum, XFS_BTNUM_STRINGS), |
---|
367 | 435 | __entry->level, |
---|
368 | 436 | __entry->ptr, |
---|
369 | 437 | __entry->agno, |
---|
.. | .. |
---|
384 | 452 | __field(int, level) |
---|
385 | 453 | __field(xfs_agnumber_t, agno) |
---|
386 | 454 | __field(xfs_agblock_t, bno) |
---|
387 | | - __field(int, ptr); |
---|
| 455 | + __field(int, ptr) |
---|
388 | 456 | __field(void *, ret_ip) |
---|
389 | 457 | ), |
---|
390 | 458 | TP_fast_assign( |
---|
391 | 459 | xfs_fsblock_t fsbno = xchk_btree_cur_fsbno(cur, level); |
---|
392 | 460 | __entry->dev = sc->mp->m_super->s_dev; |
---|
393 | 461 | __entry->ino = sc->ip->i_ino; |
---|
394 | | - __entry->whichfork = cur->bc_private.b.whichfork; |
---|
| 462 | + __entry->whichfork = cur->bc_ino.whichfork; |
---|
395 | 463 | __entry->type = sc->sm->sm_type; |
---|
396 | 464 | __entry->btnum = cur->bc_btnum; |
---|
397 | 465 | __entry->level = level; |
---|
.. | .. |
---|
400 | 468 | __entry->ptr = cur->bc_ptrs[level]; |
---|
401 | 469 | __entry->ret_ip = ret_ip; |
---|
402 | 470 | ), |
---|
403 | | - TP_printk("dev %d:%d ino 0x%llx fork %d type %u btnum %d level %d ptr %d agno %u agbno %u ret_ip %pS", |
---|
| 471 | + TP_printk("dev %d:%d ino 0x%llx fork %d type %s btree %s level %d ptr %d agno %u agbno %u ret_ip %pS", |
---|
404 | 472 | MAJOR(__entry->dev), MINOR(__entry->dev), |
---|
405 | 473 | __entry->ino, |
---|
406 | 474 | __entry->whichfork, |
---|
407 | | - __entry->type, |
---|
408 | | - __entry->btnum, |
---|
| 475 | + __print_symbolic(__entry->type, XFS_SCRUB_TYPE_STRINGS), |
---|
| 476 | + __print_symbolic(__entry->btnum, XFS_BTNUM_STRINGS), |
---|
409 | 477 | __entry->level, |
---|
410 | 478 | __entry->ptr, |
---|
411 | 479 | __entry->agno, |
---|
.. | .. |
---|
439 | 507 | __entry->nlevels = cur->bc_nlevels; |
---|
440 | 508 | __entry->ptr = cur->bc_ptrs[level]; |
---|
441 | 509 | ), |
---|
442 | | - TP_printk("dev %d:%d type %u btnum %d agno %u agbno %u level %d nlevels %d ptr %d", |
---|
| 510 | + TP_printk("dev %d:%d type %s btree %s agno %u agbno %u level %d nlevels %d ptr %d", |
---|
443 | 511 | MAJOR(__entry->dev), MINOR(__entry->dev), |
---|
444 | | - __entry->type, |
---|
445 | | - __entry->btnum, |
---|
| 512 | + __print_symbolic(__entry->type, XFS_SCRUB_TYPE_STRINGS), |
---|
| 513 | + __print_symbolic(__entry->btnum, XFS_BTNUM_STRINGS), |
---|
446 | 514 | __entry->agno, |
---|
447 | 515 | __entry->bno, |
---|
448 | 516 | __entry->level, |
---|
.. | .. |
---|
473 | 541 | __entry->error = error; |
---|
474 | 542 | __entry->ret_ip = ret_ip; |
---|
475 | 543 | ), |
---|
476 | | - TP_printk("dev %d:%d type %u xref error %d ret_ip %pF", |
---|
| 544 | + TP_printk("dev %d:%d type %s xref error %d ret_ip %pS", |
---|
477 | 545 | MAJOR(__entry->dev), MINOR(__entry->dev), |
---|
478 | | - __entry->type, |
---|
| 546 | + __print_symbolic(__entry->type, XFS_SCRUB_TYPE_STRINGS), |
---|
479 | 547 | __entry->error, |
---|
480 | 548 | __entry->ret_ip) |
---|
481 | 549 | ); |
---|
| 550 | + |
---|
| 551 | +TRACE_EVENT(xchk_iallocbt_check_cluster, |
---|
| 552 | + TP_PROTO(struct xfs_mount *mp, xfs_agnumber_t agno, |
---|
| 553 | + xfs_agino_t startino, xfs_daddr_t map_daddr, |
---|
| 554 | + unsigned short map_len, unsigned int chunk_ino, |
---|
| 555 | + unsigned int nr_inodes, uint16_t cluster_mask, |
---|
| 556 | + uint16_t holemask, unsigned int cluster_ino), |
---|
| 557 | + TP_ARGS(mp, agno, startino, map_daddr, map_len, chunk_ino, nr_inodes, |
---|
| 558 | + cluster_mask, holemask, cluster_ino), |
---|
| 559 | + TP_STRUCT__entry( |
---|
| 560 | + __field(dev_t, dev) |
---|
| 561 | + __field(xfs_agnumber_t, agno) |
---|
| 562 | + __field(xfs_agino_t, startino) |
---|
| 563 | + __field(xfs_daddr_t, map_daddr) |
---|
| 564 | + __field(unsigned short, map_len) |
---|
| 565 | + __field(unsigned int, chunk_ino) |
---|
| 566 | + __field(unsigned int, nr_inodes) |
---|
| 567 | + __field(unsigned int, cluster_ino) |
---|
| 568 | + __field(uint16_t, cluster_mask) |
---|
| 569 | + __field(uint16_t, holemask) |
---|
| 570 | + ), |
---|
| 571 | + TP_fast_assign( |
---|
| 572 | + __entry->dev = mp->m_super->s_dev; |
---|
| 573 | + __entry->agno = agno; |
---|
| 574 | + __entry->startino = startino; |
---|
| 575 | + __entry->map_daddr = map_daddr; |
---|
| 576 | + __entry->map_len = map_len; |
---|
| 577 | + __entry->chunk_ino = chunk_ino; |
---|
| 578 | + __entry->nr_inodes = nr_inodes; |
---|
| 579 | + __entry->cluster_mask = cluster_mask; |
---|
| 580 | + __entry->holemask = holemask; |
---|
| 581 | + __entry->cluster_ino = cluster_ino; |
---|
| 582 | + ), |
---|
| 583 | + TP_printk("dev %d:%d agno %d startino %u daddr 0x%llx len %d chunkino %u nr_inodes %u cluster_mask 0x%x holemask 0x%x cluster_ino %u", |
---|
| 584 | + MAJOR(__entry->dev), MINOR(__entry->dev), |
---|
| 585 | + __entry->agno, |
---|
| 586 | + __entry->startino, |
---|
| 587 | + __entry->map_daddr, |
---|
| 588 | + __entry->map_len, |
---|
| 589 | + __entry->chunk_ino, |
---|
| 590 | + __entry->nr_inodes, |
---|
| 591 | + __entry->cluster_mask, |
---|
| 592 | + __entry->holemask, |
---|
| 593 | + __entry->cluster_ino) |
---|
| 594 | +) |
---|
| 595 | + |
---|
| 596 | +TRACE_EVENT(xchk_fscounters_calc, |
---|
| 597 | + TP_PROTO(struct xfs_mount *mp, uint64_t icount, uint64_t ifree, |
---|
| 598 | + uint64_t fdblocks, uint64_t delalloc), |
---|
| 599 | + TP_ARGS(mp, icount, ifree, fdblocks, delalloc), |
---|
| 600 | + TP_STRUCT__entry( |
---|
| 601 | + __field(dev_t, dev) |
---|
| 602 | + __field(int64_t, icount_sb) |
---|
| 603 | + __field(uint64_t, icount_calculated) |
---|
| 604 | + __field(int64_t, ifree_sb) |
---|
| 605 | + __field(uint64_t, ifree_calculated) |
---|
| 606 | + __field(int64_t, fdblocks_sb) |
---|
| 607 | + __field(uint64_t, fdblocks_calculated) |
---|
| 608 | + __field(uint64_t, delalloc) |
---|
| 609 | + ), |
---|
| 610 | + TP_fast_assign( |
---|
| 611 | + __entry->dev = mp->m_super->s_dev; |
---|
| 612 | + __entry->icount_sb = mp->m_sb.sb_icount; |
---|
| 613 | + __entry->icount_calculated = icount; |
---|
| 614 | + __entry->ifree_sb = mp->m_sb.sb_ifree; |
---|
| 615 | + __entry->ifree_calculated = ifree; |
---|
| 616 | + __entry->fdblocks_sb = mp->m_sb.sb_fdblocks; |
---|
| 617 | + __entry->fdblocks_calculated = fdblocks; |
---|
| 618 | + __entry->delalloc = delalloc; |
---|
| 619 | + ), |
---|
| 620 | + TP_printk("dev %d:%d icount %lld:%llu ifree %lld::%llu fdblocks %lld::%llu delalloc %llu", |
---|
| 621 | + MAJOR(__entry->dev), MINOR(__entry->dev), |
---|
| 622 | + __entry->icount_sb, |
---|
| 623 | + __entry->icount_calculated, |
---|
| 624 | + __entry->ifree_sb, |
---|
| 625 | + __entry->ifree_calculated, |
---|
| 626 | + __entry->fdblocks_sb, |
---|
| 627 | + __entry->fdblocks_calculated, |
---|
| 628 | + __entry->delalloc) |
---|
| 629 | +) |
---|
| 630 | + |
---|
| 631 | +TRACE_EVENT(xchk_fscounters_within_range, |
---|
| 632 | + TP_PROTO(struct xfs_mount *mp, uint64_t expected, int64_t curr_value, |
---|
| 633 | + int64_t old_value), |
---|
| 634 | + TP_ARGS(mp, expected, curr_value, old_value), |
---|
| 635 | + TP_STRUCT__entry( |
---|
| 636 | + __field(dev_t, dev) |
---|
| 637 | + __field(uint64_t, expected) |
---|
| 638 | + __field(int64_t, curr_value) |
---|
| 639 | + __field(int64_t, old_value) |
---|
| 640 | + ), |
---|
| 641 | + TP_fast_assign( |
---|
| 642 | + __entry->dev = mp->m_super->s_dev; |
---|
| 643 | + __entry->expected = expected; |
---|
| 644 | + __entry->curr_value = curr_value; |
---|
| 645 | + __entry->old_value = old_value; |
---|
| 646 | + ), |
---|
| 647 | + TP_printk("dev %d:%d expected %llu curr_value %lld old_value %lld", |
---|
| 648 | + MAJOR(__entry->dev), MINOR(__entry->dev), |
---|
| 649 | + __entry->expected, |
---|
| 650 | + __entry->curr_value, |
---|
| 651 | + __entry->old_value) |
---|
| 652 | +) |
---|
482 | 653 | |
---|
483 | 654 | /* repair tracepoints */ |
---|
484 | 655 | #if IS_ENABLED(CONFIG_XFS_ONLINE_REPAIR) |
---|
.. | .. |
---|
598 | 769 | __entry->agbno = agbno; |
---|
599 | 770 | __entry->btnum = btnum; |
---|
600 | 771 | ), |
---|
601 | | - TP_printk("dev %d:%d agno %u agbno %u btnum %d", |
---|
| 772 | + TP_printk("dev %d:%d agno %u agbno %u btree %s", |
---|
602 | 773 | MAJOR(__entry->dev), MINOR(__entry->dev), |
---|
603 | 774 | __entry->agno, |
---|
604 | 775 | __entry->agbno, |
---|
605 | | - __entry->btnum) |
---|
| 776 | + __print_symbolic(__entry->btnum, XFS_BTNUM_STRINGS)) |
---|
606 | 777 | ) |
---|
607 | 778 | TRACE_EVENT(xrep_findroot_block, |
---|
608 | 779 | TP_PROTO(struct xfs_mount *mp, xfs_agnumber_t agno, xfs_agblock_t agbno, |
---|