Commit b2ae3a9e authored by Dave Chinner's avatar Dave Chinner Committed by Darrick J. Wong
Browse files

xfs: need to see iclog flags in tracing



Because I cannot tell if the NEED_FLUSH flag is being set correctly
by the log force and CIL push machinery without it.

Signed-off-by: default avatarDave Chinner <dchinner@redhat.com>
Reviewed-by: default avatarChristoph Hellwig <hch@lst.de>
Reviewed-by: default avatarDarrick J. Wong <djwong@kernel.org>
Signed-off-by: default avatarDarrick J. Wong <djwong@kernel.org>
parent d8f4c2d0
Loading
Loading
Loading
Loading
+10 −3
Original line number Diff line number Diff line
@@ -59,6 +59,16 @@ enum xlog_iclog_state {
	{ XLOG_STATE_DIRTY,	"XLOG_STATE_DIRTY" }, \
	{ XLOG_STATE_IOERROR,	"XLOG_STATE_IOERROR" }

/*
 * In core log flags
 */
#define XLOG_ICL_NEED_FLUSH	(1 << 0)	/* iclog needs REQ_PREFLUSH */
#define XLOG_ICL_NEED_FUA	(1 << 1)	/* iclog needs REQ_FUA */

#define XLOG_ICL_STRINGS \
	{ XLOG_ICL_NEED_FLUSH,	"XLOG_ICL_NEED_FLUSH" }, \
	{ XLOG_ICL_NEED_FUA,	"XLOG_ICL_NEED_FUA" }


/*
 * Log ticket flags
@@ -143,9 +153,6 @@ enum xlog_iclog_state {

#define XLOG_COVER_OPS		5

#define XLOG_ICL_NEED_FLUSH	(1 << 0)	/* iclog needs REQ_PREFLUSH */
#define XLOG_ICL_NEED_FUA	(1 << 1)	/* iclog needs REQ_FUA */

/* Ticket reservation region accounting */ 
#define XLOG_TIC_LEN_MAX	15

+4 −1
Original line number Diff line number Diff line
@@ -3944,6 +3944,7 @@ DECLARE_EVENT_CLASS(xlog_iclog_class,
		__field(uint32_t, state)
		__field(int32_t, refcount)
		__field(uint32_t, offset)
		__field(uint32_t, flags)
		__field(unsigned long long, lsn)
		__field(unsigned long, caller_ip)
	),
@@ -3952,15 +3953,17 @@ DECLARE_EVENT_CLASS(xlog_iclog_class,
		__entry->state = iclog->ic_state;
		__entry->refcount = atomic_read(&iclog->ic_refcnt);
		__entry->offset = iclog->ic_offset;
		__entry->flags = iclog->ic_flags;
		__entry->lsn = be64_to_cpu(iclog->ic_header.h_lsn);
		__entry->caller_ip = caller_ip;
	),
	TP_printk("dev %d:%d state %s refcnt %d offset %u lsn 0x%llx caller %pS",
	TP_printk("dev %d:%d state %s refcnt %d offset %u lsn 0x%llx flags %s caller %pS",
		  MAJOR(__entry->dev), MINOR(__entry->dev),
		  __print_symbolic(__entry->state, XLOG_STATE_STRINGS),
		  __entry->refcount,
		  __entry->offset,
		  __entry->lsn,
		  __print_flags(__entry->flags, "|", XLOG_ICL_STRINGS),
		  (char *)__entry->caller_ip)

);