diff options
author | Darrick J. Wong <darrick.wong@oracle.com> | 2018-12-18 17:32:31 -0500 |
---|---|---|
committer | Darrick J. Wong <darrick.wong@oracle.com> | 2018-12-19 17:02:01 -0500 |
commit | c494213f30080423b70b24b6af7f6da554d9390f (patch) | |
tree | 43e2f54fd186738f3440a97868e1c4cf87667bcd | |
parent | 0357d21a6c9be2870904598b4767c7d424524849 (diff) |
xfs: stringify btree cursor types in ftrace output
Use __print_symbolic to print the btree 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.h | 13 | ||||
-rw-r--r-- | fs/xfs/scrub/trace.h | 38 | ||||
-rw-r--r-- | fs/xfs/xfs_trace.h | 12 |
3 files changed, 49 insertions, 14 deletions
diff --git a/fs/xfs/libxfs/xfs_types.h b/fs/xfs/libxfs/xfs_types.h index 6da6ce7ab5d2..75dfa974172b 100644 --- a/fs/xfs/libxfs/xfs_types.h +++ b/fs/xfs/libxfs/xfs_types.h | |||
@@ -113,11 +113,24 @@ typedef enum { | |||
113 | { XFS_LOOKUP_LEi, "le" }, \ | 113 | { XFS_LOOKUP_LEi, "le" }, \ |
114 | { XFS_LOOKUP_GEi, "ge" } | 114 | { XFS_LOOKUP_GEi, "ge" } |
115 | 115 | ||
116 | /* | ||
117 | * This enum is used in string mapping in xfs_trace.h; please keep the | ||
118 | * TRACE_DEFINE_ENUMs for it up to date. | ||
119 | */ | ||
116 | typedef enum { | 120 | typedef enum { |
117 | 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, |
118 | XFS_BTNUM_INOi, XFS_BTNUM_FINOi, XFS_BTNUM_REFCi, XFS_BTNUM_MAX | 122 | XFS_BTNUM_INOi, XFS_BTNUM_FINOi, XFS_BTNUM_REFCi, XFS_BTNUM_MAX |
119 | } xfs_btnum_t; | 123 | } xfs_btnum_t; |
120 | 124 | ||
125 | #define XFS_BTNUM_STRINGS \ | ||
126 | { XFS_BTNUM_BNOi, "bnobt" }, \ | ||
127 | { XFS_BTNUM_CNTi, "cntbt" }, \ | ||
128 | { XFS_BTNUM_RMAPi, "rmapbt" }, \ | ||
129 | { XFS_BTNUM_BMAPi, "bmbt" }, \ | ||
130 | { XFS_BTNUM_INOi, "inobt" }, \ | ||
131 | { XFS_BTNUM_FINOi, "finobt" }, \ | ||
132 | { XFS_BTNUM_REFCi, "refcbt" } | ||
133 | |||
121 | struct xfs_name { | 134 | struct xfs_name { |
122 | const unsigned char *name; | 135 | const unsigned char *name; |
123 | int len; | 136 | int len; |
diff --git a/fs/xfs/scrub/trace.h b/fs/xfs/scrub/trace.h index 76b5c334d9eb..2f23b10cdc71 100644 --- a/fs/xfs/scrub/trace.h +++ b/fs/xfs/scrub/trace.h | |||
@@ -12,6 +12,20 @@ | |||
12 | #include <linux/tracepoint.h> | 12 | #include <linux/tracepoint.h> |
13 | #include "xfs_bit.h" | 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 | |||
15 | DECLARE_EVENT_CLASS(xchk_class, | 29 | DECLARE_EVENT_CLASS(xchk_class, |
16 | TP_PROTO(struct xfs_inode *ip, struct xfs_scrub_metadata *sm, | 30 | TP_PROTO(struct xfs_inode *ip, struct xfs_scrub_metadata *sm, |
17 | int error), | 31 | int error), |
@@ -278,10 +292,10 @@ TRACE_EVENT(xchk_btree_op_error, | |||
278 | __entry->error = error; | 292 | __entry->error = error; |
279 | __entry->ret_ip = ret_ip; | 293 | __entry->ret_ip = ret_ip; |
280 | ), | 294 | ), |
281 | TP_printk("dev %d:%d type %u btnum %d level %d ptr %d agno %u agbno %u error %d ret_ip %pS", | 295 | TP_printk("dev %d:%d type %u btree %s level %d ptr %d agno %u agbno %u error %d ret_ip %pS", |
282 | MAJOR(__entry->dev), MINOR(__entry->dev), | 296 | MAJOR(__entry->dev), MINOR(__entry->dev), |
283 | __entry->type, | 297 | __entry->type, |
284 | __entry->btnum, | 298 | __print_symbolic(__entry->btnum, XFS_BTNUM_STRINGS), |
285 | __entry->level, | 299 | __entry->level, |
286 | __entry->ptr, | 300 | __entry->ptr, |
287 | __entry->agno, | 301 | __entry->agno, |
@@ -321,12 +335,12 @@ TRACE_EVENT(xchk_ifork_btree_op_error, | |||
321 | __entry->error = error; | 335 | __entry->error = error; |
322 | __entry->ret_ip = ret_ip; | 336 | __entry->ret_ip = ret_ip; |
323 | ), | 337 | ), |
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", | 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", |
325 | MAJOR(__entry->dev), MINOR(__entry->dev), | 339 | MAJOR(__entry->dev), MINOR(__entry->dev), |
326 | __entry->ino, | 340 | __entry->ino, |
327 | __entry->whichfork, | 341 | __entry->whichfork, |
328 | __entry->type, | 342 | __entry->type, |
329 | __entry->btnum, | 343 | __print_symbolic(__entry->btnum, XFS_BTNUM_STRINGS), |
330 | __entry->level, | 344 | __entry->level, |
331 | __entry->ptr, | 345 | __entry->ptr, |
332 | __entry->agno, | 346 | __entry->agno, |
@@ -360,10 +374,10 @@ TRACE_EVENT(xchk_btree_error, | |||
360 | __entry->ptr = cur->bc_ptrs[level]; | 374 | __entry->ptr = cur->bc_ptrs[level]; |
361 | __entry->ret_ip = ret_ip; | 375 | __entry->ret_ip = ret_ip; |
362 | ), | 376 | ), |
363 | TP_printk("dev %d:%d type %u btnum %d level %d ptr %d agno %u agbno %u ret_ip %pS", | 377 | TP_printk("dev %d:%d type %u btree %s level %d ptr %d agno %u agbno %u ret_ip %pS", |
364 | MAJOR(__entry->dev), MINOR(__entry->dev), | 378 | MAJOR(__entry->dev), MINOR(__entry->dev), |
365 | __entry->type, | 379 | __entry->type, |
366 | __entry->btnum, | 380 | __print_symbolic(__entry->btnum, XFS_BTNUM_STRINGS), |
367 | __entry->level, | 381 | __entry->level, |
368 | __entry->ptr, | 382 | __entry->ptr, |
369 | __entry->agno, | 383 | __entry->agno, |
@@ -400,12 +414,12 @@ TRACE_EVENT(xchk_ifork_btree_error, | |||
400 | __entry->ptr = cur->bc_ptrs[level]; | 414 | __entry->ptr = cur->bc_ptrs[level]; |
401 | __entry->ret_ip = ret_ip; | 415 | __entry->ret_ip = ret_ip; |
402 | ), | 416 | ), |
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", | 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", |
404 | MAJOR(__entry->dev), MINOR(__entry->dev), | 418 | MAJOR(__entry->dev), MINOR(__entry->dev), |
405 | __entry->ino, | 419 | __entry->ino, |
406 | __entry->whichfork, | 420 | __entry->whichfork, |
407 | __entry->type, | 421 | __entry->type, |
408 | __entry->btnum, | 422 | __print_symbolic(__entry->btnum, XFS_BTNUM_STRINGS), |
409 | __entry->level, | 423 | __entry->level, |
410 | __entry->ptr, | 424 | __entry->ptr, |
411 | __entry->agno, | 425 | __entry->agno, |
@@ -439,10 +453,10 @@ DECLARE_EVENT_CLASS(xchk_sbtree_class, | |||
439 | __entry->nlevels = cur->bc_nlevels; | 453 | __entry->nlevels = cur->bc_nlevels; |
440 | __entry->ptr = cur->bc_ptrs[level]; | 454 | __entry->ptr = cur->bc_ptrs[level]; |
441 | ), | 455 | ), |
442 | TP_printk("dev %d:%d type %u btnum %d agno %u agbno %u level %d nlevels %d ptr %d", | 456 | TP_printk("dev %d:%d type %u btree %s agno %u agbno %u level %d nlevels %d ptr %d", |
443 | MAJOR(__entry->dev), MINOR(__entry->dev), | 457 | MAJOR(__entry->dev), MINOR(__entry->dev), |
444 | __entry->type, | 458 | __entry->type, |
445 | __entry->btnum, | 459 | __print_symbolic(__entry->btnum, XFS_BTNUM_STRINGS), |
446 | __entry->agno, | 460 | __entry->agno, |
447 | __entry->bno, | 461 | __entry->bno, |
448 | __entry->level, | 462 | __entry->level, |
@@ -598,11 +612,11 @@ TRACE_EVENT(xrep_init_btblock, | |||
598 | __entry->agbno = agbno; | 612 | __entry->agbno = agbno; |
599 | __entry->btnum = btnum; | 613 | __entry->btnum = btnum; |
600 | ), | 614 | ), |
601 | TP_printk("dev %d:%d agno %u agbno %u btnum %d", | 615 | TP_printk("dev %d:%d agno %u agbno %u btree %s", |
602 | MAJOR(__entry->dev), MINOR(__entry->dev), | 616 | MAJOR(__entry->dev), MINOR(__entry->dev), |
603 | __entry->agno, | 617 | __entry->agno, |
604 | __entry->agbno, | 618 | __entry->agbno, |
605 | __entry->btnum) | 619 | __print_symbolic(__entry->btnum, XFS_BTNUM_STRINGS)) |
606 | ) | 620 | ) |
607 | TRACE_EVENT(xrep_findroot_block, | 621 | TRACE_EVENT(xrep_findroot_block, |
608 | TP_PROTO(struct xfs_mount *mp, xfs_agnumber_t agno, xfs_agblock_t agbno, | 622 | TP_PROTO(struct xfs_mount *mp, xfs_agnumber_t agno, xfs_agblock_t agbno, |
diff --git a/fs/xfs/xfs_trace.h b/fs/xfs/xfs_trace.h index 94e289aca220..6fcc893dfc91 100644 --- a/fs/xfs/xfs_trace.h +++ b/fs/xfs/xfs_trace.h | |||
@@ -2194,6 +2194,14 @@ DEFINE_DISCARD_EVENT(xfs_discard_exclude); | |||
2194 | DEFINE_DISCARD_EVENT(xfs_discard_busy); | 2194 | DEFINE_DISCARD_EVENT(xfs_discard_busy); |
2195 | 2195 | ||
2196 | /* btree cursor events */ | 2196 | /* btree cursor events */ |
2197 | TRACE_DEFINE_ENUM(XFS_BTNUM_BNOi); | ||
2198 | TRACE_DEFINE_ENUM(XFS_BTNUM_CNTi); | ||
2199 | TRACE_DEFINE_ENUM(XFS_BTNUM_BMAPi); | ||
2200 | TRACE_DEFINE_ENUM(XFS_BTNUM_INOi); | ||
2201 | TRACE_DEFINE_ENUM(XFS_BTNUM_FINOi); | ||
2202 | TRACE_DEFINE_ENUM(XFS_BTNUM_RMAPi); | ||
2203 | TRACE_DEFINE_ENUM(XFS_BTNUM_REFCi); | ||
2204 | |||
2197 | DECLARE_EVENT_CLASS(xfs_btree_cur_class, | 2205 | DECLARE_EVENT_CLASS(xfs_btree_cur_class, |
2198 | TP_PROTO(struct xfs_btree_cur *cur, int level, struct xfs_buf *bp), | 2206 | TP_PROTO(struct xfs_btree_cur *cur, int level, struct xfs_buf *bp), |
2199 | TP_ARGS(cur, level, bp), | 2207 | TP_ARGS(cur, level, bp), |
@@ -2213,9 +2221,9 @@ DECLARE_EVENT_CLASS(xfs_btree_cur_class, | |||
2213 | __entry->ptr = cur->bc_ptrs[level]; | 2221 | __entry->ptr = cur->bc_ptrs[level]; |
2214 | __entry->daddr = bp ? bp->b_bn : -1; | 2222 | __entry->daddr = bp ? bp->b_bn : -1; |
2215 | ), | 2223 | ), |
2216 | TP_printk("dev %d:%d btnum %d level %d/%d ptr %d daddr 0x%llx", | 2224 | TP_printk("dev %d:%d btree %s level %d/%d ptr %d daddr 0x%llx", |
2217 | MAJOR(__entry->dev), MINOR(__entry->dev), | 2225 | MAJOR(__entry->dev), MINOR(__entry->dev), |
2218 | __entry->btnum, | 2226 | __print_symbolic(__entry->btnum, XFS_BTNUM_STRINGS), |
2219 | __entry->level, | 2227 | __entry->level, |
2220 | __entry->nlevels, | 2228 | __entry->nlevels, |
2221 | __entry->ptr, | 2229 | __entry->ptr, |