aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDarrick J. Wong <darrick.wong@oracle.com>2018-12-18 17:32:31 -0500
committerDarrick J. Wong <darrick.wong@oracle.com>2018-12-19 17:02:01 -0500
commit86d163dbfe2ac0b30fbb6e256301abbfa9e4549e (patch)
tree04a640b95c96ddac690346770e5e9ae0b086690b
parentc494213f30080423b70b24b6af7f6da554d9390f (diff)
xfs: stringify scrub types in ftrace output
Use __print_symbolic to print the scrub type in ftrace output. Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com> Reviewed-by: Eric Sandeen <sandeen@redhat.com>
-rw-r--r--fs/xfs/libxfs/xfs_types.h4
-rw-r--r--fs/xfs/scrub/trace.h103
2 files changed, 79 insertions, 28 deletions
diff --git a/fs/xfs/libxfs/xfs_types.h b/fs/xfs/libxfs/xfs_types.h
index 75dfa974172b..8f02855a019a 100644
--- a/fs/xfs/libxfs/xfs_types.h
+++ b/fs/xfs/libxfs/xfs_types.h
@@ -114,8 +114,8 @@ typedef enum {
114 { XFS_LOOKUP_GEi, "ge" } 114 { XFS_LOOKUP_GEi, "ge" }
115 115
116/* 116/*
117 * This enum is used in string mapping in xfs_trace.h; please keep the 117 * This enum is used in string mapping in xfs_trace.h and scrub/trace.h;
118 * TRACE_DEFINE_ENUMs for it up to date. 118 * please keep the TRACE_DEFINE_ENUMs for it up to date.
119 */ 119 */
120typedef enum { 120typedef enum {
121 XFS_BTNUM_BNOi, XFS_BTNUM_CNTi, XFS_BTNUM_RMAPi, XFS_BTNUM_BMAPi, 121 XFS_BTNUM_BNOi, XFS_BTNUM_CNTi, XFS_BTNUM_RMAPi, XFS_BTNUM_BMAPi,
diff --git a/fs/xfs/scrub/trace.h b/fs/xfs/scrub/trace.h
index 2f23b10cdc71..8344b14031ef 100644
--- a/fs/xfs/scrub/trace.h
+++ b/fs/xfs/scrub/trace.h
@@ -26,6 +26,57 @@ TRACE_DEFINE_ENUM(XFS_BTNUM_FINOi);
26TRACE_DEFINE_ENUM(XFS_BTNUM_RMAPi); 26TRACE_DEFINE_ENUM(XFS_BTNUM_RMAPi);
27TRACE_DEFINE_ENUM(XFS_BTNUM_REFCi); 27TRACE_DEFINE_ENUM(XFS_BTNUM_REFCi);
28 28
29TRACE_DEFINE_ENUM(XFS_SCRUB_TYPE_PROBE);
30TRACE_DEFINE_ENUM(XFS_SCRUB_TYPE_SB);
31TRACE_DEFINE_ENUM(XFS_SCRUB_TYPE_AGF);
32TRACE_DEFINE_ENUM(XFS_SCRUB_TYPE_AGFL);
33TRACE_DEFINE_ENUM(XFS_SCRUB_TYPE_AGI);
34TRACE_DEFINE_ENUM(XFS_SCRUB_TYPE_BNOBT);
35TRACE_DEFINE_ENUM(XFS_SCRUB_TYPE_CNTBT);
36TRACE_DEFINE_ENUM(XFS_SCRUB_TYPE_INOBT);
37TRACE_DEFINE_ENUM(XFS_SCRUB_TYPE_FINOBT);
38TRACE_DEFINE_ENUM(XFS_SCRUB_TYPE_RMAPBT);
39TRACE_DEFINE_ENUM(XFS_SCRUB_TYPE_REFCNTBT);
40TRACE_DEFINE_ENUM(XFS_SCRUB_TYPE_INODE);
41TRACE_DEFINE_ENUM(XFS_SCRUB_TYPE_BMBTD);
42TRACE_DEFINE_ENUM(XFS_SCRUB_TYPE_BMBTA);
43TRACE_DEFINE_ENUM(XFS_SCRUB_TYPE_BMBTC);
44TRACE_DEFINE_ENUM(XFS_SCRUB_TYPE_DIR);
45TRACE_DEFINE_ENUM(XFS_SCRUB_TYPE_XATTR);
46TRACE_DEFINE_ENUM(XFS_SCRUB_TYPE_SYMLINK);
47TRACE_DEFINE_ENUM(XFS_SCRUB_TYPE_PARENT);
48TRACE_DEFINE_ENUM(XFS_SCRUB_TYPE_RTBITMAP);
49TRACE_DEFINE_ENUM(XFS_SCRUB_TYPE_RTSUM);
50TRACE_DEFINE_ENUM(XFS_SCRUB_TYPE_UQUOTA);
51TRACE_DEFINE_ENUM(XFS_SCRUB_TYPE_GQUOTA);
52TRACE_DEFINE_ENUM(XFS_SCRUB_TYPE_PQUOTA);
53
54#define XFS_SCRUB_TYPE_STRINGS \
55 { XFS_SCRUB_TYPE_PROBE, "probe" }, \
56 { XFS_SCRUB_TYPE_SB, "sb" }, \
57 { XFS_SCRUB_TYPE_AGF, "agf" }, \
58 { XFS_SCRUB_TYPE_AGFL, "agfl" }, \
59 { XFS_SCRUB_TYPE_AGI, "agi" }, \
60 { XFS_SCRUB_TYPE_BNOBT, "bnobt" }, \
61 { XFS_SCRUB_TYPE_CNTBT, "cntbt" }, \
62 { XFS_SCRUB_TYPE_INOBT, "inobt" }, \
63 { XFS_SCRUB_TYPE_FINOBT, "finobt" }, \
64 { XFS_SCRUB_TYPE_RMAPBT, "rmapbt" }, \
65 { XFS_SCRUB_TYPE_REFCNTBT, "refcountbt" }, \
66 { XFS_SCRUB_TYPE_INODE, "inode" }, \
67 { XFS_SCRUB_TYPE_BMBTD, "bmapbtd" }, \
68 { XFS_SCRUB_TYPE_BMBTA, "bmapbta" }, \
69 { XFS_SCRUB_TYPE_BMBTC, "bmapbtc" }, \
70 { XFS_SCRUB_TYPE_DIR, "directory" }, \
71 { XFS_SCRUB_TYPE_XATTR, "xattr" }, \
72 { XFS_SCRUB_TYPE_SYMLINK, "symlink" }, \
73 { XFS_SCRUB_TYPE_PARENT, "parent" }, \
74 { XFS_SCRUB_TYPE_RTBITMAP, "rtbitmap" }, \
75 { XFS_SCRUB_TYPE_RTSUM, "rtsummary" }, \
76 { XFS_SCRUB_TYPE_UQUOTA, "usrquota" }, \
77 { XFS_SCRUB_TYPE_GQUOTA, "grpquota" }, \
78 { XFS_SCRUB_TYPE_PQUOTA, "prjquota" }
79
29DECLARE_EVENT_CLASS(xchk_class, 80DECLARE_EVENT_CLASS(xchk_class,
30 TP_PROTO(struct xfs_inode *ip, struct xfs_scrub_metadata *sm, 81 TP_PROTO(struct xfs_inode *ip, struct xfs_scrub_metadata *sm,
31 int error), 82 int error),
@@ -50,10 +101,10 @@ DECLARE_EVENT_CLASS(xchk_class,
50 __entry->flags = sm->sm_flags; 101 __entry->flags = sm->sm_flags;
51 __entry->error = error; 102 __entry->error = error;
52 ), 103 ),
53 TP_printk("dev %d:%d ino 0x%llx type %u agno %u inum %llu gen %u flags 0x%x error %d", 104 TP_printk("dev %d:%d ino 0x%llx type %s agno %u inum %llu gen %u flags 0x%x error %d",
54 MAJOR(__entry->dev), MINOR(__entry->dev), 105 MAJOR(__entry->dev), MINOR(__entry->dev),
55 __entry->ino, 106 __entry->ino,
56 __entry->type, 107 __print_symbolic(__entry->type, XFS_SCRUB_TYPE_STRINGS),
57 __entry->agno, 108 __entry->agno,
58 __entry->inum, 109 __entry->inum,
59 __entry->gen, 110 __entry->gen,
@@ -92,9 +143,9 @@ TRACE_EVENT(xchk_op_error,
92 __entry->error = error; 143 __entry->error = error;
93 __entry->ret_ip = ret_ip; 144 __entry->ret_ip = ret_ip;
94 ), 145 ),
95 TP_printk("dev %d:%d type %u agno %u agbno %u error %d ret_ip %pS", 146 TP_printk("dev %d:%d type %s agno %u agbno %u error %d ret_ip %pS",
96 MAJOR(__entry->dev), MINOR(__entry->dev), 147 MAJOR(__entry->dev), MINOR(__entry->dev),
97 __entry->type, 148 __print_symbolic(__entry->type, XFS_SCRUB_TYPE_STRINGS),
98 __entry->agno, 149 __entry->agno,
99 __entry->bno, 150 __entry->bno,
100 __entry->error, 151 __entry->error,
@@ -123,11 +174,11 @@ TRACE_EVENT(xchk_file_op_error,
123 __entry->error = error; 174 __entry->error = error;
124 __entry->ret_ip = ret_ip; 175 __entry->ret_ip = ret_ip;
125 ), 176 ),
126 TP_printk("dev %d:%d ino 0x%llx fork %d type %u offset %llu error %d ret_ip %pS", 177 TP_printk("dev %d:%d ino 0x%llx fork %d type %s offset %llu error %d ret_ip %pS",
127 MAJOR(__entry->dev), MINOR(__entry->dev), 178 MAJOR(__entry->dev), MINOR(__entry->dev),
128 __entry->ino, 179 __entry->ino,
129 __entry->whichfork, 180 __entry->whichfork,
130 __entry->type, 181 __print_symbolic(__entry->type, XFS_SCRUB_TYPE_STRINGS),
131 __entry->offset, 182 __entry->offset,
132 __entry->error, 183 __entry->error,
133 __entry->ret_ip) 184 __entry->ret_ip)
@@ -158,9 +209,9 @@ DECLARE_EVENT_CLASS(xchk_block_error_class,
158 __entry->bno = bno; 209 __entry->bno = bno;
159 __entry->ret_ip = ret_ip; 210 __entry->ret_ip = ret_ip;
160 ), 211 ),
161 TP_printk("dev %d:%d type %u agno %u agbno %u ret_ip %pS", 212 TP_printk("dev %d:%d type %s agno %u agbno %u ret_ip %pS",
162 MAJOR(__entry->dev), MINOR(__entry->dev), 213 MAJOR(__entry->dev), MINOR(__entry->dev),
163 __entry->type, 214 __print_symbolic(__entry->type, XFS_SCRUB_TYPE_STRINGS),
164 __entry->agno, 215 __entry->agno,
165 __entry->bno, 216 __entry->bno,
166 __entry->ret_ip) 217 __entry->ret_ip)
@@ -190,10 +241,10 @@ DECLARE_EVENT_CLASS(xchk_ino_error_class,
190 __entry->type = sc->sm->sm_type; 241 __entry->type = sc->sm->sm_type;
191 __entry->ret_ip = ret_ip; 242 __entry->ret_ip = ret_ip;
192 ), 243 ),
193 TP_printk("dev %d:%d ino 0x%llx type %u ret_ip %pS", 244 TP_printk("dev %d:%d ino 0x%llx type %s ret_ip %pS",
194 MAJOR(__entry->dev), MINOR(__entry->dev), 245 MAJOR(__entry->dev), MINOR(__entry->dev),
195 __entry->ino, 246 __entry->ino,
196 __entry->type, 247 __print_symbolic(__entry->type, XFS_SCRUB_TYPE_STRINGS),
197 __entry->ret_ip) 248 __entry->ret_ip)
198) 249)
199 250
@@ -227,11 +278,11 @@ DECLARE_EVENT_CLASS(xchk_fblock_error_class,
227 __entry->offset = offset; 278 __entry->offset = offset;
228 __entry->ret_ip = ret_ip; 279 __entry->ret_ip = ret_ip;
229 ), 280 ),
230 TP_printk("dev %d:%d ino 0x%llx fork %d type %u offset %llu ret_ip %pS", 281 TP_printk("dev %d:%d ino 0x%llx fork %d type %s offset %llu ret_ip %pS",
231 MAJOR(__entry->dev), MINOR(__entry->dev), 282 MAJOR(__entry->dev), MINOR(__entry->dev),
232 __entry->ino, 283 __entry->ino,
233 __entry->whichfork, 284 __entry->whichfork,
234 __entry->type, 285 __print_symbolic(__entry->type, XFS_SCRUB_TYPE_STRINGS),
235 __entry->offset, 286 __entry->offset,
236 __entry->ret_ip) 287 __entry->ret_ip)
237); 288);
@@ -258,9 +309,9 @@ TRACE_EVENT(xchk_incomplete,
258 __entry->type = sc->sm->sm_type; 309 __entry->type = sc->sm->sm_type;
259 __entry->ret_ip = ret_ip; 310 __entry->ret_ip = ret_ip;
260 ), 311 ),
261 TP_printk("dev %d:%d type %u ret_ip %pS", 312 TP_printk("dev %d:%d type %s ret_ip %pS",
262 MAJOR(__entry->dev), MINOR(__entry->dev), 313 MAJOR(__entry->dev), MINOR(__entry->dev),
263 __entry->type, 314 __print_symbolic(__entry->type, XFS_SCRUB_TYPE_STRINGS),
264 __entry->ret_ip) 315 __entry->ret_ip)
265); 316);
266 317
@@ -292,9 +343,9 @@ TRACE_EVENT(xchk_btree_op_error,
292 __entry->error = error; 343 __entry->error = error;
293 __entry->ret_ip = ret_ip; 344 __entry->ret_ip = ret_ip;
294 ), 345 ),
295 TP_printk("dev %d:%d type %u btree %s level %d ptr %d agno %u agbno %u error %d ret_ip %pS", 346 TP_printk("dev %d:%d type %s btree %s level %d ptr %d agno %u agbno %u error %d ret_ip %pS",
296 MAJOR(__entry->dev), MINOR(__entry->dev), 347 MAJOR(__entry->dev), MINOR(__entry->dev),
297 __entry->type, 348 __print_symbolic(__entry->type, XFS_SCRUB_TYPE_STRINGS),
298 __print_symbolic(__entry->btnum, XFS_BTNUM_STRINGS), 349 __print_symbolic(__entry->btnum, XFS_BTNUM_STRINGS),
299 __entry->level, 350 __entry->level,
300 __entry->ptr, 351 __entry->ptr,
@@ -335,11 +386,11 @@ TRACE_EVENT(xchk_ifork_btree_op_error,
335 __entry->error = error; 386 __entry->error = error;
336 __entry->ret_ip = ret_ip; 387 __entry->ret_ip = ret_ip;
337 ), 388 ),
338 TP_printk("dev %d:%d ino 0x%llx fork %d type %u btree %s level %d ptr %d agno %u agbno %u error %d ret_ip %pS", 389 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",
339 MAJOR(__entry->dev), MINOR(__entry->dev), 390 MAJOR(__entry->dev), MINOR(__entry->dev),
340 __entry->ino, 391 __entry->ino,
341 __entry->whichfork, 392 __entry->whichfork,
342 __entry->type, 393 __print_symbolic(__entry->type, XFS_SCRUB_TYPE_STRINGS),
343 __print_symbolic(__entry->btnum, XFS_BTNUM_STRINGS), 394 __print_symbolic(__entry->btnum, XFS_BTNUM_STRINGS),
344 __entry->level, 395 __entry->level,
345 __entry->ptr, 396 __entry->ptr,
@@ -374,9 +425,9 @@ TRACE_EVENT(xchk_btree_error,
374 __entry->ptr = cur->bc_ptrs[level]; 425 __entry->ptr = cur->bc_ptrs[level];
375 __entry->ret_ip = ret_ip; 426 __entry->ret_ip = ret_ip;
376 ), 427 ),
377 TP_printk("dev %d:%d type %u btree %s level %d ptr %d agno %u agbno %u ret_ip %pS", 428 TP_printk("dev %d:%d type %s btree %s level %d ptr %d agno %u agbno %u ret_ip %pS",
378 MAJOR(__entry->dev), MINOR(__entry->dev), 429 MAJOR(__entry->dev), MINOR(__entry->dev),
379 __entry->type, 430 __print_symbolic(__entry->type, XFS_SCRUB_TYPE_STRINGS),
380 __print_symbolic(__entry->btnum, XFS_BTNUM_STRINGS), 431 __print_symbolic(__entry->btnum, XFS_BTNUM_STRINGS),
381 __entry->level, 432 __entry->level,
382 __entry->ptr, 433 __entry->ptr,
@@ -414,11 +465,11 @@ TRACE_EVENT(xchk_ifork_btree_error,
414 __entry->ptr = cur->bc_ptrs[level]; 465 __entry->ptr = cur->bc_ptrs[level];
415 __entry->ret_ip = ret_ip; 466 __entry->ret_ip = ret_ip;
416 ), 467 ),
417 TP_printk("dev %d:%d ino 0x%llx fork %d type %u btree %s level %d ptr %d agno %u agbno %u ret_ip %pS", 468 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",
418 MAJOR(__entry->dev), MINOR(__entry->dev), 469 MAJOR(__entry->dev), MINOR(__entry->dev),
419 __entry->ino, 470 __entry->ino,
420 __entry->whichfork, 471 __entry->whichfork,
421 __entry->type, 472 __print_symbolic(__entry->type, XFS_SCRUB_TYPE_STRINGS),
422 __print_symbolic(__entry->btnum, XFS_BTNUM_STRINGS), 473 __print_symbolic(__entry->btnum, XFS_BTNUM_STRINGS),
423 __entry->level, 474 __entry->level,
424 __entry->ptr, 475 __entry->ptr,
@@ -453,9 +504,9 @@ DECLARE_EVENT_CLASS(xchk_sbtree_class,
453 __entry->nlevels = cur->bc_nlevels; 504 __entry->nlevels = cur->bc_nlevels;
454 __entry->ptr = cur->bc_ptrs[level]; 505 __entry->ptr = cur->bc_ptrs[level];
455 ), 506 ),
456 TP_printk("dev %d:%d type %u btree %s agno %u agbno %u level %d nlevels %d ptr %d", 507 TP_printk("dev %d:%d type %s btree %s agno %u agbno %u level %d nlevels %d ptr %d",
457 MAJOR(__entry->dev), MINOR(__entry->dev), 508 MAJOR(__entry->dev), MINOR(__entry->dev),
458 __entry->type, 509 __print_symbolic(__entry->type, XFS_SCRUB_TYPE_STRINGS),
459 __print_symbolic(__entry->btnum, XFS_BTNUM_STRINGS), 510 __print_symbolic(__entry->btnum, XFS_BTNUM_STRINGS),
460 __entry->agno, 511 __entry->agno,
461 __entry->bno, 512 __entry->bno,
@@ -487,9 +538,9 @@ TRACE_EVENT(xchk_xref_error,
487 __entry->error = error; 538 __entry->error = error;
488 __entry->ret_ip = ret_ip; 539 __entry->ret_ip = ret_ip;
489 ), 540 ),
490 TP_printk("dev %d:%d type %u xref error %d ret_ip %pS", 541 TP_printk("dev %d:%d type %s xref error %d ret_ip %pS",
491 MAJOR(__entry->dev), MINOR(__entry->dev), 542 MAJOR(__entry->dev), MINOR(__entry->dev),
492 __entry->type, 543 __print_symbolic(__entry->type, XFS_SCRUB_TYPE_STRINGS),
493 __entry->error, 544 __entry->error,
494 __entry->ret_ip) 545 __entry->ret_ip)
495); 546);