Commit 5d0f7dd2 authored by Dave Chinner's avatar Dave Chinner Committed by Jialin Zhang
Browse files

xfs: need to see iclog flags in tracing

mainline inclusion
from mainline-v5.14-rc1
commit b2ae3a9e
category: bugfix
bugzilla: 187526,https://gitee.com/openeuler/kernel/issues/I6WKVJ

Reference: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=b2ae3a9ef91152931b99620c431cf3805daa1429



--------------------------------

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>
Signed-off-by: default avatarGuo Xuenan <guoxuenan@huawei.com>
Reviewed-by: default avatarYang Erkun <yangerkun@huawei.com>
Signed-off-by: default avatarJialin Zhang <zhangjialin11@huawei.com>
parent eb75cbd7
Loading
Loading
Loading
Loading
+10 −3
Original line number Diff line number Diff line
@@ -48,6 +48,16 @@ enum xlog_iclog_state {
	{ XLOG_STATE_CALLBACK,	"XLOG_STATE_CALLBACK" }, \
	{ XLOG_STATE_DIRTY,	"XLOG_STATE_DIRTY" }

/*
 * 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
@@ -132,9 +142,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
@@ -4010,6 +4010,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)
	),
@@ -4018,15 +4019,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)

);