提交 e0efa275 编写于 作者: D Dave Chinner 提交者: Jialin Zhang

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: NDave Chinner <dchinner@redhat.com>
Reviewed-by: NChristoph Hellwig <hch@lst.de>
Reviewed-by: NDarrick J. Wong <djwong@kernel.org>
Signed-off-by: NDarrick J. Wong <djwong@kernel.org>
Signed-off-by: NGuo Xuenan <guoxuenan@huawei.com>
Reviewed-by: NYang Erkun <yangerkun@huawei.com>
Signed-off-by: NJialin Zhang <zhangjialin11@huawei.com>
上级 237ffedd
...@@ -48,6 +48,16 @@ enum xlog_iclog_state { ...@@ -48,6 +48,16 @@ enum xlog_iclog_state {
{ XLOG_STATE_CALLBACK, "XLOG_STATE_CALLBACK" }, \ { XLOG_STATE_CALLBACK, "XLOG_STATE_CALLBACK" }, \
{ XLOG_STATE_DIRTY, "XLOG_STATE_DIRTY" } { 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 * Log ticket flags
...@@ -132,9 +142,6 @@ enum xlog_iclog_state { ...@@ -132,9 +142,6 @@ enum xlog_iclog_state {
#define XLOG_COVER_OPS 5 #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 */ /* Ticket reservation region accounting */
#define XLOG_TIC_LEN_MAX 15 #define XLOG_TIC_LEN_MAX 15
......
...@@ -4010,6 +4010,7 @@ DECLARE_EVENT_CLASS(xlog_iclog_class, ...@@ -4010,6 +4010,7 @@ DECLARE_EVENT_CLASS(xlog_iclog_class,
__field(uint32_t, state) __field(uint32_t, state)
__field(int32_t, refcount) __field(int32_t, refcount)
__field(uint32_t, offset) __field(uint32_t, offset)
__field(uint32_t, flags)
__field(unsigned long long, lsn) __field(unsigned long long, lsn)
__field(unsigned long, caller_ip) __field(unsigned long, caller_ip)
), ),
...@@ -4018,15 +4019,17 @@ DECLARE_EVENT_CLASS(xlog_iclog_class, ...@@ -4018,15 +4019,17 @@ DECLARE_EVENT_CLASS(xlog_iclog_class,
__entry->state = iclog->ic_state; __entry->state = iclog->ic_state;
__entry->refcount = atomic_read(&iclog->ic_refcnt); __entry->refcount = atomic_read(&iclog->ic_refcnt);
__entry->offset = iclog->ic_offset; __entry->offset = iclog->ic_offset;
__entry->flags = iclog->ic_flags;
__entry->lsn = be64_to_cpu(iclog->ic_header.h_lsn); __entry->lsn = be64_to_cpu(iclog->ic_header.h_lsn);
__entry->caller_ip = caller_ip; __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), MAJOR(__entry->dev), MINOR(__entry->dev),
__print_symbolic(__entry->state, XLOG_STATE_STRINGS), __print_symbolic(__entry->state, XLOG_STATE_STRINGS),
__entry->refcount, __entry->refcount,
__entry->offset, __entry->offset,
__entry->lsn, __entry->lsn,
__print_flags(__entry->flags, "|", XLOG_ICL_STRINGS),
(char *)__entry->caller_ip) (char *)__entry->caller_ip)
); );
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册