On 11/28/18 5:28 PM, Darrick J. Wong wrote: > From: Darrick J. Wong <darrick.wong@xxxxxxxxxx> > > 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@xxxxxxxxxx> Reviewed-by: Eric Sandeen <sandeen@xxxxxxxxxx> > --- > fs/xfs/xfs_trace.h | 16 ++++++++++++++++ > 1 file changed, 16 insertions(+) > > > diff --git a/fs/xfs/xfs_trace.h b/fs/xfs/xfs_trace.h > index cabe5c8010b0..dcde4e9907f7 100644 > --- a/fs/xfs/xfs_trace.h > +++ b/fs/xfs/xfs_trace.h > @@ -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), >