summaryrefslogtreecommitdiffstats
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
commitc494213f30080423b70b24b6af7f6da554d9390f (patch)
tree43e2f54fd186738f3440a97868e1c4cf87667bcd
parent0357d21a6c9be2870904598b4767c7d424524849 (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.h13
-rw-r--r--fs/xfs/scrub/trace.h38
-rw-r--r--fs/xfs/xfs_trace.h12
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 */
116typedef enum { 120typedef 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
121struct xfs_name { 134struct 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 */
21TRACE_DEFINE_ENUM(XFS_BTNUM_BNOi);
22TRACE_DEFINE_ENUM(XFS_BTNUM_CNTi);
23TRACE_DEFINE_ENUM(XFS_BTNUM_BMAPi);
24TRACE_DEFINE_ENUM(XFS_BTNUM_INOi);
25TRACE_DEFINE_ENUM(XFS_BTNUM_FINOi);
26TRACE_DEFINE_ENUM(XFS_BTNUM_RMAPi);
27TRACE_DEFINE_ENUM(XFS_BTNUM_REFCi);
28
15DECLARE_EVENT_CLASS(xchk_class, 29DECLARE_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)
607TRACE_EVENT(xrep_findroot_block, 621TRACE_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);
2194DEFINE_DISCARD_EVENT(xfs_discard_busy); 2194DEFINE_DISCARD_EVENT(xfs_discard_busy);
2195 2195
2196/* btree cursor events */ 2196/* btree cursor events */
2197TRACE_DEFINE_ENUM(XFS_BTNUM_BNOi);
2198TRACE_DEFINE_ENUM(XFS_BTNUM_CNTi);
2199TRACE_DEFINE_ENUM(XFS_BTNUM_BMAPi);
2200TRACE_DEFINE_ENUM(XFS_BTNUM_INOi);
2201TRACE_DEFINE_ENUM(XFS_BTNUM_FINOi);
2202TRACE_DEFINE_ENUM(XFS_BTNUM_RMAPi);
2203TRACE_DEFINE_ENUM(XFS_BTNUM_REFCi);
2204
2197DECLARE_EVENT_CLASS(xfs_btree_cur_class, 2205DECLARE_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,