mirror of https://gitee.com/openkylin/linux.git
xfs: fix symbolic enum printing in ftrace output
ftrace's __print_symbolic() has a (very poorly documented) requirement that any enum values used in the symbol to string translation table be wrapped in a TRACE_DEFINE_ENUM so that the enum value can be encoded in the ftrace ring buffer. Fix this unsatisfied requirement. Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com> Reviewed-by: Eric Sandeen <sandeen@redhat.com>
This commit is contained in:
parent
7af8150f99
commit
85f8dff00a
|
@ -100,6 +100,10 @@ typedef void * xfs_failaddr_t;
|
|||
*/
|
||||
#define MAXNAMELEN 256
|
||||
|
||||
/*
|
||||
* This enum is used in string mapping in xfs_trace.h; please keep the
|
||||
* TRACE_DEFINE_ENUMs for it up to date.
|
||||
*/
|
||||
typedef enum {
|
||||
XFS_LOOKUP_EQi, XFS_LOOKUP_LEi, XFS_LOOKUP_GEi
|
||||
} xfs_lookup_t;
|
||||
|
|
|
@ -10,6 +10,9 @@ extern struct bio_set xfs_ioend_bioset;
|
|||
|
||||
/*
|
||||
* Types of I/O for bmap clustering and I/O completion tracking.
|
||||
*
|
||||
* This enum is used in string mapping in xfs_trace.h; please keep the
|
||||
* TRACE_DEFINE_ENUMs for it up to date.
|
||||
*/
|
||||
enum {
|
||||
XFS_IO_HOLE, /* covers region without any block allocation */
|
||||
|
|
|
@ -640,6 +640,16 @@ DEFINE_INODE_EVENT(xfs_inode_set_cowblocks_tag);
|
|||
DEFINE_INODE_EVENT(xfs_inode_clear_cowblocks_tag);
|
||||
DEFINE_INODE_EVENT(xfs_inode_free_cowblocks_invalid);
|
||||
|
||||
/*
|
||||
* ftrace's __print_symbolic requires that all enum values be wrapped in the
|
||||
* TRACE_DEFINE_ENUM macro so that the enum value can be encoded in the ftrace
|
||||
* ring buffer. Somehow this was only worth mentioning in the ftrace sample
|
||||
* code.
|
||||
*/
|
||||
TRACE_DEFINE_ENUM(PE_SIZE_PTE);
|
||||
TRACE_DEFINE_ENUM(PE_SIZE_PMD);
|
||||
TRACE_DEFINE_ENUM(PE_SIZE_PUD);
|
||||
|
||||
TRACE_EVENT(xfs_filemap_fault,
|
||||
TP_PROTO(struct xfs_inode *ip, enum page_entry_size pe_size,
|
||||
bool write_fault),
|
||||
|
@ -1208,6 +1218,12 @@ DEFINE_EVENT(xfs_readpage_class, name, \
|
|||
DEFINE_READPAGE_EVENT(xfs_vm_readpage);
|
||||
DEFINE_READPAGE_EVENT(xfs_vm_readpages);
|
||||
|
||||
TRACE_DEFINE_ENUM(XFS_IO_HOLE);
|
||||
TRACE_DEFINE_ENUM(XFS_IO_DELALLOC);
|
||||
TRACE_DEFINE_ENUM(XFS_IO_UNWRITTEN);
|
||||
TRACE_DEFINE_ENUM(XFS_IO_OVERWRITE);
|
||||
TRACE_DEFINE_ENUM(XFS_IO_COW);
|
||||
|
||||
DECLARE_EVENT_CLASS(xfs_imap_class,
|
||||
TP_PROTO(struct xfs_inode *ip, xfs_off_t offset, ssize_t count,
|
||||
int type, struct xfs_bmbt_irec *irec),
|
||||
|
@ -2610,6 +2626,9 @@ DEFINE_AG_ERROR_EVENT(xfs_ag_resv_init_error);
|
|||
#define DEFINE_AG_EXTENT_EVENT(name) DEFINE_DISCARD_EVENT(name)
|
||||
|
||||
/* ag btree lookup tracepoint class */
|
||||
TRACE_DEFINE_ENUM(XFS_LOOKUP_EQi);
|
||||
TRACE_DEFINE_ENUM(XFS_LOOKUP_LEi);
|
||||
TRACE_DEFINE_ENUM(XFS_LOOKUP_GEi);
|
||||
#define XFS_AG_BTREE_CMP_FORMAT_STR \
|
||||
{ XFS_LOOKUP_EQ, "eq" }, \
|
||||
{ XFS_LOOKUP_LE, "le" }, \
|
||||
|
|
Loading…
Reference in New Issue